nftables no escribe en syslog

nftables no escribe en syslog

Ejecutando Debian 10 en un contenedor 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
    }
}

Luego, voy a /var/log/syslog, creo algo de tráfico de red y... no veo ningún mensaje denftablesen absoluto.

También intenté (sin éxito) definir la regla de esta manera:

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

Más pruebas:

# 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)

Por que esnftablesno escribirme a miregistro del sistema?

Como pregunta adicional: ¿habría alguna forma de activar una acción cuando ocurra una coincidencia? Por ejemplo, almacenar IP bloqueadas en una base de datos.

Respuesta1

Bueno... Gracias a la pista de @anx me di cuenta de que aparentementefiltro de redtiene algunas dificultades para enviar los datos arsyslog.

Probablemente tenga algo que ver con el hecho de que el host es un contenedor LXC sin kernel propio y elgrupos cen el hipervisor... (Buff, me estoy metiendo en territorio oscuro)... Bueno... Como sea.

De todos modos, si alguien tiene un problema similar, logré obtener un registro enviando los datos aulogd. Estos son los pasos para que un ejemplo básico funcione:

# 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

Respuesta2

Me encontré con un problema muy similar: nftables no se registró cuando se ejecutó dentro de un espacio de nombres de red. La solución de Julen no me funcionó.

Como no estoy ejecutando ningún contenedor, podría solucionar mi problema usando

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

Más detalles: https://blog.raymond.burkholder.net/index.php?/archives/787-nftables-network-namespace-logging.html

información relacionada