Источник.
iptables — recent
Этот модуль позволяет создавать динамические таблицы IP-адресов в зависимости от определенных условий, а затем устанавливать разрешающие и запрещающие правила для этих таблиц.
Рассмотрим строчки:
iptables -A INPUT --protocol tcp --match state --state NEW --dport 22 --match recent --update --seconds 30 --name SSHT --jump DROP
iptables -A INPUT --protocol tcp --match state --state NEW --dport 22 --match recent --set --name SSHT --jump ACCEPT
Начнем разбираться со второго правила. Каждый, кто пытается зайти (именно зайти, так как мы используем --state NEW) на порт 22 (SSH) пропускается (--jump ACCEPT), но его IP-адрес попадает в таблицу с именем SSHT. Когда с этого адреса пытаются соединиться еще раз, начинает работать первое правило, смысл которого состоит в том, чтобы обновить (--update) запись в таблице и заодно проверить, когда эта запись была установлена/обновлена в последний раз. Если запись была установлена/обновлена меньше 30 секунд назад (--seconds 30), то срабатывает --jump DROP, и пакет отбрасывается. Таким образом брутфорсеры, пытающиеся долбиться на порт SSH, будут отбрасываться, если частота отправки их пакетов будет превышать 1 пакет в 30 секунд.
2 комментария:
спионерено от Сюда
Спасибо, кэп!
Я это первой строкой написала.
Отправить комментарий