Einführung:
Ich habe gerade angefangen, die Firewall UFW zu verwenden, die eine auf Terminalbefehlen basierende Firewall ist. Das Tool schien anfangs etwas schwierig zu verstehen, aber mit ein bisschen Probieren und Fehlern habe ich endlich etwas zum Laufen gebracht. Also hier ist, was ich getan habe.
Ich installiere die UFW-Firewall:apt-get install ufw
Annahme:
Ich möchte die folgenden Bedingungen:
Liste der zuzulassenden Ports vom internen LAN (192.168.100.0/24):ALLE
Liste der zuzulassenden Ports vom lokalen Host (127.0.0.0/16):ALL
Liste der Ports zum Internet:ALL
Liste der Ports zum Zugriff vom Internet:
ssh:22
FTP:21, 20, 20000-20099 (verwendet von pure-ftp)
HTTP:80
HTTPS:443
Gerrit:2222
Ergebnis:Mit Ausnahme der oben genannten Ports sollten alle anderen Ports für das Internet gesperrt sein.
UFW-Befehle zum Konfigurieren der obigen Firewall:
ufw allow from 192.168.100.0/24
ufw allow from 127.0.0.0/16
ufw allow from any to any port 22
ufw allow from any to any port 21
ufw allow 20000:20099/tcp
ufw allow from any to any port 80
ufw allow from any to any port 443
ufw allow from any to any port 2222
Hinweis: Oben gibt es keine Regeln dafür, alle Pakete von Anwendungen ins Internet zu lassen. Der Grund dafür ist, dass das Standardverhalten dieser Firewall darin besteht, dass alle Anwendungen alles an das Internet senden können.
Sie kann überprüft werden, nachdem die UFW-Firewall aktiviert wurde, indem Sie den folgenden Befehl ausgeben:iptables -L -n -v | grep 'Chain OUTPUT'
Ergebnis:Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
Festlegen der Standardrichtlinien
Das ist ziemlich selbsterklärend.ufw default deny incoming
ufw default allow outgoing
Die Firewall ist noch nicht aktiv!
WARNUNG: Falls Sie diese Firewall über eine SSH-Verbindung konfigurieren, stellen Sie sicher, dass der folgende Befehl in den obigen enthalten ist. Ist dies nicht der Fall, werden Sie, sobald Sie die Firewall aktivieren, vom Server ausgesperrt und haben keinen SSH-Zugriff. Schlechte Nachrichten 🙁ufw allow from any to any port 22
Überprüfen Sie die Hinzugefügt Regeln vorher Wir aktivieren die Firewall:ufw show added
Jetzt aktivieren wir die Firewall mit dem Befehl:ufw enable
Wir sehen uns die UFW-Konfiguration an, indem wir den folgenden Befehl ausgeben:ufw status numbered
Sie sollten das folgende Ergebnis erhalten:Status: active
.
To Action From
-- ------ ----
[ 1] Anywhere ALLOW IN 192.168.100.0/24
[ 2] Anywhere ALLOW IN 127.0.0.0/16
[ 3] 22 ALLOW IN Anywhere
[ 4] 21 ALLOW IN Anywhere
[ 5] 20000:20099/tcp ALLOW IN Anywhere
[ 6] 80 ALLOW IN Anywhere
[ 7] 443 ALLOW IN Anywhere
[ 8] 2222 ALLOW IN Anywhere
[ 9] 22 ALLOW IN Anywhere (v6)
[10] 21 ALLOW IN Anywhere (v6)
[11] 20000:20099/tcp ALLOW IN Anywhere (v6)
[12] 80 ALLOW IN Anywhere (v6)
[13] 443 ALLOW IN Anywhere (v6)
[14] 2222 ALLOW IN Anywhere (v6)
Wenn Sie noch einmal neu starten müssen, führen Sie Folgendes aus:ufw disable
ufw reset
Wenn Sie einige Regeln löschen müssen, zum Beispiel die Regeln über den Port 2222:(Regel 8 und 14), löschen wir die Regeln, indem wir ihre Regelnummer verwenden, beginnend mit der letzten zu löschenden in der Liste. Die Logik ist, dass, wenn Sie mit der ersten beginnen, die Regelnummern nach dem ersten Löschen verschoben werden und die letzte zu löschende Regel nicht Regel 14, sondern Regel 13 usw. ist.
Beispiel: ufw delete 14
ufw delete 8
Wenn Sie eine Regel über einer bestehenden einfügen müssen, verwenden Sie die Regelnummer, die hinter der neuen stehen sollte. Zum Beispiel, wenn wir die Regel hinzufügen möchten, den Port 20005 vom Internet abzulehnen.
Hinweis. Hier macht es keinen Sinn (nicht praktisch), sondern nur als Beispiel. Ich würde die neue ‚deny‘-Regel vor der Regel 11 einfügen. Hier ist der Befehl:ufw insert 11 deny 20005
Schauen wir uns das Ergebnis an:ufw status numbered
Ergebnis:Status: active
.
To Action From
-- ------ ----
[ 1] Anywhere ALLOW IN 192.168.100.0/24
[ 2] Anywhere ALLOW IN 127.0.0.0/16
[ 3] 22 ALLOW IN Anywhere
[ 4] 21 ALLOW IN Anywhere
[ 5] 20005 DENY IN Anywhere
[ 6] 20000:20099/tcp ALLOW IN Anywhere
[ 7] 80 ALLOW IN Anywhere
[ 8] 443 ALLOW IN Anywhere
[ 9] 2222 ALLOW IN Anywhere
[10] 22 ALLOW IN Anywhere (v6)
[11] 21 ALLOW IN Anywhere (v6)
[12] 20005 DENY IN Anywhere (v6)
[13] 20000:20099/tcp ALLOW IN Anywhere (v6)
[14] 80 ALLOW IN Anywhere (v6)
[15] 443 ALLOW IN Anywhere (v6)
[16] 2222 ALLOW IN Anywhere (v6)
Wie Sie sehen können, war UFW schlau genug, die Regeln für IPv4 und IPv6 an den richtigen Stellen einzufügen.
Hinweis zum Neustart:
Immer wenn die UFW-Firewall aktiviert ist und ein Neustart erfolgt, werden alle Regeln, die bereits gespeichert sind, in:/lib/ufw/user.rules
/lib/ufw/user6.rules
ODER in:/etc/ufw/user.rules
/etc/ufw/user6.rules
wird beim Neustart reaktiviert.
WARNUNG:Versuchen Sie nicht, diese oben genannten Dateien zu ändern, da einige Wachhunde sicherstellen, dass sie nicht geändert werden, und automatisch zur vorbearbeiteten Version zurückkehren.;-(. Verwenden Sie den UFW-Befehl, um Änderungen an der Firewall vorzunehmen.
UFW auf Xen DOM0 verwenden:
Ich hatte einige Probleme mit der Verwendung von UFW auf XEN DOM0, da UFW standardmäßig die Weiterleitung von Paketen an die DOMUs blockiert.
Um dies zu beheben, bearbeiten Sie die Datei /etc/default/ufw und ändern Sie die folgende Einstellungen zu ACCEPT:DEFAULT_FORWARD_POLICY="ACCEPT"
Dies würde nur DOM0 schützen und den gesamten anderen Datenverkehr an DOMUs weiterleiten, wobei jede DOMU sich selbst schützen muss.
Starten Sie dann UFW wie folgt neu:ufw disable
ufw enable
Für weitere Informationen zu diesem Thema empfehle ich den folgenden Link:
https://www.digitalocean.com/community/tutorials/how-to-setup-a-firewall-with-ufw-on-an-ubuntu- und-debian-cloud-server
Protokollierung
Die Protokollierung von UFW erfolgt standardmäßig in /var/log/syslog . Gehen Sie wie folgt vor, um diese Protokollierung zu deaktivieren:
– Bearbeiten Sie die Datei:/etc/rsyslog.d/20-ufw.conf (siehe Inhalt unten), löschen Sie das „#“, das in der letzten Zeile beginnt, und führen Sie die folgenden Befehle aus, um die Änderungen an der Firewall zu aktualisieren:ufw disable
ufw enable
Inhalt von /etc/rsyslog.d/20-ufw.conf :# Log kernel generated UFW log messages to file
:msg,contains,"[UFW " /var/log/ufw.log
#
# Uncomment the following to stop logging anything that matches the last rule.
# Doing this will stop logging kernel generated UFW log messages to the file
# normally containing kern.* messages (eg, /var/log/kern.log)
#& ~