суббота, 12 марта 2022 г.

NFTables не работают логи в LXC-контейнере

  Есть система Линукс в которой контейнер LXC . В контейнере свои правила брандмауэра NFTables. Понадобилось мне из NFTables посылать сообщения в лог. Команда типа такой:

 tcp dport 22 ct state new log prefix "nftables ssh" drop

Где меня ждал облом. В логах этих записей не было. 

Решение подсказала статья LOG внутри LXC (iptables / netfilter) а в  [lxc-users] LXC and netfilter log.объяснялось почему не работает.

1. Ставим пакет

apt-get install ulogd2

2. Меняем правило, добавляем строку "group 0" чтобы выглядело примерно так

 tcp dport 22 ct state new log prefix "nftables ssh" group 0 drop

3. После чего смотрим файл

/var/log/ulog/syslogemu.log 

Краткое объяснение из второй статьи выглядит так:

Логирование из сетевого пространства имен другого чем init было запрещено начиная с ядра 3.10 для того чтобы защитить основную машину от чрезмерного потока лог-сообщений изнутри контейнера. Снова разрешить логирование можно командой 

echo 1 >/proc/sys/net/netfilter/nf_log_all_netns

В оригинале

Logging from network namespaces other than init has been disabled since
kernel 3.10 in order to prevent host kernel log flooding from insidea container.
allow logging from non-init namespaces") backported, you can enable
netfilter logging from other network namespaces by
echo 1 >/proc/sys/net/netfilter/nf_log_all_netns
(the command must be issued from init_net).


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

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