Sicherheit muss immer einer der Bereiche sein, in denen Administratoren, Verwaltungs- und Supportmitarbeiter und im Allgemeinen alle Benutzer eines aktuellen Betriebssystems aufgrund der zahlreichen Bedrohungen im Netzwerk arbeiten müssen.
Bei Linux-Distributionen verfügen die meisten von ihnen über die fortschrittlichen Tools zum Anwenden eines Filters auf die Netzwerkpakete auf der Ebene der Netzwerkpaket- Steuerungsverarbeitung bei der Eingabe, Verschiebung, Steuerung und Ausgabe des Stapels. netzwerke innerhalb des kerns des systems verwendet, wurden ab kernel 2.4 iptables eingeführt, die auch netfilter genannt werden und ein höheres niveau an sicherheit und praktische funktionen für den systemschutz aufweisen.
iptables ist für die Verwaltung der IPv4-Filterung verantwortlich, während ip6tables die IPv6- Filterung in aktuellen Netzwerken übernimmt .
TechnoWikis analysiert die Funktionsweise von iptables und einige der praktischsten Befehle, die wir daraus ableiten können.
1. Paketfilterung unter Linux
Der Kernel der Linux-Distributionen verwendet das Netfilter-Tool, um die Pakete zu filtern und damit die Aufgaben auszuführen, von denen sie empfangen oder gestoppt werden.
- filter: Bezieht sich auf die Standardtabelle für die Verwaltung der Pakete.
- nat: Sie dient dazu, Pakete zu ändern, die in einer neuen Verbindung erstellt wurden und hauptsächlich von NAT verwendet werden.
- mangle: Diese Option wird verwendet, wenn bestimmte Netzwerkpakete geändert werden müssen.
Jetzt hat jede Tabelle eine Gruppe von eingebauten Ketten, die sich auf die Aktionen beziehen, die von netfilter ausgeführt werden können. Dies sind:
- EINGABE: Dies bezieht sich auf die Pakete, die an den Host gesendet wurden.
- AUSGABE: Dies funktioniert bei Netzwerkpaketen, die lokal generiert wurden.
- FORWARD: Ordnet die Pakete zu, die über den Haupthost weitergeleitet wurden.
- PREROUTING: Es dient dazu, Netzwerkpakete zu ändern, sobald sie ankommen.
- AUSGABE: Es wurde entwickelt, um die lokal erstellten Netzwerkpakete zu ändern, und es wird aktiviert, bevor sie gesendet werden.
- POSTROUTING: Erstellt, um Pakete zu ändern, bevor sie global gesendet werden.
- EINGABE: Zum Ändern der für den Haupthost bestimmten Netzwerkpakete.
- AUSGABE: Erstellt, um lokal erstellte Netzwerkpakete zu ändern und funktioniert, bevor sie gesendet werden.
- FORWARD: Ändert die Pakete, die über den Haupthost weitergeleitet wurden.
- PREROUTING: Ihre Aufgabe ist es, die Pakete zu ändern, die eingehen, bevor sie weitergeleitet werden.
- POSTROUTING: Ändert die Netzwerkpakete, bevor der Sendevorgang ausgeführt wird.
Jedes vom Linux-Betriebssystem empfangene oder gesendete Netzwerkpaket unterliegt immer mindestens einer Tabelle. Lassen Sie uns nun einige der nützlichsten Befehle verstehen, die wir mit iptables verwenden können.
2. Stellen Sie den Firewall-Status bereit
Um den aktuellen Status der Firewall zu ermitteln, führen wir die folgende Zeile aus:
sudo iptables -L -n -v
Dort können wir jede Kette mit ihren jeweiligen Ebenen von verwalteten Paketen validieren. Die in diesem Befehl verwendeten Parameter sind:
Wenn Sie dieses Ergebnis mit der Anzahl der Zeilen sehen möchten, können wir Folgendes ausführen:
iptables -n -L -v --Zeilennummern
3. Stoppen, starten oder starten Sie iptables unter Linux neu
Die wichtigsten Befehle zum Verwalten der Aufgaben von iptables auf Boot- oder Stop-Ebene sind:
Service Iptables zu stoppen Service Iptables starten Service Iptables Neustart
Es ist auch möglich, den Befehl iptables zu verwenden, um die Firewall zu stoppen und alle Regeln wie folgt zu entfernen:
iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P EINGABE AKZEPTIEREN iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
Die definierten Parameter sind:
4. Fügen Sie unter Linux neue Firewall-Regeln hinzu
Eine der praktischsten Aufgaben von iptables besteht darin, bestimmte Regeln für die korrekte Verwaltung von Paketen zu erstellen. Um eine oder mehrere Regeln in die ausgewählte Kette einzufügen, verwenden wir die folgende Syntax, in der Sie zuerst die Zeilennummern ermitteln müssen:
iptables -L INPUT -n --Zeilennummern
Fügen wir beispielsweise die folgende Regel hinzu:
iptables -I INPUT 2 -s 192.168.0.50 -j DROP
Dann werden die Regeln mit dem oben angegebenen Befehl angezeigt. Dort sehen wir, dass die erstellte Regel in Zeile 3 wie angegeben hinzugefügt wurde.
5. Entfernen Sie eine Firewall-Regel unter Linux
Zuerst müssen wir die Regeln implementieren, die erstellt werden, um genau zu bestimmen, welche entfernt werden sollen. Um diese Informationen zu erhalten, haben wir die folgenden Optionen:
iptables -L INPUT -n --Zeilennummern iptables -L OUTPUT -n --Zeilennummern iptables -L OUTPUT -n --Zeilennummern | weniger
Um nun die zuvor erstellte Regel 3 zu löschen, führen wir Folgendes aus:
iptables -D INPUT 3
6. Speichern und Wiederherstellen von iptables-Regeln unter Linux
Jedes Mal, wenn wir die Regeln von iptables ändern, müssen wir fortfahren, um diese Änderungen zu speichern, da es ausreicht, die folgende Zeile auszuführen:
Service Iptables weiß
Wir können die gespeicherten Regeln einfach wiederherstellen, indem wir Folgendes ausführen:
Service Iptables Neustart
7. Legen Sie die Standardregeln in Linux fest
Mit iptables können Sie die Standardregeln, die auf das gesamte System angewendet werden müssen, auf folgende Weise zulassen oder ablehnen.
Um den gesamten Datenverkehr zu eliminieren, führen wir Folgendes aus:
iptables -P EINGABETROPFEN iptables -P OUTPUT DROP iptables -P FORWARD DROP
So eliminieren Sie den gesamten eingehenden Datenverkehr:
iptables -P EINGABETROPFEN iptables -P FORWARD DROP iptables -P OUTPUT ACCEPT iptables -A INPUT -m state - NEUES, EINGESETZTES -j ACCEPT
8. Blockieren Sie eine IP-Adresse in Linux
Mit iptables ist es möglich, eine bestimmte IP-Adresse zu blockieren, um den Zugriff auf Netzwerkpakete zum System zu verhindern. 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. Blockieren Sie eingehende Portanforderungen unter Linux
Eine weitere typische Sicherheitsaufgabe besteht darin, den Zugriff auf Pakete über einen bestimmten Port zu beschränken. Bei iptables haben wir die folgenden Optionen:
iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP
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
host -ta solvetic.com
Mit dieser IP-Adresse blockieren wir nun:
iptables -A OUTPUT -d 178.33.118.246 -j DROP
Es ist auch möglich, die gesamte Domain wie folgt zu blockieren:
iptables -A OUTPUT -p tcp -d www.solvetic.com -j DROP
10. Zulassen oder Nichtzulassen von Netzwerkverkehr mithilfe der MAC-Adresse unter Linux
Eine andere Möglichkeit besteht darin, die Verwendung von Paketen basierend auf der MAC-Adresse des ausgewählten Geräts einzuschränken oder zuzulassen. Hierzu verwenden wir eine der folgenden Optionen:
iptables -A INPUT -m Mac - Mac-Quelle 00: 2F: EF: 85: 04: 09 -j DROP (Datenverkehr der ausgewählten MAC-Adresse wird verweigert.) iptables -A INPUT -p tcp --bestimmungsort-port 22 -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACCEPT (Unterstützt die Pakete der Adresse, die nur von Port 22 angegeben werden)
11. Blockieren oder Zulassen von ICMP-Anforderungen unter Linux
Das ICMP-Protokoll (Internet Control Message Protocol) ist ein Protokoll, das zur Verwaltung von Informationen im Zusammenhang mit Fehlern in lokalen Netzwerkgeräten entwickelt wurde. Mit diesem Protokoll können Remoteanfragen gestellt werden, um die Verfügbarkeit zu überprüfen. eines Teams und dies in Bezug auf die Sicherheit kann heikel sein.
Wir können die folgenden Zeilen ausführen, um ICMP-Anfragen unter Linux zu vermeiden:
iptables -INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type Echoanforderung -j DROP
Wir können die Ping-Antworten auch auf bestimmte Netzwerke oder Hosts wie folgt beschränken:
iptables-INPUT -s 192.168.0.1/24 -p icmp - Echoanforderung vom Typ icmp -j ACCEPT
Wir können nur eine begrenzte Art von ICMP-Anfragen wie diese annehmen:
iptables -AINPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -INPUT -p icmp --icmp-type Zeitüberschreitung -j ACCEPT
12. Öffnen Sie unter Linux eine Reihe von Ports und IP-Adressen
Dies ist nützlich, wenn wir einen definierten Bereich von Ports aktivieren müssen, um administrative oder Programmausführungsaktionen auszuführen:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000: 9020 -j ACCEPT
Damit haben wir den Bereich der Ports 9000 bis 9020 für TCP-Verbindungen geöffnet.
Eine andere Alternative besteht darin, einen Bereich von IP-Adressen zu aktivieren, indem auch ein bestimmter Port eingerichtet wird. Dort haben wir diesen Bereich für die Verwendung von Port 80 freigegeben.
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 pro Client-IP in Linux
Wir können das connlimit-Modul verwenden, um diese Einschränkungen zu definieren. Um beispielsweise 5 ssh-Verbindungen pro Client zuzulassen, geben wir Folgendes ein:
iptables -AnPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJECT
So beschränken Sie den Zugriff auf HTTP um 10:
iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP
Wir haben Folgendes angegeben:
- –connlimit-above 5: Übereinstimmung, wenn die Anzahl der vorhandenen 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 (eingeschlossen) 0 und 32 sein.
14. Beschränken Sie die Anzahl der parallelen Verbindungen zu einem Server pro Client-IP in Linux
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
Es ist möglich, dieses Ergebnis mit den entsprechenden Zeilen wie folgt zu sehen:
iptables -t nat -v -L -n --Zeilennummer
15. Löschen Sie die NAT-Regeln unter Linux
Wenn wir die festgelegten NAT-Regeln löschen möchten, führen wir Folgendes aus:
iptables -t nat -v -L -n --Zeilennummer iptables -t nat -v -L PREROUTING -n --Zeilennummer iptables -t nat -v -L POSTROUTING -n --Zeilennummer
Um alle Regeln von “PREROUTING” zu löschen, führen wir die folgende Syntax aus:
iptables -t nat -D PREROUTING {Regelnummer}
Um alle Regeln von “POSTROUTING” zu löschen, führen wir Folgendes aus:
iptables -t nat -D POSTROUTING {Regelnummer}
16. Setzen Sie die Paketzähler unter Linux zurück
Zuerst müssen wir den Befehl “iptables -L -n -v” ausführen, den wir bereits gesehen haben, um die Zähler aufzulisten.
Um diese Zähler zu löschen, führen Sie einfach Folgendes aus:
iptables -Z
Um die Zugriffszähler zurückzusetzen, führen wir Folgendes aus:
iptables -Z INPUT
17. Überprüfen Sie die Firewall unter Linux
Zuerst müssen wir mit dem folgenden Befehl überprüfen, ob die Ports geöffnet sind oder nicht:
netstat -tulpn
Um einen bestimmten Port zu validieren, führen wir Folgendes aus:
netstat -tulpn | grep: 80
Falls der Port nicht offen ist, führen wir aus:
Service httpd starten
Dann müssen wir sicherstellen, dass iptables Zugriff auf diesen Port hat:
iptables -L EINGABE -v -n | grep 80
18. Ermöglichen Sie den Schleifenzugriff mit iptables unter Linux
Der Loopback-Zugriff von IP 127.0.0.1 ist wichtig und sollte für Netzwerkadministrations- und Verwaltungsaufgaben 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-Ketten in Linux
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 "Kettenname"
Dann führen wir “iptables -L” aus, um die iptables-Zeichenfolgen aufzulisten:
Im Ergebnis sehen wir unsere erstellte Kette:
20. Löschen Sie iptables Firewall-Regeln oder -Strings unter Linux
Um diese Löschung durchzuführen, müssen wir Folgendes ausführen:
iptables -F
Wie wir sehen können, ist iptables eine integrale Lösung für die zentrale Verwaltung verschiedener Sicherheitsaspekte in Linux-Distributionen, um Verbesserungen in Bezug auf den Datenschutz zu erzielen.