Как защититься от перебора паролей к ftp и ssh (bruteforce атаки).

Редкий сервер в наше время не подвергается постоянным попыткам подбора паролей. Подобрать хороший случайный пароль перебором достаточно тяжело, но даже маловероятные вещи случаются время от времени. Учитывая возможные последствия успешного подбора пароля - лучше перебдить чем недобдить. К тому же, забанив адреса предположительно зомбированных комптьютеров мы, возможно, уменьшим риск других враждебных действий с их стороны.

 Итак, начальные условия. Разрешенными являются 3 одновременных покдючения с одного IP адреса к ssh, но не чаще чем 20 попыток подключений в минуту, а также 5 одновременных подключений к ftp и pop3, но не чаще 20 раз в минуту. Однако эти ограничения, допустим, не должны касаться IP адреса 1.2.3.4

 Решение этой задачи выглядит следующим образом:

echo '

table <safehosts> persist { 1.2.3.4 }
set skip on lo0
pass in all
pass out all
pass in quick from <safehosts>
block in quick from <bruteforce>
pass in proto tcp to any  port ssh flags S/SA keep state (max-src-conn 3, max-src-conn-rate 20/60, overload <bruteforce> flush global)
pass in proto tcp to any  port {ftp,pop3} flags S/SA keep state (max-src-conn 5, max-src-conn-rate 20/60, overload <bruteforce> flush global)

'> /etc/pf.conf

echo pf_enable=YES >> /etc/rc.conf

/etc/rc.d/pf start