En mis iptables, tengo una regla que registra los paquetes descartados:
-A INPUT -i eth0 -j LOG --log-prefix "FW: " --log-level 7
-A INPUT -i eth0 -j DROP
Y en /etc/rsyslog.conf
, tengo otra regla que envía estos registros a un archivo dedicado /var/log/firewall.log
.
:msg, contains, "FW: " -/var/log/firewall.log
& ~
El & ~
borra los registros inmediatamente, para que no se inunden syslog
u otros archivos de registro.
Esto funciona bien, excepto que se inunda dmesg
con esos registros de firewall (no /var/log/dmesg
sino la salida del comando dmesg
).
¿Hay alguna manera de evitar que se muestren estos registros dmesg
?
dmesg
se inunde, no sobre las reglas del firewall.ulogd2
. Así es como resolví el problema.Respuestas:
Podría usar el
NFLOG
objetivo en lugar deLOG
:Todo lo que necesitas es un
nfnetlink_log
programa de registro capaz. Los mensajes irían allí y el proceso del espacio de usuario decidiría si registrar el paquete o no.Otra cosa que podría intentar sería limitar la
LOG
regla a un umbral específico:Esto registraría en promedio 10 paquetes por minuto. Por supuesto, puede ajustar esto a sus necesidades.
fuente
rsyslog
para registrarNFLOG
paquetes. Necesito alguna solución que funcionersyslog
.Puede estar relacionado con el nivel de registro que está utilizando en iptables. Según tengo entendido, los niveles de registro de la documentación de rsyslog son: "La prioridad es una de las siguientes palabras clave, en orden ascendente: depuración, información, aviso, advertencia, advertencia (igual que advertencia), error, error (igual que error), crit, alert, emerg, panic (igual que emerg) ". ¿Qué hay de tratar de especificar el nivel de registro en iptables utilizando su nombre, es decir, 'aviso'? Bueno, me sirve para publicar sin verificar, ya que ahora creo que ese no es el problema en absoluto. Implementé un esquema similar al descrito anteriormente y obtengo el mismo problema. Mi centos 7 kernel es v3.10.0 y aparentemente desde v3.5 parece que el registro del kernel se realiza usando / dev / kmsg y supongo que dmesg de alguna manera obtiene su entrada desde allí.
fuente
Cuando haya establecido el nivel de registro en 7 con el comando:
Luego, simplemente puede filtrar estos mensajes pasando el umbral de nivel al dmesg:
fuente
¿Por qué te importa?
dmesg
es una herramienta de bajo nivel para imprimir mensajes recientes del núcleo, y usted solicitó que el núcleo registrara los paquetes descartados.Configure el sistema syslog de su sistema para registrar mensajes de iptables en un archivo de registro separado de otros mensajes del núcleo, y use los archivos de registro que escribe en lugar de
dmesg
.fuente