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 syslogu otros archivos de registro.
Esto funciona bien, excepto que se inunda dmesgcon esos registros de firewall (no /var/log/dmesgsino la salida del comando dmesg).
¿Hay alguna manera de evitar que se muestren estos registros dmesg?

dmesgse inunde, no sobre las reglas del firewall.ulogd2. Así es como resolví el problema.Respuestas:
Podría usar el
NFLOGobjetivo en lugar deLOG:Todo lo que necesitas es un
nfnetlink_logprograma 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
LOGregla a un umbral específico:Esto registraría en promedio 10 paquetes por minuto. Por supuesto, puede ajustar esto a sus necesidades.
fuente
rsyslogpara registrarNFLOGpaquetes. 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?
dmesges 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