сервер fail2ban / ipfw / Mac OS X не запрещает соединения

678
typonaut

Я пытаюсь настроить брандмауэр для своего сервера 10.5, но я просто не могу заставить его работать. Основная цель - попытаться остановить постоянные попытки входа в систему перебором почты.

Для этого я установил fail2ban, чтобы определить и заблокировать неудачные входы в систему. По большей части это работает, то есть механизм отправки забаненных IP-адресов и отправки мне электронного письма на этот счет выполнен. Если я запускаю сеанс терминала, я получаю десятки IP-адресов, перечисленных с помощью следующей команды:

sudo ipfw list 

С записью, похожей на:

12345 deny tcp from 123.123.23.123 to any in 

Но запрет просто не эффективен - тот же IP-адрес будет повторяться позже, иногда каждые несколько секунд в течение нескольких часов.

Когда я проверяю журнал fail2ban, он жалуется (после многократного обнаружения вредоносной попытки входа в систему):

"WARNING [sasl-ipfw] 123.123.123.123 already banned" 

Я попытался отформатировать бан по-разному:

12345 deny tcp from 123.123.23.123 to 127.0.0.1 dst-port 25 12345 deny tcp from 123.123.23.123 to 192.168.123.123 dst-port 25 

Но просто не имеет никакого значения. Я даже попробовал просто запрет локальной сети на веб-сервис:

12345 deny tcp from 192.168.123.122 to 192.168.123.123 dst-port 80 

Но опять же, это не имеет никакого эффекта. Другие правила, по умолчанию, в списке IPFW выглядят так:

12300 allow log logamount 1000 tcp from any to any established 12301 allow log logamount 1000 tcp from any to any out 12302 allow log logamount 1000 tcp from any to any dst-port 22 … 

и одно последнее правило в списке (которое я где-то читал, изменить нельзя):

65535 allow ip from any to any 

Приложение администратора сервера показывает, что служба брандмауэра работает, в журнале ipfw нет «запрещенных» списков. Записи, исправленные в IPFW с помощью fail2ban, нигде не отображаются ни в записях администратора сервера, ни в файлах ipfw.conf или ipfw.conf.apple (поэтому я не уверен, где они хранятся). Но я вижу их, когда получаю «список ipfw» в терминале, и они перечислены на вкладке «Активные правила» в разделе «Брандмауэр» в разделе «Администрирование сервера».

Спасибо за любую помощь в этом вопросе.

0

1 ответ на вопрос

1
Gordon Davisson

Похоже, ваш скрипт fail2ban использует слишком большой номер правила. ipfw оценивает правила в числовом порядке, и первое, что применяется к данному пакету, определяет, что с ним делать. Это означает, что правила с меньшими номерами имеют более высокий приоритет. Поскольку правила fail2ban «запрещать» добавляются с номером 12345, а настроенные администратором сервера правила «разрешить» начинаются с 12302, по крайней мере, некоторые из разрешающих правил имеют приоритет над правилами запрета в fail2ban.

Простое исправление: найдите, где номер правила определен в вашем скрипте fail2ban, и уменьшите его до 12200.

Кстати, тот факт, что правила fail2ban не добавляются в файлы конфигурации, является нормальным и, вероятно, хорошим. Эти файлы используются при перезагрузке брандмауэра (например, при перезагрузке), но не обязательно отражают «живое» состояние брандмауэра. Если вы хотите, вы можете отредактировать скрипт fail2ban, добавив его правила к этим файлам, а также установив их в рабочем состоянии, но это означает, что ваш набор правил со временем будет произвольно увеличиваться. ИМО, единственный раз, когда вы должны беспокоиться о таких «постоянных» запретах, это если вы продолжаете постоянно и много раз повторять злоупотребления с одних и тех же IP-адресов ... но я ожидаю, что это будет редкостью.

Гордон, большое спасибо, что исправил это. Я полагался на IPFW, чтобы установить номер правила, а также неправильно понял ключевое слово 'LOG' со страницы руководства и то, что он сказал об обработке этих правил в последний раз: `регистрация ведется после того, как все другие условия сопоставления пакетов были успешно проверены, и перед выполнением финального действия`. Во всяком случае, непослушные пакеты теперь отказано! Поймите свою точку зрения о правилах, которых нет в конфигурационных файлах. typonaut 8 лет назад 0