Restriktive vs. permissive Firewall-Richtlinien
Neben der Syntax, die Sie zum Verwalten einer Firewall kennen müssen, müssen Sie die Aufgaben der Firewall definieren, um zu entscheiden, welche Richtlinie implementiert wird. Es gibt 2 Hauptrichtlinien, die ein Firewall-Verhalten definieren, und verschiedene Möglichkeiten, sie zu implementieren.
Wenn Sie Regeln hinzufügen, um bestimmte Pakete, Quellen, Ziele, Ports usw. zu akzeptieren oder abzulehnen. Die Regeln bestimmen, was mit dem Verkehr oder Paketen passiert, die nicht in Ihre Firewall-Regeln eingeordnet sind.
Ein extrem einfaches Beispiel wäre: Wenn Sie definieren, ob Sie die IP x . auf die Whitelist oder Blacklist setzen.x.x.x, was passiert mit dem Rest?.
Angenommen, Sie setzen den von der IP-Adresse kommenden Datenverkehr auf die Whitelist x.x.x.x.
EIN freizügig Richtlinie würde alle IP-Adressen bedeuten, die nicht x sind.x.x.x kann sich verbinden, also y.ja.ja.y oder z.z.z.z kann verbinden. EIN restriktiv Die Richtlinie verweigert den gesamten Datenverkehr von Adressen, die nicht x sind.x.x.x.
Kurz gesagt, eine Firewall, nach der alle Datenverkehr oder Pakete, die nicht in ihren Regeln definiert sind, nicht passieren dürfen, ist restriktiv. Eine Firewall, nach der jeder Verkehr oder alle Pakete, die nicht in ihren Regeln definiert sind, erlaubt ist, ist freizügig.
Die Richtlinien können für eingehenden und ausgehenden Datenverkehr unterschiedlich sein. Viele Benutzer neigen dazu, eine restriktive Richtlinie für eingehenden Datenverkehr zu verwenden, wobei eine zulässige Richtlinie für ausgehenden Datenverkehr beibehalten wird. Dies variiert je nach Verwendung des geschützten Geräts.
Iptables und UFW
Während Iptables ein Frontend für Benutzer ist, um die Kernel-Firewall-Regeln zu konfigurieren, ist UFW ein Frontend zum Konfigurieren von Iptables, sie sind keine echten Konkurrenten nicht durch UFW angewendet werden, spezifische Regeln, um bestimmte Angriffe zu verhindern.
Dieses Tutorial zeigt Regeln, die ich unter den besten Firewall-Praktiken betrachte, die hauptsächlich, aber nicht nur mit UFW, angewendet werden.
Wenn Sie UFW nicht installiert haben, installieren Sie es, indem Sie Folgendes ausführen:
# apt installieren ufw
Erste Schritte mit UFW:
Lassen Sie uns zunächst die Firewall beim Start aktivieren, indem Sie Folgendes ausführen:
# sudo ufw aktivieren
Hinweis: bei Bedarf können Sie die Firewall mit der gleichen Syntax deaktivieren, indem Sie „enable“ durch „disable“ ersetzen (sudo ufw disable).
Sie können den Firewall-Status jederzeit ausführlich überprüfen, indem Sie Folgendes ausführen:
# sudo ufw Status ausführlich
Wie Sie in der Ausgabe sehen können, ist die Standardrichtlinie für eingehenden Datenverkehr restriktiv, während die Richtlinie für ausgehenden Datenverkehr freizügig ist. Die Spalte „deaktiviert (geroutet)“ bedeutet, dass Routing und Weiterleitung deaktiviert sind.
Für die meisten Geräte halte ich eine restriktive Richtlinie für einen Teil der besten Firewall-Praktiken für die Sicherheit. Beginnen wir daher mit der Ablehnung des gesamten Datenverkehrs mit Ausnahme des von uns als akzeptabel definierten, einer restriktiven Firewall:
# sudo ufw default eingehende verweigern
Wie Sie sehen, warnt uns die Firewall, unsere Regeln zu aktualisieren, um Fehler bei der Bedienung von Clients zu vermeiden, die sich mit uns verbinden. Der Weg, dasselbe mit Iptables zu tun, könnte sein:
# iptables -A INPUT -j DROPDas verweigern Regel auf UFW wird die Verbindung trennen, ohne die andere Seite zu informieren, dass die Verbindung abgelehnt wurde. Wenn Sie möchten, dass die andere Seite weiß, dass die Verbindung abgelehnt wurde, können Sie die Regel "ablehnen" stattdessen.
# sudo ufw default eingehende ablehnen
Sobald Sie den gesamten eingehenden Datenverkehr unabhängig von einer Bedingung blockiert haben, können Sie diskriminierende Regeln festlegen, um genau zu akzeptieren, was wir akzeptieren möchten, zum Beispiel wenn wir einen Webserver einrichten und Sie alle Petitionen akzeptieren möchten, die auf Ihren Webserver eingehen, in Port 80, ausführen:
# sudo ufw erlauben 80
Sie können einen Dienst sowohl über die Portnummer als auch über den Namen angeben, zum Beispiel können Sie den prot 80 wie oben oder den Namen http verwenden:
Zusätzlich zu einem Dienst können Sie auch eine Quelle definieren, z. B. können Sie alle eingehenden Verbindungen bis auf eine Quell-IP verweigern oder ablehnen.
# sudo ufw erlauben von
In UFW übersetzte gängige iptables-Regeln:
Die Begrenzung von rate_limit mit UFW ist ziemlich einfach. Dies ermöglicht es uns, Missbrauch zu verhindern, indem wir die Anzahl begrenzen, die jeder Host einrichten kann, wobei UFW die Rate für ssh begrenzen würde:
# sudo ufw-Limit von jedem Port 22# sudo ufw limit ssh/tcp
Um zu sehen, wie UFW die Aufgabe unten einfach gemacht hat, haben Sie eine Übersetzung der obigen UFW-Anweisung, um dieselbe anzuweisen:
# sudo iptables -A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEU-m aktuell --set --name DEFAULT --mask 255.255.255.0 --rsource
#sudo iptables -A ufw-user-input -p tcp -m tcp --dport 22 -m conntrack --ctstate NEU
-m kürzlich --update --seconds 30 --hitcount 6 --name DEFAULT --mask 255.255.255.255
--rsource -j ufw-user-limit
# sudo iptables -A ufw-user-input -p tcp -m tcp --dport 22 -j ufw-user-limit-accept
Die oben mit UFW geschriebenen Regeln wären:
Ich hoffe, Sie fanden dieses Tutorial zu den Best Practices für die Einrichtung der Debian-Firewall für die Sicherheit nützlich.