Борьба с перебором паролей на 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
Отправить комментарий