So verwenden Sie Iptables Netfilter-Befehle unter Linux

Inhaltsverzeichnis

Sicherheit muss immer eine der Prämissen sein, auf denen Administratoren, Management- und Supportpersonal und im Allgemeinen alle Benutzer eines aktuellen Betriebssystems aufgrund der zahlreichen Bedrohungen, die im Netzwerk vorhanden sind, arbeiten müssen.

Im Fall von Linux-Distributionen verfügen die meisten von ihnen über die fortschrittlichen Tools, um einen Filter auf Netzwerkpakete anzuwenden, sowohl auf der Ebene der Netzwerkpaketsteuerungsverarbeitung bei Eingabe, Bewegung, Steuerung und Ausgabe des Stapels , daher wurden ab Kernel 2.4 iptables eingeführt, die auch netfilter genannt werden und eine höhere Sicherheit und praktische Funktionalitäten zum Schutz des Systems aufweisen.

iptables übernimmt die IPv4-Filterung, während ip6tables die IPv6-Filterung in den heutigen Netzwerken übernimmt.
Solvetic wird eine Analyse der Funktionsweise von iptables und einige der praktischeren Befehle durchführen, die wir daraus entnehmen können.

1. Paketfilterung unter Linux


Der Kernel von Linux-Distributionen verwendet das Tool Netfilter, um die Paketfilterung durchzuführen und damit die Aufgaben des Empfangens oder Stoppens der Pakete auszuführen.

In Netfilter integrierte RegelnNetfilter ist standardmäßig im Linux-Kernel integriert und hat drei Tabellen oder Listen von Regeln, die wie folgt integriert sind:

  • filter: Bezieht sich auf die Standardtabelle für die Paketverwaltung.
  • nat: Seine Funktion besteht darin, Pakete zu ändern, die in einer neuen Verbindung erstellt wurden, die hauptsächlich von NAT verwendet wird.
  • mangle: Wird verwendet, wenn bestimmte Netzwerkpakete geändert werden müssen.

Nun hat jede Tabelle eine Gruppe von eingebauten Ketten, die sich auf die Aktionen beziehen, die von netfilter ausgeführt werden können. Diese sind:

Regeln für FiltertabellenDie integrierten Zeichenfolgen für die Filtertabelle sind:

  • INPUT: Bezieht sich auf die Pakete, die für den Host bestimmt sind.
  • AUSGABE: Dies funktioniert bei Netzwerkpaketen, die lokal generiert wurden.
  • FORWARD: Ordnet die Pakete zu, die durch den Haupthost geroutet wurden.

Regeln für Nat-TabellenDie integrierten Strings für die nat-Tabelle sind:

  • PREROUTING: Seine Funktion besteht darin, Netzwerkpakete zu ändern, sobald sie ankommen.
  • AUSGABE: Es wurde entwickelt, um lokal erstellte Netzwerkpakete zu ändern und wird aktiviert, bevor sie gesendet werden.
  • POSTROUTING: Erstellt, um Pakete zu ändern, bevor sie global versendet werden.

Regeln für MangrovenbretterDie eingebauten Ketten für den Mangroventisch sind:

  • INPUT: Entwickelt, um die für den Haupthost bestimmten Netzwerkpakete zu ändern.
  • AUSGABE: Erstellt, um lokal erstellte Netzwerkpakete zu ändern und funktioniert, bevor sie gesendet werden.
  • FORWARD: Ändert die Pakete, die durch den Haupthost geroutet wurden.
  • PREROUTING: Ihre Aufgabe besteht darin, eingehende Pakete zu modifizieren, bevor sie weitergeleitet werden.
  • POSTROUTING: Ändert Netzwerkpakete, bevor der Sendevorgang stattfindet.

Jedes vom Linux-Betriebssystem empfangene oder gesendete Netzwerkpaket ist immer an mindestens eine Tabelle gebunden. Lassen Sie uns nun einige der nützlicheren Befehle verstehen, die wir mit iptables verwenden können.

2. Den Firewall-Status anzeigen

Schritt 1
Um den aktuellen Zustand der Firewall zu erfahren, führen wir die folgende Zeile aus:

 sudo iptables -L -n -v 

