RFC (Request for Comments, Запрос на комментарии) - серия документов, публикуемая сообществом исследователей и разработчиков, руководствующихся практическими интересами, в которой описывается набор протоколов и обобщается опыт функционирования Интернет.
В прошлый раз была
развернута система IDS Snort на FreeBSD и веб-интерфейс BASE. Информация по
атакам несомненно полезна, полезен и позволяет быть в курсе угроз, но
блокировать их прийдется самому. Без автоматизации этого процесса такая схема
будет не достаточно полной и эффективной. Для остановки атак предлагается
использовать SnortSAM (
www.snortsam.net ), который может заблокировать IP-адрес,
перенастраивая правила IP Filter (ipf), ipfw2, Packet Filter (pf), Linux
IPtables/EBtables, MS ISA Server firewall/proxy, некоторых роутеров Cisco и так
далее. Причем один SnortSAM может управлять настройками сразу нескольких
файерволов (мощная фича). Сам SnortSAM состоит из двух компонентов: патч к Snort
(устанавливается при помощи инструкции ‘-DWITH_SNORTSAM’) и собственно
управляющей программы. Устанавливаем:
# cd /usr/ports/security/snortsam# make install clean
Параметр у SnortSAM только один:
OPTIONS= PFW "Enable IPFW table checking if it set deny rules" on
По умолчанию он включен, в большинстве случаев нет смысла его изменять.
Копируем шаблон конфига:
Опций внутри snortsam.conf довольно много, многие из них обеспечивают
подключение и настройку файерволов с внешних машин. Конфигурируем:
# ee /usr/local/etc/snortsam/snortsam.conf
; Пароль для доступа со всех внешних машин должен совпадать с указанным в
snort.conf. При помощи другого параметра "accept" можно указывать пароль
для каждой системы
defaultkey snortsam_key
; Порт, на котором SnortSAM будет слушать подключения (по умолчанию 898).
port 898
; Внутренние машины нельзя блокировать
dontblock 192.168.1.0/24
; Список корневых DNS-серверов, идет в комплекте
include rootservers.cfg
; Режим демона
daemon
; Файл журнала и уровень протоколирования
logfile snortsam.log
loglevel 3
; Для блокировки используем IP Filter
ipf le0
И в snort.conf добавляем такую строку:
output alert_fwsam: 127.0.0.1/snortsam_key
Где 127.0.0.1 – адрес компьютера, на котором работает SnortSAM, и через дробь
ключ доступа к нему. Помимо этого, в каждое правило Snort, при совпадении с
которым необходима блокировка, следует добавить параметр «‘fwsam: {кто},
{время};’». Например, чтобы источник блокировался на час, пишем так «fwsam: src,
1 hour;». Для этих целей как раз и подходит Oinkmaster.
Для проверки можно создать в local.rules два правила, где 192.168.1.1 – адрес
системы с установленным Snort:
alert tcp any any -> 192.168.1.1 11110 (msg:"TEST log 11110/tcp"; sid:1111110;)
alert tcp any any -> 192.168.1.1 11111 (msg:"TEST block 11111/tcp"; sid:1111111; fwsam:src[in],5min;)
Теперь при подключении телнетом к порту 11110 мы получим предупреждающее
сообщение в журнале, а при подключении к порту 11111 чересчур активный узел
будет блокирован на 5 минут. В итоге мы получили полноценную систему защиты,
которая будет днем и ночью защищать твои сервера. Эту схему можно развивать,
использовав несколько сенсоров Snort и агентов SnortSAM. Естественно потребуется
тонкая подгонка правил и настроек под конкретную обстановку.