Der Beitrag erklärt, wie man rsyslog konfiguriert, um Nachrichten mit einer bestimmten IP-Adresse zu filtern und diese Nachrichten zu löschen. Standardmäßig enthält Syslog keine erweiterte Filterung wie rsyslog. Führen Sie die folgenden Schritte aus, um rsyslog so zu konfigurieren, dass Nachrichten mit bestimmten IP-Adressen gefiltert werden.
1. Installieren Sie rsyslog, falls es noch nicht auf dem System vorhanden ist. Für Redhat-basierte Distributionen:
# yum install rsyslog
2. Verwenden Sie chkconfig/systemctl-Befehle, um den rsyslog-Dienst beim Booten zu aktivieren. Starten Sie auch den Dienst.
# chkconfig rsyslog on ### CentOS/RHEL 6 # systemctl enable rsyslog ### CentOS/RHEL 7
# service rsyslog start ### CentOS/RHEL 6 # systemctl start rsyslog ### CentOS/RHEL 7
3. Um alle Meldungen zu verwerfen, die sich auf die IP-Adresse xx.xx.xx.xx beziehen, bearbeiten Sie bitte /etc/rsyslog.conf und fügen Sie den untenstehenden Verwerfungsfilter oben und nicht unten in der Datei ein.
# vi /etc/rsyslog.conf :msg, contains, "xx.xx.xx.xx " ~
4. Starten Sie den rsyslog-Dienst neu
# service rsyslog restart
Bestätigen
Sie können die oben vorgenommenen Einstellungen mit dem Logger überprüfen Befehl. Der Logger-Befehl wird verwendet, um Syslog-Meldungen manuell in der Befehlszeile zu generieren. Verwenden Sie den folgenden Befehl, um eine Syslog-Nachricht mit der gewünschten IP-Adresse zu generieren.
# logger xx.xx.xx.xx
Überprüfen Sie in der Datei /var/log/messages, dass die obige Meldung nicht protokolliert wird. Stellen Sie außerdem sicher, dass Sie eine andere IP-Adresse verwenden, um sicherzustellen, dass andere Nachrichten, die eine andere IP-Adresse enthalten, nicht verworfen werden.
Filter auf ein bestimmtes Programm/Befehl anwenden
Der Filter kann auch auf ein bestimmtes Programm wie vsftpd zusammen mit der bestimmten IP angewendet werden. Verwenden Sie den folgenden Verwerfungsfilter, um Protokolle für xx.xx.xx.xx IP und auch für den vsftpd-Befehl zu verwerfen.
# vi /etc/rsyslog.conf if $programname == 'vsftpd' and ($msg contains 'xx.xx.xx.xx' or $msg contains 'xx.xx.xx.xx') then ~