Краткая инструкция о том, как настроить логирование пакетов в iptables
Дано - сервер на AltLinux с sysV, платформа p8 (проверено и на p9).
Настройка syslog-ng
в любом месте (подходим разумно!) вписываем примерно такое
## правила iptables
destination iptables { file("/var/log/iptables/iptables.log"); };
filter f_iptables { message("^(\\[.*\..*\] |)Iptables:.*"); };
log { source(sys); filter(f_iptables); destination(iptables); };
Что мы здесь описываем?
destination iptables { file("/var/log/iptables/iptables.log"); };
filter f_iptables { message("^(\\[.*\..*\] |)Iptables:.*"); };
создаем фильтр с именем f_iptables, в котором настраиваем regexp для выборки сообщений от ядра, начинающихся с Iptables:
Честно говоря, код не мой, копипаст, но работает. Как - не знаю ))
log { source(sys); filter(f_iptables); destination(iptables); };
Ну и, собственно, даем команду на запись в файл отфильтрованных сообщений от ядра.
Дальше создаем каталог iptables в /var/log и перезапускаем службу service syslog-ng restart
Но это еще не все. Тут же в лог ничего не повалится. Для этого надо создать правило в iptables, которое бы отправляло в лог требуемые данные. Если кратко, то в любой таблице и в любой цепочке можно написать нечто такое
iptables -A INPUT -i 192.168.0.1 -p tcp -m tcp --dport 3389 -j LOG --log-prefix "Iptables: ms-term: "
и в результате мы будем иметь логитрование всех пакетов, ломящихся на RDP порт терминального сервера. Основная фишка здесь в том, что вместо дествий DROP, REJECT, ACCEPT мы пишем LOG и задаем префикс, которым будут предваряться все сообщения от iptables ядру. Ну а дальше syslog-ng получает это сообщение, отфильтровывает по префиксу и выводит в файл.
Комментариев нет:
Отправить комментарий