Ich verwende Fedora 20 und möchte sehen, was meine Firewall im Hintergrund tut. Ist es möglich, ein Protokoll des von FirewallD blockierten Datenverkehrs anzuzeigen?
Ich verwende Fedora 20 und möchte sehen, was meine Firewall im Hintergrund tut. Ist es möglich, ein Protokoll des von FirewallD blockierten Datenverkehrs anzuzeigen?
Antworten:
Laut dieser Seite befinden sich die FirewallD-Protokolle unter /var/log/firewalld
. Um Debug-Meldungen zu erhalten, müssen Sie diese mit --debug
oder ausführen --debug=2
.
Ich weiß, dass dies ein veralteter Beitrag ist, aber ich habe heute danach gesucht und Tonnen alter Blogs gefunden, die versuchen, dieses Problem zu beheben. Für die Öffentlichkeit sollte dieses Update von Red Hat mehr als nur für Abonnenten verfügbar sein:
Aktualisieren Sie von Errata RHSA-2016: 2597 auf firewalld-0.4.3.2-8.el7
Geben Sie an, welche Pakete protokolliert werden sollen
firewall-cmd --set-log-denied=<value>
Der Wert kann einer von allen sein: Unicast, Broadcast, Multicast oder Off
Für die Protokollierung des durch blockierten Datenverkehrs firewalld
hat der folgende Ansatz bei rsyslogd
mir funktioniert:
Bearbeiten /etc/sysconfig/firewalld
und aktualisieren Sie den Wert für LogDenied
to all
(oder nach Bedarf).
LogDenied=all
starte firewalld neu
sudo systemctl restart firewalld
Dadurch werden normalerweise Protokollierungsregeln unmittelbar vor dem Ablehnen / Löschen von Regeln in der Firewall hinzugefügt.
LOG all -- anywhere anywhere LOG level warning prefix "IN_drop_DROP: "
LOG all -- anywhere anywhere LOG level warning prefix "FINAL_REJECT: "
Erstellen Sie eine Datei mit dem Namen /etc/rsyslog.d/custom_iptables.conf
(Note-Erweiterung is.conf) und fügen Sie die folgenden Anweisungen hinzu:
:msg,contains,"_DROP" /var/log/iptables.log
:msg,contains,"_REJECT" /var/log/iptables.log
& stop
Starten Sie rsyslog neu
sudo systemctl restart rsyslog
Jetzt werden die verworfenen und abgelehnten Pakete protokolliert /var/log/iptables.log
journalctl -f
. FWIW, zunächst basierend auf der anderen Antwort, habe ich nur den Teil LogDenied = all ausgeführt, aber es war nicht genug.
_iptables.conf
→ umzubenennen _firewalld.conf
, um Verwirrung zu vermeiden?
/etc/sysconfig
Verzeichnis, stattdessen bearbeite ich die /etc/firewalld/firewalld.conf
Datei. Ich habe es nicht bemerkt, als ich diese Antwort das letzte Mal verwendet habe, weil LogDenied=all
ich Schritt für Schritt die andere Antwort verwendet habe.
/etc/firewalld/firewalld.conf