Назад | Перейти на главную страницу

Snort не отправляет файл журнала предупреждений на сервер системного журнала?

Я настроен на три виртуальные машины под управлением Ubuntu - сервер, клиент и шлюз. Мне поручено настроить Snort на шлюзе для отслеживания "атак" от клиента к серверу. Snort должен отправлять файлы журнала на сервер rsyslog, который я настроил на сервере. Мне не удается отправить эти журналы.

В файле snort.conf я установил:

output alert_syslog: LOG_AUTH LOG_ALERT

Я сбросил свои iptables и открыл все для тестирования (Nmap показывает, что 514 действительно открыт). Я отредактировал файл rsyslog.conf на шлюзе и добавил:

*.* @192.168.50.5

В файле rsyslog.conf на сервере я добавил:

*.* /var/log/snort.log

И раскомментировал следующее в обоих:

$ModLoad imudp.so
$UDPServerRun 514

Когда я запускаю (eth2 = Client):

snort -A console -i eth2 -c /etc/snort/snort.conf

И пингуйте сервер от клиента (у меня есть правило Snort для захвата ICMP), файл журнала создается на шлюзе в /var/log/snort/snort.log.xxxxxxxxxx. Однако на сервере ничего не отображается. Наблюдая за пакетами в Wireshark, я получаю два сообщения системного журнала при запуске Snort и еще два при выходе (^ C). AUTHPRIV.INFO просто говорит «сеанс открыт для пользователя root» и «сеанс закрыт для пользователя root»:

Для справки, я пытался следовать этому руководству здесь:

http://books.google.com/books?id=TPXusCxyKXAC&pg=PA115&lpg=PA115&dq=log+local0+snort.conf&source=bl&ots=PeMZAPE7DF&sig=Q4R5rkbvDZjfwoCOGL7Gy-1gHho&hl=en&sa=X&ei=gYw_VL3iBcHjoAS0j4KQBw&ved=0CFUQ6AEwCQ#v=onepage&q&f=false

Кто-нибудь знает, что происходит?

Спасибо за любой совет.

Я бы сказал, что если сообщения системного журнала об открытии и закрытии сеансов проходят, тогда rsyslog предположительно выполняет свою задачу на обоих концах (но подтвердите это, отправив в системный журнал на шлюзе, используя logger). Кроме того, тот факт, что файл журнала создается на шлюзе, предполагает, что сообщения журнала неправильно обрабатываются на шлюзе, а не позже в цепочке.

Я бы хотел подтвердить, что snort на самом деле отправляет UDP в syslog. Есть ли у вас ожидаемые пакеты на порту 514, предположительно на интерфейсе обратной связи шлюза?

Похоже, вы можете просто обойти локальный системный журнал и перейти непосредственно к хосту сервера:

вывод alert_syslog: host = 192.168.50.5: 514, LOG_AUTH LOG_ALERT

Если это не нравится, что произойдет, если вы явно отправите вывод snort на localhost: 514? Или на другой IP-адрес на этом хосте.

Есть ли проблемы с брандмауэром, которые могут блокировать пакеты на порт 514 шлюза?

Вы перезапустили snort, чтобы получить новую конфигурацию? Читает файл конфигурации, как вы думаете? (Попробуйте указать это явно с помощью -cи / или подтверждая, что это часть командной строки, которую вы видите с помощью ps).

(В какой-то момент вы захотите ограничить то, что записывается как сообщения snort, но это не то, на чем вы сейчас застряли).

Обратите внимание, что в журналах Ubuntu Snort по умолчанию используется функция LOG_AUTH, поэтому вам необходимо tail -f /var/log/auth.log скорее, чем /var/log/syslog. Просто записка от кого-то, кто на этом застрял :)