Настройка пакета Ulogd и Nulog для регистрации событий от пакетного фильтра iptables
Введение
Многие из вас уже знакомы с такой полезной опцией пакетного фильтра iptables как LOG которая позволяет регистрировать определенные пакеты проходящие через него.
В данной статье я опишу полезное дополнение к iptables под названием Ulogd с помощью которого значительно расширяются возможности по регистрации пакетов проходящих через пакетный фильтр.
Также в данной статье рассмотрена настройка WEB интерфейса к Ulogd под названием Nulog.
Итак приступим.
Для совместной работы ulogd в связке с nulog нам потребуется установленный mysql сервер, http-сервер apache с поддержкой php.
Все это можно найти в любом дистрибутиве Linux.
Установка
Пакет ulogd включен в состав дистрибутива ASP Linux 11.
Если вы используете другую операционную систему Linux например RHEL4, то вам необходимо взять srpm пакет в ftp.asplinux.ru и пересобрать из него rpm.
Пакет Nulog можно скачать с http://www.inl.fr/old/Nulog.html. Последняя версия доступная на момент написания данной статьи nulog-1.2.1.
Установим необходимые пакеты :
- rpm -ihv ulogd-1.23-2.i386.rpm
- rpm -ihv ulogd-mysql-1.23-2.i386.rpm
Распакуйте содержимое архива nulog в каталог /var/www/nulog
Настройка
Ulogd
Перейдите в каталог /etc/ и отредактируйте файл ulogd.conf
Нас интересуют следующие строки:
Обязательно включите следующий плагин.
plugin="/usr/lib/ulogd/ulogd_MYSQL.so"
И отредактируйте следующий раздел:
[MYSQL] table="ulog" pass="changeme" user="laforge" db="ulogd" host="localhost"
В дальнейшем описании я буду использовать значения из раздела [MYSQL] которые установлены по умолчанию.
Запустите сервер MySQL командой:
service mysqld start
Войдите в терминал MySQL командой
mysql
вы увидите приглашение на ввод команд:
>
Нам необходимо создать базу данных которую вы указали в разделе [MYSQL] сделать это можно выполнив:
>create database ulogd;
Вы увидите вывод:
Query OK, 1 row affected (0.00 sec)
Значит база данных успешно создана. Также необходимо дать права на эту базу пользователю laforge, разрешить пользователю входить только с машины localhost, и указать пароль для пользователя laforge=changeme.
>grant all on ulogd.* to laforge@localhost identified by 'changeme'; Query OK, 0 rows affected (0.03 sec)
Теперь выйдите из интерфейса mysql выполнив:
>\q
Перейдите в каталог /var/www/nulog/scripts/ в данном каталоге есть файл ulogd.mysqldump который содержит поля базы данных. выполните команду:
mysql -u laforge ulogd -p < ulogd.mysqldump
Вас попросят ввести пароль. Введите changeme.
Теперь вам необходимо указать какие события от пакетного фильтра на необходимо регистрировать.
Для примера мы будем регистрировать попытки присоединиться к 22 порту интерфейса 127.0.0.1
Перейдите в каталог /etc/sysconfig и отредактируйте файл iptables.
*filter :INPUT DROP [0:0] :FORWARD DROP [0:0] :OUTPUT DROP [0:0] -A INPUT -i lo -p tcp --dport 22 -j ULOG -A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPT # Далее следуют остальные правила iptables.
В этот моменте есть одна тонкость: используйте действия ULOG до того как делаете разрешающие действия, т.к правила iptables обрабатываются по порядку.
Перезапустите iptables командой:
service iptables restart
Запустите сервис ulogd :
service ulogd start
Nulog
Перейдите в каталог /var/www/nulog/include/ и подправьте файл config.php установив опции:
$lang=”en” $db_user=”laforge” $db_pwd=”changeme”
Перейдите в каталог /etc/httpd/conf.d создайте там файл nulog.conf следующего содержания:
Alias /nulog "/var/www/nulog" <Directory "/var/www/nulog"> Options None AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 Allow from IP_ADDR </Directory>
Вместо IP_ADDR подставьте ip адрес с которого будет разрешено просматривать статистику работы Nulog.
Перезапустите apache
service httpd restart
Теперь нам необходимо убедиться, что все работает для этого в командной строке наберите
telnet 127.0.0.1 22
тем самым мы создадим событие которое должно попасть в БД ulogd.
Наберите в броузере http://IP_ADDR/nulog/ вместо IP_ADDR подставьте ip адрес или доменное имя компьютера.
Если вы увидели изображение как показано на рисунке, то вы все сделали правильно.
Может распространяться свободно при указании авторства.
Автор: Фролов Денис.
