Além da filtragem baseada em seletores, o rsyslogd pode filtrar os padrões encontrados nas propriedades da mensagem de log. Para realizar o que você está tentando fazer, você pode criar um filtro baseado em propriedade para corresponder à string que você está usando em suas regras do iptables. Se você usasse --log-prefix "unique_prefix: "
em sua regra do iptables, você precisaria adicionar isto ao rsyslog.conf:
:msg,startswith,"unique_prefix" /var/log/iptables
Esta regra testará as mensagens de log do seu prefixo e as enviará para / var / log / iptables (além de onde quer que o rsyslog esteja configurado para enviá-las). Se você precisar que as mensagens apareçam em / var / log / iptables, mas não em outro lugar, coloque a nova regra acima de outras e siga-a com uma linha contendo & ~
. Exemplo completo:
:msg,startswith,"unique_prefix" /var/log/iptables
& ~
#
# The rest of my rules appear below
# ...
*.info;mail.none;authpriv.none;cron.none /var/log/messages
As regras do Rsyslog podem ter várias ações. Ações subseqüentes são definidas em novas linhas que começam com um e comercial ( &
). No exemplo acima, a primeira regra tem duas ações: enviar a saída para / var / log / iptables e, em seguida, descartar a mensagem ( ~
). Consulte documentos do rsyslog sobre ações e filtros para mais informações sobre as regras nesta resposta
Editado para usar startswith
em vez de contains
para considerações de desempenho. Já que o iptables --log-prefix
é de fato um prefixo, e assim será no início da mensagem.