среда, 22 апреля 2020 г.

iptables log в altlinux server p8 и p9

Краткая инструкция о том, как настроить логирование пакетов в 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"); };

создаем пункт назначения с именем iptables, в качестве получателя логов указываем файл

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 получает это сообщение, отфильтровывает по префиксу и выводит в файл.

Комментариев нет:

Отправить комментарий