Борьба с перебором паролей на FTP сервере при помощи пакетного фильтра PF
Для предотвращения bruteforce-атак по подбору паролей во FreeBSD или OpenBSD можно использовать
возможность пакетного фильтра PF по лимитированию числа соединений за единицу времени в сочетании с блокировкой по таблицам.
Добавляем в /etc/pf.conf
# Подключаем ранее составленный список заблокированных за излишнее число коннектов IP
table <ftp-attacks> persist file "/etc/pf.ftp.block.list"# Блокируем все входящие соединения с IP, которые присутствуют в черном списке
block in quick on $ext_if from <ftp-attacks># Выявляем IP с которых было более 5 обращений за 40 секунд
# и добавляем этот IP в ранее созданную таблицу блокировки
pass in quick on $ext_if inet proto tcp from any to ($ext_if) port 21 keep state (max-src-conn-rate 5/40, overload flush global) Перечитываем конфигурацию PF:
/etc/rc.d/pf reloadили
/sbin/pfctl -f /etc/pf.conf Далее, чтобы сохранить созданную таблицу блокировки между перезагрузками, необходимо добавить
в /etc/rc.shutdown код для сброса в файл состояния таблицы перед завершением работы:
/sbin/pfctl -t ftp-attacks -T show > /etc/pf.ftp.block.listДля удаления определенного IP (например, 192.168.1.1) из таблицы:
/sbin/pfctl -t ftp-attacks -T delete 192.168.1.1Для добавления IP или подсети вручную:
/sbin/pfctl -t ftp-attacks -T add 192.168.1.1/sbin/pfctl -t ftp-attacks -T add 192.168.1.0/24Для полной очистки таблицы
/sbin/pfctl -t ftp-attacks -T flushДля загрузки таблицы из файла:
/sbin/pfctl -t ftp-attacks -T replace -f /etc/pf.ftp.block.listДля поиска IP в таблице
/sbin/pfctl -t ftp-attacks -T test 192.168.1.1Для вывода более подробной статистики по каждому из IP в таблице:
/sbin/pfctl -t ftp-attacks -T show -vДля очистки счетчиков срабатываний:
/sbin/pfctl -t ftp-attacks -T zero
1 комментарий:
при перепечатке ошибка допущена, не указана таблица ftp-attacks
Отправить комментарий