nftables не пишет в syslog

nftables не пишет в syslog

Запуск Debian 10 в контейнере LXC:

# apt-get -y install nftables
# nft --version
nftables v0.7 (Scrooge McDuck)
# nft flush ruleset
# nft add table inet filter
# nft add chain inet filter input
# nft add rule inet filter input log
# nft list ruleset
table inet filter { 
    chain input {
        log
    }
}

Затем я захожу в /var/log/syslog, создаю сетевой трафик и... Я не вижу никаких сообщений отnftablesсовсем.

Я также пытался (безуспешно) определить правило следующим образом:

nft add rule inet filter input log prefix \"FINDME \" counter

Еще тесты:

# logger test && tail -1 /var/log/syslog
Aug 18 20:39:53 my-server root: test
# echo "test2" | systemd-cat && tail -1 /var/log/syslog
Aug 18 20:40:52 my-server cat[1907]: test2
# uname -v
 #1 SMP PVE 5.4.34-2 (Thu, 07 May 2020 10:02:02 +0200)

Почемуnftablesне пишу моемусистемный журнал?

Бонусный вопрос: будет ли возможность запустить действие при совпадении? Например, хранить заблокированные IP-адреса в базе данных.

решение1

Ну... Благодаря подсказке @anx я понял, что, по-видимому,сетевой фильтресть некоторые трудности с отправкой данныхrsyslog.

Вероятно, это как-то связано с тем, что хост представляет собой контейнер LXC без собственного ядра иcgroupsв гипервизоре... (Буфф, я вступаю на темную территорию)... Ну... Ладно.

В любом случае, если у кого-то возникнет похожая проблема, мне удалось получить некоторые данные журнала, отправив их вулогд. Вот шаги, которые нужно выполнить, чтобы запустить базовый пример:

# apt-get -y install nftables ulogd2
# nft flush ruleset
# nft add table inet filter
# nft add chain inet filter input '{ type filter hook input priority 0 ; }'
# nft add rule inet filter input log prefix "FINDME" group 0 accept
# nft list ruleset
table inet filter {
    chain input {
        type filter hook input priority 0; policy accept;
        log prefix "FINDME" group 0 accept
    }
}
# tail -f /var/log/ulog/syslogemu.log

решение2

Я столкнулся с очень похожей проблемой: nftables не регистрировался при запуске внутри сетевого пространства имен. Решение от Julen не сработало для меня.

Поскольку я не запускаю ни один контейнер, я могу решить свою проблему с помощью

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

Подробнее: https://blog.raymond.burkholder.net/index.php?/archives/787-nftables-network-namespace-logging.html

Связанный контент