VERGRÖSSERN

Schritt 2
Dort können wir jede Kette mit ihren jeweiligen Ebenen der verwalteten Pakete validieren. Die in diesem Befehl verwendeten Parameter sind:

-LZeigen Sie die Listenregeln an.

-vGeneriert detaillierte Informationen wie Schnittstellenname plus Regeloptionen plus Paket- und Bytezähler werden ebenfalls aufgelistet, mit Suffix 'K', 'M' oder 'G' für Optionen von 1000, 1.000.000 bzw. 1.000.000.000 .

-nZeigt die IP-Adresse und den Port im numerischen Format an.

Schritt 3
Wenn Sie möchten, sehen Sie sich dieses Ergebnis mit der Anzahl der Zeilen an, wir können Folgendes ausführen:

 iptables -n -L -v --line-numbers 

VERGRÖSSERN

3. Stoppen, starten oder starten Sie iptables unter Linux

Schritt 1
Die wichtigsten Befehle zum Verwalten von iptables-Aufgaben auf der Start- oder Stoppebene sind:

 service iptables stop service iptables start service iptables neustart
Schritt 2
Es wird auch möglich sein, den Befehl iptables zu verwenden, um die Firewall zu stoppen und alle Regeln wie folgt zu beseitigen:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Schritt 3
Die definierten Parameter sind:

-FEntfernen Sie alle Regeln.

-XLöschen Sie eine Zeichenfolge.

-Ttable_name: Wählen Sie die Tabelle (mit dem Namen nat oder mangle) aus und löschen oder verwerfen Sie die Regeln.

-PLegen Sie die Standardrichtlinie wie DROP, REJECT oder ACCEPT fest.

4. Neue Firewall-Regeln in Linux hinzufügen

Schritt 1
Eine der praktischsten Aufgaben von iptables besteht darin, bestimmte Regeln für die korrekte Verwaltung der Pakete zu erstellen, um eine oder mehrere Regeln in die ausgewählte Kette einzufügen, verwenden wir die folgende Syntax, bei der die Zeilennummern zuerst entdeckt werden müssen:

 iptables -L INPUT -n --line-numbers 
Schritt 2
Fügen wir beispielsweise die folgende Regel hinzu:
 iptables -I EINGANG 2 -s 192.168.0.50 -j DROP 
Schritt 3
Später werden wir die Regeln sehen, die den obigen Befehl verwenden. Dort sehen wir, dass die erstellte Regel wie angegeben in Zeile 3 hinzugefügt wurde.

VERGRÖSSERN

5. Löschen einer Firewallregel unter Linux

Schritt 1
Zunächst müssen wir die erstellten Regeln anzeigen, um genau zu bestimmen, welche eliminiert werden sollen. Um diese Informationen zu erhalten, haben wir folgende Möglichkeiten:

 iptables -L INPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers iptables -L OUTPUT -n --line-numbers | weniger
Schritt 2
Um nun die zuvor erstellte Regel 3 zu löschen, führen wir Folgendes aus:
 iptables -D EINGANG 3 

VERGRÖSSERN

6. Speichern und Wiederherstellen von iptables-Regeln unter Linux

Schritt 1
Jedes Mal, wenn wir eine Änderung in den iptables-Regeln vornehmen, müssen wir diese Änderungen speichern. Dazu reicht es aus, die folgende Zeile auszuführen:

 Dienst iptables weiß 
Schritt 2
Wir können diese Regeln, die wir gespeichert haben, einfach wiederherstellen, indem wir Folgendes ausführen:
 Dienst iptables neu starten 

7. Standardregeln in Linux festlegen


Mit iptables wird es möglich sein, die Standardregeln, die auf das gesamte System angewendet werden müssen, auf folgende Weise zuzulassen oder zu verweigern.

Schritt 1
Um den gesamten Datenverkehr zu eliminieren, führen wir Folgendes aus:

 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Schritt 2
So entfernen Sie den gesamten eingehenden Datenverkehr:
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m Status - NEU, ETABLISHED -j ACCEPT

VERGRÖSSERN

8. Blockieren Sie eine IP-Adresse in Linux

