Блокировка ftp-bruteforce атак пакетным фильтром pf

По мотивам http://www.opennet.ru/tips/info/2140.shtml

/etc/pf/pf.conf

if="fxp0"
# файловая таблица для хранения забаненых адресов
table <intruder-ftp> persist file "/etc/pf/intruder-ftp.lst"
 
block in log
block return-rst in log proto tcp
# запрещение доступа адресов нарушителей к ftp-серверу
block in quick on $if proto TCP from <intruder-ftp> to any port ftp
 
pass out
  
pass in quick inet proto icmp all icmp-type echoreq code 0
 
# Определяем адреса, с которых было более 5 коннектов за 40 секунд и заносим их в таблицу блокировки
pass in quick on $iface proto tcp to ($if) port ftp keep state (max-src-conn-rate 5/40, overload <intruder-ftp> flush global)
# разрешаем коннект к ftp в active и passive
pass in quick on $iface proto tcp to ($if) port { ftp, >49152 } 

Создаем пустую таблицу:

echo > /etc/pf/intruder-ftp.lst

Сбрасываем таблицу интрудерских адресов в файл каждый час:

crontab -e

/var/cron/tabs/root

#minute (0-59),
#|      hour (0-23),
#|      |       day of the month (1-31),
#|      |       |       month of the year (1-12),
#|      |       |       |       day of the week (0-6 with 0=Sunday).
#|      |       |       |       |       commands
#  
# _intrud_ftp table update
*/60    *       *       *       *       /sbin/pfctl -t intruder-ftp -Ts > /etc/pf/intruder-ftp.lst

Перечитываем конфигурацию pf:

pfctl -f /etc/pf/pf.conf

Загрузка таблиц, определенных в файле конфигурации:

pfctl -Tl -f /etc/pf/pf.conf

Добавление адреса в таблицу:

pfctl -t intruder-ftp -Ta 1.1.1.1

Удаление адреса из таблицы:

pfctl -t intruder-ftp -Td 1.1.1.1

Полная очистка таблицы:

pfctl -t intruder-ftp -Tf

Выгрузка таблицы в файл:

pfctl -t intruder-ftp -Ts > /etc/pf/intruder-ftp.lst

Просмотр таблицы:

pfctl -t intruder-ftp -Ts

Просмотр статистики:

pfctl -t intruder-ftp -Ts -v

Сброс статистики:

pfctl -t intruder-ftp -Tz
 
info/nix/openbsd/pf/pf-ftp-bruteforce.txt · Последние изменения: 2009/08/28 14:44 От dant
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki