[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