Heim >Betrieb und Instandhaltung >Betrieb und Wartung von Linux >Wie richte ich mit Firewall oder iptables eine Firewall in Linux ein?
Die Einrichtung einer Firewall in Linux unter Verwendung von firewalld
oder iptables
beinhaltet aufgrund ihrer architektonischen Unterschiede unterschiedliche Ansätze. firewalld
ist ein dynamischer Firewall-Daemon, der eine benutzerfreundliche Schnittstelle zum Verwalten von Firewall-Regeln bietet, während iptables
ein Befehlszeilen-Dienstprogramm ist, das das Netfilter-Framework des Kernels direkt manipuliert.
Mit Firewalld:
firewalld
installiert ist. Bei den meisten Verteilungen erfolgt dies mit dem Paketmanager (z. apt install firewalld
auf Debian/Ubuntu, dnf install firewalld
auf Fedora/Centos/Rhel).systemctl start firewalld
und ermöglichen Sie ihn mit dem Start mit systemctl enable firewalld
.firewalld
verwendet "Zonen", um verschiedene Netzwerkkontexte zu definieren (z. B. "öffentlich", "intern", "dmz"). Jede Zone verfügt über einen Standard -Regeln. Sie können Zonen mit firewall-cmd --get-active-zones
auflisten. Um einen Dienst wie SSH (Port 22) zur Standardzone (normalerweise "öffentlich") hinzuzufügen, verwenden Sie firewall-cmd --permanent --add-service=ssh
. Um die Änderungen dauerhaft zu machen, verwenden Sie die --permanent
Flag. Laden Sie die Firewall mit firewall-cmd --reload
um die Änderungen anzuwenden.firewall-cmd --permanent --add-port=80/tcp
(für http) oder Bereiche mit firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
.Mit iptables:
iptables
ist normalerweise standardmäßig in den meisten Linux -Verteilungen enthalten.iptables
verwendet Ketten (z. B. INPUT
, OUTPUT
, FORWARD
), um Regeln zu verwalten. Jede Regel gibt die Quell-/Ziel -IP -Adressen, Ports, Protokolle und Aktion an (Akzeptieren, Drop, Ablehnung). Zum Beispiel, um SSH -Verbindungen zuzulassen: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.iptables
-Regeln sind bei Neustarts nicht bestehen. Sie müssen sie mit einem Skript oder einem Dienstprogramm wie iptables-save
speichern und zur Startzeit mit einem Startskript laden. Die genaue Methode variiert je nach Verteilung.iptables
bietet eine extrem feinkörnige Kontrolle und ermöglicht komplexe Regelsätze mit verschiedenen Übereinstimmungskriterien und benutzerdefinierten Ketten. Dies erfordert jedoch ein tiefes Verständnis der Networking- und iptables
-Syntax. Der Hauptunterschied liegt in ihrem Ansatz zum Firewall -Management. firewalld
bietet eine übergeordnete, benutzerfreundliche Schnittstelle, die oben auf iptables
aufgebaut ist. Es vereinfacht gemeinsame Firewall -Aufgaben und erleichtert es, Zonen, Dienste und Ports zu verwalten. iptables
hingegen bietet eine direkte Kontrolle über das Netfilter-Framework, das eine größere Flexibilität bietet, aber mehr technisches Fachwissen erfordern.
Hier ist eine Tabelle, die die wichtigsten Unterschiede zusammenfasst:
Besonderheit | Firewall | iptables |
---|---|---|
Schnittstelle | Befehlszeilen-Tool mit benutzerfreundlichen Optionen | Nur Befehlszeile, komplexe Syntax |
Konfiguration | Zonen, Dienste, Ports, reiche Regeln | Ketten, Regeln mit spezifischen Übereinstimmungskriterien |
Ausdauer | Eingebauter Persistenzmechanismus | Erfordert manuelles Speichern und Laden beim Start |
Komplexität | Einfacher zu lernen und zu verwenden | Steilere Lernkurve, komplexer |
Flexibilität | Weniger flexibel als iptables | Sehr flexibel, ermöglicht komplizierte Regeln |
Dynamische Updates | Unterstützt dynamische Updates | Manuelle Aktualisierungen erforderlich |
Mit Firewalld:
Um einen bestimmten Port zuzulassen (z. B. HTTP auf Port 80):
<code class="bash">firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload</code>
Um einen bestimmten Port zu verweigern (z. B. FTP auf Port 21):
Dies ist mit firewalld
weniger einfach. Sie müssen wahrscheinlich eine benutzerdefinierte Zone erstellen oder umfangreiche Regeln verwenden, um dies genau zu erreichen. Im Allgemeinen ist firewalld
so konzipiert, dass es standardmäßig zulässt und explizit leugnet.
Um einen bestimmten Dienst zuzulassen (z. B. SSH):
<code class="bash">firewall-cmd --permanent --add-service=ssh firewall-cmd --reload</code>
Mit iptables:
Um einen bestimmten Port zuzulassen (z. B. HTTP auf Port 80):
<code class="bash">iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT # If you want to allow outgoing traffic on port 80 as well. service iptables save # Save the rules (method varies by distribution)</code>
Um einen bestimmten Port zu verweigern (z. B. FTP auf Port 21):
<code class="bash">iptables -A INPUT -p tcp --dport 21 -j DROP service iptables save # Save the rules (method varies by distribution)</code>
Unabhängig davon, ob Sie firewalld
oder iptables
verwenden, befolgen Sie diese Best Practices:
INPUT
, da dies eingehende Verbindungen steuert.firewalld
als auch iptables
unterstützen dies), um Verbindungen zu verfolgen und den Wiedergutmachungsverkehr zu ermöglichen.Denken Sie daran, Ihre Firewall -Regeln immer in einer kontrollierten Umgebung zu testen, bevor Sie sie in einem Produktionssystem bereitstellen. Falsch konfigurierte Firewall -Regeln können Ihr System unzugänglich machen.
Das obige ist der detaillierte Inhalt vonWie richte ich mit Firewall oder iptables eine Firewall in Linux ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!