[sisyphus] JFYI: snortd на нескольких интерфейсах
Nick Fedchik
=?iso-8859-1?q?nick_=CE=C1_fedchik=2Eorg=2Eua?=
Чт Ноя 27 16:55:39 MSK 2003
Имеем хост с двумя (более чем одним) интерфейсами Ethernet.
Симптом: При использовании одного файла конфигурации для запускаемых процессов
на каждый интерфейс в файл /var/run/snort_eth1.pid записывался pid от
процесса для интерфейса eth0. Только один процесс snort выполнялся.
Изначально была сделана поспешная (и, как оказалось при разборе проблемы,
неверная) попытка быстрой конфигурации snort для двух интерфейсов:
ADDPARAMS_eth0="-A fast -d -D -c /etc/snort/snort.conf"
ADDPARAMS_eth1="-A fast -d -D -c /etc/snort/snort.conf"
Рекоммендация: вынести инициализацию переменных в отдельный конфигурационный
файл, специфичный для каждого интерфейса. Такой файл может содержать
переменные со специфичными для интерфейса значениями, и включать основной
конфигурационный файл (который как правило - однотипный).
Пример /etc/snort/snort-eth1.conf:
var HOME_NET $eth1_ADDRESS
var EXTERNAL_NET !$HOME_NET
var DNS_SERVERS [192.168.1.2,192.168.1.3]
var SMTP_SERVERS [192.168.1.1,192.168.1.4]
var HTTP_SERVERS [192.168.1.10]
var SQL_SERVERS [192.168.1.11]
var TELNET_SERVERS $HOME_NET
include /etc/snort/snort.conf
Таким образом указываем отдельные конфиг. файлы для каждого интерфейса:
/etc/sysconfig/snort
INTERFACES=eth0,eth1
ADDPARAMS_eth0="-A fast -d -D -I -c /etc/snort/snort-eth0.conf"
ADDPARAMS_eth1="-A fast -d -D -I -c /etc/snort/snort-eth1.conf"
Замечание: я также добавил опцию -I, но это не влияет на проблему.
Что может ввести в заблуждение, так это способ задания переменной
HOME_NET типа ethX_ADDRESS - без явного указания интерфейса опцией -i туда
подставляется первый попавшийся интерфейс (как правило - eth0)
Пример:
Файл /etc/snort/snort-eth1.conf содержит
var HOME_NET $eth1_ADDRESS
Запускаем
snort -T -c /etc/snort/snort-eth1.conf
И наблюдаем:
...
Initializing Network Interface eth0
...
ERROR: Undefined variable name: (/etc/snort/snort-eth1.conf:2): eth1_ADDRESS
Fatal Error, Quitting..
Чего нет в случае
snort -i eth1 -T -c /etc/snort/snort-eth1.conf
Это исправление IMHO можно внести в пакет:
/etc/init.d/snortd
--- snortd.bad 2003-11-11 10:26:21 +0200
+++ snortd 2003-11-27 15:13:56 +0200
@@ -36,6 +36,7 @@
--expect-user snort -- \
snort -u snort -g snort \нужно
-t /var/log/snort \
+ -i $i \
$(eval echo $(echo \$`echo ADDPARAMS_$i`))
RETVAL=$?
if [ $RETVAL != 0 ]; then
Кстати: Snort 2.0.5 is available
--
Best Regards, Nick Fedchik
http://www.fedchik.org.ua/
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: signature
Url : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20031127/0a2477b0/attachment-0009.bin>
Подробная информация о списке рассылки Sisyphus