С течением времени количество публичных сервисов увеличивается. Такие сервисы уже не закроешь фаирволом, не спрячешь. Поэтому сегодня рассмотрим небольшую программу, которая будет блокировать доступ к нашим сервисам от врагов.
С течением времени количество публичных сервисов увеличивается. Такие сервисы уже не закроешь фаирволом, не спрячешь. Поэтому сегодня рассмотрим небольшую программу, которая будет блокировать доступ к нашим сервисам от врагов.
Устанавливаем: /usr/ports/security/bruteblocker - зависимости подтянутся сами.
Теперь настроим процесс попадания логов в нашего защитника. Для этого в /etc/syslog.conf добавляем:
auth.info;authpriv.info | exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.confи перезапускаем syslogd. В случае работы с виртуальными клетками (jail), на работу которых накладываются достаточно большое количество ограничений, предлагаю настроить syslog виртуальных машин на пересылку логов на головную машину. И уже на ней анализировать и блокировать способом, описанным выше.
Теперь настроим саму программу. Она настраивается через rc.conf:
bruteblockd_enable="YES" # Хотим ли мы запустить демона.
bruteblockd_table="15" # Номер таблицы со списком врагов. У меня в таблице 15 ipfw.
bruteblockd_flags="-s 5" # Время проверки таблицы, не пора ли про кого-нибудь уже забыть (5 секунд, значение по-умолчанию)
Запускаем программу: /usr/local/etc/rc.d/bruteblockd onestart
Теперь в фаирвол впишем нечно подобное:
ipfw add 00074 reset tcp from "table(15)" 1024-65534 to meЯ рекомендую создать таблицу и добавить разрешающие правила в фаирвол с номерами меньшими, чем запрещающие правила, так как в сети люди жалуются, что их непроизвольно блокирует и сетует на отсуствие белых списков в самой программе, хотя это совершенно не нужно.
ipfw add 00075 pass tcp from me to "table(15)" 1024-65534
Теперь все работает и блокруется. У данной программы, в отличие от sshit например, если важная особенность, которая меня и привлекла: можно задать регулярные выражения, а значит, программа защитит любой сервис, который способен вести лог. Кроме того для каждого защищаемого сервиса можно вести отдельную таблицу.
Рассмотрим несколько примеров: pure-ftpd:
regexp=pure-ftpd: *\(\?\@(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\) \[WARNING\] Authentication failed for user \[\S+\]
Разумеется, необходимо сделать запись в /etc/syslog.conf:
ftp.info /var/log/xferlogdovecot: Просим программу вести лог через syslogd: syslog_facility = local2)
ftp.info /var/log/xferlog| exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/pureftpd.conf
Настраиваем /etc/syslog.conf:
local2.* /var/log/mail/dovecot.log
local2.* | exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/dovecot.conf
Комментарии (0)
Добавление комментариев закрыто.