Mit iptables wird es möglich sein, eine bestimmte IP-Adresse zu blockieren, um zu verhindern, dass sie über Netzwerkpakete auf das System zugreifen kann. Für diese Aufgabe haben wir folgende Möglichkeiten:

 iptables -A INPUT -s 192.168.0.14 -j DROP (Spezifische IP) iptables -A INPUT -s 192.168.0.0/24 -j DROP (Adressbereich)

9. Eingehende Portanfragen unter Linux blockieren

Schritt 1
Eine weitere typische Sicherheitsaufgabe besteht darin, den Paketzugriff über einen bestimmten Port einzuschränken, mit iptables haben wir die folgenden Optionen:

Alle Aktionen blockierenBlockieren Sie alle Aktionen für einen bestimmten Port, indem Sie Folgendes ausführen:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Einen Port blockierenBlockieren Sie einen Port für eine bestimmte IP-Adresse:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Ausgehende IP-Adresse blockieren
Es ist möglich, ausgehenden Datenverkehr zu einem bestimmten Host oder einer bestimmten Domain zu blockieren, zum Beispiel Solvetic.com, dafür führen wir Folgendes aus:

 hosten -t aufsolvtic.com 

VERGRÖSSERN

Schritt 2
Mit dieser IP-Adresse fahren wir nun mit dem Blockieren fort:

 iptables -A AUSGABE -d 178.33.118.246 -j DROP 
Schritt 3
Es wird auch möglich sein, die gesamte Domain wie folgt zu blockieren:
 iptables -A AUSGABE -p tcp -d www.solvetic.com -j DROP 

10. Ob Netzwerkverkehr unter Verwendung der MAC-Adresse in Linux zugelassen werden soll oder nicht

Eine andere Möglichkeit besteht darin, die Verwendung von Paketen basierend auf der MAC-Adresse des ausgewählten Geräts einzuschränken oder zuzulassen. Dazu verwenden wir eine der folgenden Möglichkeiten:

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (Datenverkehr von der ausgewählten MAC-Adresse verweigern) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Unterstützt Pakete von der Adresse, die nur von Port 22 angegeben wird)

11. ICMP-Anfragen unter Linux blockieren oder zulassen


Das ICMP-Protokoll (Internet Control Message Protocol) ist ein Protokoll, das entwickelt wurde, um Informationen zu Fehlern in lokalen Netzwerkcomputern zu verwalten, sodass mit diesem Protokoll Remote-Anfragen zur Überprüfung der Verfügbarkeit eines Teams gestellt werden können, was in Bezug auf die Sicherheit heikel sein kann .

Schritt 1
Wir können die folgenden Zeilen ausführen, um ICMP-Anfragen unter Linux zu vermeiden:

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Schritt 2
Die Ping-Antworten können auch auf bestimmte Netzwerke oder Hosts wie folgt beschränkt werden:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j ACCEPT 
Schritt 3
Wir können nur eine begrenzte Art von ICMP-Anfragen wie diese annehmen:
 iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -A INPUT -p icmp --icmp-type time- überschritten -j AKZEPTIEREN

12. Öffnen Sie eine Reihe von Ports und IP-Adressen in Linux

Schritt 1
Dies ist nützlich, wenn wir einen definierten Bereich von Ports aktivieren müssen, um Verwaltungs- oder Programmausführungsaktionen auszuführen:

 iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000: 9020 -j ACCEPT 
Daher haben wir den Bereich der Ports 9000 bis 9020 für TCP-Verbindungen geöffnet.

Schritt 2
Eine andere Alternative besteht darin, einen Bereich von IP-Adressen zu aktivieren, indem Sie einen bestimmten Port wie diesen festlegen. Dort haben wir diesen Bereich autorisiert, Port 80 zu verwenden.

 iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.0.70-192.168.0.80 -j ACCEPT 

13. Beschränken Sie die Anzahl der parallelen Verbindungen zu einem Server durch die Client-IP unter Linux

Schritt 1
Wir können das connlimit-Modul verwenden, um diese Einschränkungen zu definieren, zum Beispiel um 5 ssh-Verbindungen pro Client zuzulassen, geben wir Folgendes ein:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT 

VERGRÖSSERN

