Come posso configurare /etc/syslog.conf
per salvare le informazioni di registro su iptables
in un file specifico.
Voglio salvare queste informazioni separatamente, così posso estrarre ciò che voglio facilmente e rapidamente.
Risposta accettata:
syslog
Dai un'occhiata alla pagina man di iptables
. Mostra un target chiamato LOG
che può fare quello che vuoi.
Esempio
-
Imposta il livello di registrazione per
LOG
a 4.# DROP everything and Log it iptables -A INPUT -j LOG --log-level 4 iptables -A INPUT -j DROP
-
Configura
syslog.conf
per scrivere questi messaggi in un file separato.# /etc/syslog.conf kern.warning /var/log/iptables.log
-
Riavvia syslogd.
Debian/Ubuntu
$ sudo /etc/init.d/sysklogd restart
Fedora/CentOS/RHEL
$ sudo /etc/init.d/syslog restart
NOTA: Questo metodo di registrazione è chiamato priorità fisse. Sono numeri o nomi (1,2,3,4,..) o (DEBUG, WARN, INFO, ecc.).
rsyslog
Se per caso stai usando rsyslog
, puoi creare un filtro basato sulle proprietà in questo modo:
# /etc/rsyslog.conf
:msg, contains, "NETFILTER" /var/log/iptables.log
:msg, contains, "NETFILTER" ~
Quindi aggiungi questo passaggio alle regole di iptables che desideri registrare:
–log-prefix NETFILTER
In alternativa puoi anche registrare i messaggi utilizzando questo tipo di filtro proprietà:
:msg, startswith, "iptables: " -/var/log/iptables.log
& ~
:msg, regex, "^[ *[0-9]*.[0-9]*] iptables: " -/var/log/iptables.log
& ~
NOTA: Questo secondo metodo non richiede modifiche a iptables
.
Riferimenti
- Forza iptables a registrare i messaggi in un file di registro diverso
- Registrazione dei messaggi di iptables con rsyslog