Nas minhas iptables, tenho uma regra que registra pacotes descartados:
-A INPUT -i eth0 -j LOG --log-prefix "FW: " --log-level 7
-A INPUT -i eth0 -j DROP
E /etc/rsyslog.conf
, em , eu tenho outra regra que envia esses logs para um arquivo dedicado /var/log/firewall.log
.
:msg, contains, "FW: " -/var/log/firewall.log
& ~
A & ~
exclui os logs imediatamente, para que eles não inundar syslog
ou outros arquivos de log.
Isso funciona bem, exceto pelo fato de inundar dmesg
com esses logs do firewall ( /var/log/dmesg
mas não com a saída do comando dmesg
).
Existe uma maneira de impedir que esses logs sejam mostrados dmesg
?
dmesg
inundações, não sobre regras de firewall.ulogd2
. Foi assim que resolvi o problema.Respostas:
Você pode usar o
NFLOG
destino em vez deLOG
:Tudo o que você precisa é de um
nfnetlink_log
programa de registro capaz. As mensagens chegavam lá e o processo de espaço do usuário decidia se registraria o pacote ou não.Outra coisa que você poderia tentar seria limitar a
LOG
regra a um limite específico:Isso registraria, em média, 10 pacotes por minuto. Obviamente, você pode ajustar isso de acordo com suas necessidades.
fonte
rsyslog
para registrarNFLOG
pacotes. Eu preciso de alguma solução que funcionersyslog
.Pode estar relacionado ao nível do log que você está usando no iptables. Pelo que entendi, os níveis de log da documentação do rsyslog são: "A prioridade é uma das seguintes palavras-chave, em ordem crescente: depuração, informações, aviso, aviso, aviso, aviso (o mesmo que aviso), err, erro (o mesmo que err), crítico, alerta, emergir, pânico (o mesmo que emergir) ". Que tal tentar especificar o nível de log no iptables usando seu nome, ou seja, 'notice'. Bem, serve-me bem para postar sem verificar, pois agora acho que não é esse o problema. Eu implementei um esquema semelhante ao descrito acima e recebo o mesmo problema. Meu kernel do centos 7 é a v3.10.0 e, aparentemente, desde a v3.5, parece que o log do kernel é feito usando / dev / kmsg e presumo que o dmesg de alguma forma obtenha sua entrada a partir daí.
fonte
Quando você tiver definido o nível de log como 7 com o comando:
Em seguida, você pode simplesmente filtrar essas mensagens, passando o limite de nível para o dmesg:
fonte
Por quê você se importa?
dmesg
é uma ferramenta de baixo nível para imprimir mensagens recentes do kernel, e você solicitou que o kernel registrasse pacotes descartados.Configure o sistema syslog do sistema para registrar mensagens do iptables em um arquivo de log separado de outras mensagens do kernel e use os arquivos de log que ele grava em vez de
dmesg
.fonte