Schritt 2
So beschränken Sie den HTTP-Zugriff auf 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 
Schritt 3
Wir haben folgendes angegeben:
  • --connlimit-above 5: Stimmt überein, wenn die Anzahl der bestehenden Verbindungen größer als 5 ist.
  • --connlimit-mask 24: Dies sind die Gruppenhosts, die die Präfixlänge verwenden. Für IPv4 muss es eine Zahl zwischen (einschließlich) 0 und 32 sein.

14. Beschränken Sie die Anzahl der parallelen Verbindungen zu einem Server durch die Client-IP unter Linux

Schritt 1
NAT (Network Address Translation) ist ein System zur Übersetzung von Netzwerkadressen und damit zur Erleichterung der Navigation. Um diese aufzulisten, führen wir Folgendes aus:

 iptables -t nat -L -n -v 

VERGRÖSSERN

Schritt 2
Es wird möglich sein, dieses Ergebnis mit den entsprechenden Zeilen wie folgt zu sehen:

 iptables -t nat -v -L -n --line-number 

15. Klare NAT-Regeln unter Linux


Schritt 1
Wenn wir die etablierten NAT-Regeln löschen möchten, führen wir Folgendes aus:
 iptables -t nat -v -L -n --line-number iptables -t nat -v -L PREROUTING -n --line-number iptables -t nat -v -L POSTROUTING -n --line-number
Schritt 2
Um alle "PREROUTING"-Regeln zu löschen, führen wir die folgende Syntax aus:
 iptables -t nat -D PREROUTING {Regelnummer} 
Schritt 3
Um alle "POSROUTING"-Regeln zu löschen, führen wir aus:
 iptables -t nat -D POSTROUTING {Regelnummer} 

16. Paketzähler unter Linux zurücksetzen


Zuerst müssen wir den Befehl "iptables -L -n -v" ausführen, den wir zuvor gesehen haben, um die Zähler aufzulisten.

Schritt 1
Um diese Zähler zu löschen, führen Sie einfach Folgendes aus:

 iptables -Z 
Schritt 2
Um die Nur-Zugriff-Zähler zurückzusetzen, führen wir Folgendes aus:
 iptables -Z INPUT 

17. Überprüfen Sie die Firewall unter Linux

Schritt 1
Zunächst müssen wir mit dem folgenden Befehl überprüfen, ob die Ports geöffnet sind oder nicht:

 netstat -tulpn 

VERGRÖSSERN

Schritt 2
Um einen bestimmten Port zu validieren, führen wir Folgendes aus:

 netstat -tulpn | grep: 80 

VERGRÖSSERN

Schritt 3
Falls der Port nicht geöffnet ist, führen wir aus:

 Dienst httpd starten 
Schritt 4
Dann müssen wir sicherstellen, dass iptables über diesen Port Zugriff hat:
 iptables -L EINGABE -v -n | grep 80 

18. Loop-Zugriff mit iptables unter Linux zulassen

Der Loopback-Zugriff, dessen Zugriff von IP 127.0.0.1 erfolgt, ist wichtig und sollte für Administrations- und Netzwerkmanagementaufgaben immer aktiviert bleiben. Um es in iptables zu aktivieren, führen Sie einfach Folgendes aus.

 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT

19. Definieren Sie neue iptables-Strings unter Linux


Schritt 1
Mit iptables haben wir die Möglichkeit, unsere eigene Kette zu definieren und benutzerdefinierte Regeln darin zu speichern. Um eine Kette zu definieren, führen wir Folgendes aus:
 iptables -N "Stringname" 
Schritt 2
Dann führen wir "iptables -L" aus, um die iptables-Strings aufzulisten:

VERGRÖSSERN

Schritt 3
Im Ergebnis sehen wir unsere erstellte Kette:

VERGRÖSSERN

20. Löschen Sie iptables-Firewallketten oder -Regeln unter Linux

Um diese Löschung durchzuführen, müssen wir Folgendes ausführen:

 iptables -F 
Wie wir sehen, ist iptables eine umfassende Lösung, um verschiedene Sicherheitsaspekte in Linux-Distributionen zentral zu verwalten, um Verbesserungen in Bezug auf den Datenschutz zu erzielen.

wave wave wave wave wave