Eu finalmente encontrei uma solução.
Este é o dispositivo fifo que eu crio quando o sistema é inicializado:
LOG_DEV=/dev/logi
if [ ! -r $LOG_DEV ]; then
mkfifo $LOG_DEV
chmod 640 $LOG_DEV
chown root:morfik $LOG_DEV
fi
Acabei de adicionar isso ao arquivo /etc/init.d/rsyslog
.
Tendo esse dispositivo, posso enviar todos os registros, colocando a seguinte linha no arquivo /etc/rsyslog.conf
:
*.* -/dev/logi
É a primeira linha na seção de regras, então cada log vai até lá e continua processando outras regras no arquivo de configuração. A próxima regra nesse arquivo é:
:msg,contains,"IPTABLES:" /var/log/iptables
& stop
O qual envia os logs do iptables para um arquivo específico, e depois disso, o rsyslog simplesmente pára de processar as entradas que contêm IPTABLES:
frase. As próximas regras são apenas regras normais no arquivo de configuração do rsyslog.
Então eu consegui o que eu queria - todos os logs são enviados para o dispositivo fifo + um arquivo de log separado para entradas do iptables.