Einer der Hauptgründe für die immense Popularität von Linux ist seine schiere Netzwerkfähigkeit. Linux wird aufgrund seiner robusten Netzwerkfähigkeiten von den meisten Unternehmensservern weltweit betrieben. Es gibt Systemadministratoren die Möglichkeit, ihr Netzwerk nach Belieben zu steuern. Linux iptables ist ein solches Dienstprogramm, das Systemadministratoren alles bietet, was sie brauchen, um moderne Netzwerke effektiv zu verwalten. Es ist ein User-Space-Programm, das es Benutzern ermöglicht, ihre Kernel-Firewall-Tabelle zu konfigurieren und die darin enthaltenen Ketten und Regeln mit einfachen iptables-Regeln zu verwalten.
50 produktive IPtables-Firewallregeln
Die Leute denken oft über iptables-Firewall-Regeln nach, aber in der Praxis sind sie ziemlich einfach, sobald Sie loslegen. Grundlegende Kenntnisse des Dienstprogramms iptables und seines Zwecks erleichtern die Beherrschung der Firewall. Wir haben diesen Leitfaden sorgfältig kuratiert und die Inhalte entsprechend gegliedert. Fangen Sie an, Ihre Netzwerkfähigkeiten zu verbessern, indem Sie diese iptables-Regeln üben, um einen besseren Überblick über das Thema zu erhalten.
Grundlage und Struktur der Linux-IPtables-Regeln
Der Linux-Kernel enthält ein Framework namens Netfilter für Netzwerkzwecke. Es ist einfach ein Stapel von Kernel-Routinen, die unserem System die Barebone-Netzwerkfähigkeiten verleihen. Das Framework ist ziemlich niedrig und daher für alltägliche Benutzer nicht machbar. Bang, hier kommt iptables.
Es ist ein User-Space-Programm mit einer übersichtlichen Befehlszeilenschnittstelle, die es Benutzern ermöglicht, die rohe Leistung von Netfilter auf prägnante und gut organisierte Weise zu nutzen. Es kann Pakete, Einheiten der Netzwerkkommunikation, die von unseren Systemen verwendet werden, untersuchen, modifizieren, umleiten oder verwerfen.
Iptables fungieren als Firewall, indem sie eingehende Netzwerkpakete von feindlichen Systemen blockieren. Es kann jedoch alle Arten von Netzwerkmagie ausführen, die Sie möchten. Woraus bestehen nun iptables? Unter der Haube enthält es nur einige Tabellen, Ketten und Regeln.
Eingehender Einblick in die IPtables-Komponenten
Iptables besteht aus fünf Tabellen, jede für spezialisierte Netzwerkjobs. Sie enthalten Ketten und Regeln. Die Standardtabelle ist filter; andere sind roh , nat. , mangel und Sicherheit . Die Ketten sind einfache Listen von Regeln. Filter hat drei eingebaute Ketten; EINGABE , AUSGABE und WEITER . Die nat-Tabelle hat zwei zusätzliche Ketten namens PREROUTING und POSTROUTING .
Die Filterung des Netzwerkverkehrs erfolgt über die Regeln. Sie können so angegeben werden, dass sie mehrere Übereinstimmungen und bestimmte Ziele haben. Ziele werden mit dem j aktiviert Option, kurz für –Jump . Sie können eine benutzerdefinierte Kette, ein eingebautes Ziel oder eine Erweiterung sein. Die integrierten Ziele von Iptables sind ACCEPT , LÖSCHEN , WARTESCHLANGE , und ZURÜCK .
- -Die Richtlinienkette bestimmt das Verhalten der Standardkette. Sie bestimmen, was mit Paketen zu tun ist, die mit keinen iptables-Regeln in Ihren Tabellen übereinstimmen. Sie lernen ihre Funktionsweise kennen, indem Sie einige Befehle ausprobieren, die wir Ihnen beibringen. Machen Sie sich also bereit und starten Sie Ihr Terminal für eine Netzwerkbedrohung.
Grundlegende IPtables-Regeln für Linux
Das Verständnis der grundlegenden iptables-Befehle hilft Ihnen, das Tool langfristig zu beherrschen. Im Folgenden diskutieren wir einige sehr grundlegende, aber entscheidende Befehle, die Ihre Produktivität als Linux-Systemadministrator auf ein ganz neues Niveau bringen werden.
1. Überprüfen Sie das Standardverhalten der Richtlinienkette
$ sudo iptables -L | grep policy
Der obige Befehl druckt das Standardverhalten der Richtlinienkette Ihres Systems aus. In meinem Ubuntu 19.08-System besteht die Standardrichtlinie darin, Pakete für alle drei integrierten Ketten der Filtertabelle zu akzeptieren. Es sollte für Ihr System dasselbe sein, vorausgesetzt, Sie haben sie nicht zuvor geändert.
2. Überprüfen Sie die aktuellen Regeln
$ sudo iptables -L
Sie können die aktuelle iptables-Konfiguration Ihres Systems überprüfen, indem Sie iptables mit dem -L aufrufen Möglichkeit. Es sollte eine schön formatierte Liste Ihrer Regeln zusammen mit Informationen zu ihrer Richtlinie, ihrem Ziel, ihrer Quelle und ihrem Ziel anzeigen.
3. Regeln nach Spezifikation auflisten
$ sudo iptables -S
Das -S Die mit dem Befehl iptables hinzugefügte Option zeigt eine Liste aller Ihrer Regeln basierend auf ihrer Spezifikation an. Meine Shell zeigt mir an, dass sie alle Pakete für die Chains INPUT, OUTPUT und FORWARD akzeptiert.
4. Überprüfen Sie Ihren Iptables-Status
$ sudo iptables -L -v
Der obige Befehl zeigt Ihnen den aktuellen Status Ihrer iptables. Es wird aufgelistet, wie viele Pakete Ihr System bisher akzeptiert und gesendet hat. Beachten Sie die FORWARD-Kette. Es sollten nur Nullen sein, es sei denn, Sie haben Ihre Firewall-Einstellungen zuvor geändert.
5. Setzen Sie Ihre Iptables-Regeln zurück
$ sudo iptables -F
Es könnte eine Zeit kommen, in der Sie Ihre iptables-Konfiguration verstümmelt und das Netzwerk Ihres Systems vollständig durcheinander gebracht haben. Dies kann passieren, wenn Sie neue Regeln ausprobieren und einige Änderungen nicht rückgängig machen können. Sie können sich jedoch entspannen, da dieser Befehl Ihnen in solchen Situationen zu Hilfe kommt.
6. Geänderte Iptables speichern
$ sudo service iptables save
Die Änderungen an iptables sind vorübergehend, was bedeutet, dass sie automatisch zurückgesetzt werden, wenn der Daemon neu gestartet wird. Möglicherweise möchten Sie Ihre iptables speichern, nachdem Sie einige Regeln für die zukünftige Verwendung geändert haben. Der obige Befehl erledigt dies und stellt sicher, dass iptables beim nächsten Booten mit der neuen Konfiguration geladen wird.
7. Leeren Sie Iptables und behalten Sie Änderungen bei
$ sudo iptables -F && sudo /sbin/iptables-save
Sie müssen den obigen Befehl verwenden, um Ihre iptables zu leeren und die Änderungen dauerhaft zu machen. Der letzte Teil des Befehls (nach &&) erledigt die gleiche Aufgabe wie Befehl Nummer sechs. Sie können also austauschbar verwendet werden.
Verwaltung von Linux-IP-Tabellen
Iptables bietet robuste Verwaltungsbefehle, die die Verwaltung dieses Netzwerkdienstprogramms ziemlich einfach machen. Diese Befehle neigen jedoch dazu, von System zu System zu variieren. Glücklicherweise sind die Änderungen subtil und selbst für neue Linux-Benutzer leicht verständlich.
8. Starten der Iptables-Firewall
$ sudo systemctl start iptables
Sie können den obigen Befehl verwenden, um den iptables-Dienst in Systemen zu starten, die systemd verwenden, einschließlich Fedora, OpenSUSE und Ubuntu.
$ sudo /etc/init.d/iptables start
Systeme, die stattdessen sysvinit verwenden, benötigen für diesen Job die obige Variante. Personen, die MX Linux, Slackware oder Puppy Linux verwenden, müssen diese Version verwenden, um iptables auf ihrem System zu starten.
9. Anhalten der Iptables-Firewall
$ sudo systemctl stop iptables
Dieser Befehl stoppt den iptables-Daemon, der in Systemen läuft, die systemd verwenden.
$ sudo /etc/init.d/iptables stop
Das Gleiche gilt für Systeme, auf denen sysvinit läuft.
10. Neustart der Iptables-Firewall
$ sudo systemctl restart iptables
Sie können den obigen Befehl verwenden, um den iptables-Dienst auf Ihrem Ubuntu-Rechner neu zu starten.
$ sudo /etc/init.d/iptables restart
Versuchen Sie bei Systemen, die sysvinit verwenden, stattdessen den obigen Befehl. Beachten Sie die Ähnlichkeit der Muster zwischen den drei obigen Befehlen.
11. Alle vorhandenen Regeln prüfen
$ sudo iptables -L -n -v
Dieser iptables-Befehl druckt alle bestehenden iptables-Firewall-Regeln, die Sie bis zu diesem Moment eingerichtet haben. Da dieser Befehl viele Informationen anzeigt, wäre es eine gute Idee, grep zu verwenden, um bestimmte Regeln zu finden.
12. Vorhandene Regeln für bestimmte Tabellen prüfen
Der obige Befehl zeigt Informationen über die Standardtabelle an, die filter ist. Wenn Sie Informationen über eine andere Tabelle finden möchten, sagen wir die NAT-Tabelle, verwenden Sie stattdessen den folgenden Befehl.
$ sudo iptables -t nat -L -v -n
Beachten Sie, wie das -t Option wird hier verwendet, um den Tabellennamen für iptables anzugeben.
13. Regeln nur für TCP-Ketten auflisten
$ sudo iptables -S TCP
Dieser Befehl zeigt nur Informationen über die TCP-Kette an. Dies ist praktisch, wenn Sie Ausgaben nur für eingehende TCP-Anfragen wünschen.
14. Regeln nur für UDP-Ketten auflisten
$ sudo iptables -S UDP
UDP-Anforderungen machen in vielen Systemen auch eine beträchtliche Menge an Datenverkehr aus. Wenn Sie unerwünschten UDP-Verkehr blockieren möchten, können Sie diesen Befehl verwenden, um diese Anfragen zu untersuchen.
Linux IPtables Firewall-Regeln
Eine der Hauptverwendungen von iptables in Linux ist die Einrichtung von Netzwerk-Firewalls. Es kann verwendet werden, um unerwünschte eingehende Anfragen basierend auf vielen verschiedenen Kriterien zu blockieren, einschließlich bestimmter IP-Adressen, IP-Bereiche, MAC-Adressen und so weiter. Nachfolgend listen wir einige geeignete Beispiele für solche Befehle auf.
15. Alle eingehenden Anfragen blockieren
Der nächste Befehl blockiert jede eingehende Anfrage für Ihr System. Dieser Befehl hat Vorrang vor anderen Regeln in Ihren Tabellen, da er die erste Regel ist, die für jede Anfrage geprüft wird.
$ sudo iptables INPUT -j DROP
16. Eine bestimmte IP-Adresse blockieren
Oft werden Sie auffälliges Verkehrsverhalten von bestimmten IP-Adressen bemerken. Der angegebene Befehl ist in solchen Situationen praktisch und ermöglicht Systemadministratoren, diese IPs vollständig zu blockieren.
$ sudo iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
Dieser Befehl blockiert alle eingehenden Anfragen von der IP-Adressvariable. In iptables-Begriffen wird dies als „Verwerfen“ von Anfragen bezeichnet. Das -A Die Option wird verwendet, um diese Regel am Ende Ihrer INPUT-Kette anzuhängen, anstatt am Anfang.
17. Alle TCP-Anfragen von einer IP blockieren
Der folgende Befehl kann zum Blockieren aller eingehenden TCP-Anfragen von einer bestimmten IP-Adresse verwendet werden. Vergessen Sie nicht, die IP-Adressvariable durch eine vorhandene zu ersetzen.
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.xxx.xxx -j DROP
Das -p Flag wird hier verwendet, um nur TCP-Anforderungen auszuwählen. Das -j Option wird verwendet, um zu einer bestimmten Aktion zu „springen“.
18. Entsperren Sie eine IP-Adresse
Manchmal möchten Sie vielleicht eine zuvor blockierte IP-Adresse entsperren. Mit dem folgenden Befehl können Sie genau dies tun.
$ sudo iptables -D INPUT -s xxx.xxx.xxx.xxx -j DROP
Dieser Befehl löscht einfach die Regel, die die angegebene IP blockiert hat. Sie können auch –delete verwenden statt -D wenn Sie möchten.
19. IP-Adressbereiche blockieren
Systemadministratoren blockieren oft bestimmte IP-Bereiche aufgrund ihres andauernden verdächtigen Verhaltens. Mit dem folgenden Befehl können Sie alle eingehenden Anfragen aus dem IP-Bereich xxx.xxx.xxx.0/24 blockieren.
$ sudo iptables -A INPUT -s xxx.xxx.xxx.0/24 -j DROP
20. IP-Adressbereiche entsperren
Manchmal möchten Sie vielleicht einen IP-Bereich für eine Überprüfung sperren. Wenn p legitim ist, müssen Sie ihren Zugriff auf Ihr System erneut aktivieren. Verwenden Sie den folgenden Befehl, um einen bestimmten IP-Adressbereich von Ihrer iptables-Firewall zu entsperren.
$ sudo iptables -D INPUT -s xxx.xxx.xxx.0/24 -j DROP
21. Alle TCP-Anfragen für den gegebenen IP-Bereich blockieren
Böswillige Benutzer nutzen oft ihr riesiges Bot-Netzwerk, um legitime Server mit TCP-Anfragen zu überfluten. Sie können den folgenden Befehl verwenden, um alle TCP-Anfragen von einem bestimmten IP-Bereich zu blockieren, sagen wir xxx.xxx.xxx.0/24.
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.xxx.0/24 -j DROP
22. Alle TCP-Anfragen für gegebenen IP-Bereich entsperren
Sie können den folgenden Befehl verwenden, wenn Sie den gesamten TCP-Verkehr aus einem bestimmten IP-Bereich entsperren, sagen wir xxx.xxx.xxx.0/24. Dies ist praktisch, wenn Sie alle eingehenden TCP-Anfragen von einem IP-Adressbereich blockiert haben.
$ sudo iptables -D INPUT -p tcp -s xxx.xxx.xxx.0/24 -j DROP
23. TCP-Verbindungen auf bestimmten Ports blockieren
Die iptables-Regeln können verwendet werden, um alle ausgehenden TCP-Verbindungen auf einem bestimmten Port zu blockieren, sagen wir in diesem Fall 111.
$ sudo iptables -A OUTPUT -p tcp --dport 111 -j DROP
Sie können den Kettennamen durch INPUT ersetzen, um TCP-Verbindungen auf demselben Port zu blockieren, jedoch für eingehende Anfragen.
$ sudo iptables -A INPUT -p tcp --dport xxx -j DROP
24. TCP-Verbindungen auf Port 80 zulassen
Der nächste Befehl lässt eingehende TCP-Anfragen auf Port 80 Ihres Systems zu. Sysadmins weisen aus Gründen der Verwaltung häufig bestimmte Portnummern für verschiedene Verbindungen zu.
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.xxx.0/24 --dport 80 -j ACCEPT
25. TCP-Verbindungen auf Port 80 ablehnen
Der folgende iptables-Befehl lehnt jeden TCP-Verbindungsversuch an Port 80 ab. Alles, was Sie tun müssen, ist, DROP als Argument an -j zu übergeben .
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.xxx.0/24 --dport 80 -j DROP
Gleiches gilt auch für UDP-Verbindungen.
$ sudo iptables -A INPUT -p udp -s xxx.xxx.xxx.0/24 --dport 80 -j DROP
26. Eingehende SSH-Verbindungen auf Port 22 zulassen
Der folgende Befehl ist nützlich, wenn Sie alle eingehenden SSH-Verbindungen auf dem Standardport zulassen möchten. Sie müssen ssh als Argument an –dport übergeben Flag in Ihren iptables-Regeln.
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.xxx.0/24 --dport ssh -j ACCEPT
27. Eingehende SSH-Verbindungen blockieren
Verwenden Sie den folgenden Befehl, um jeden eingehenden SSH-Versuch zu blockieren. Dadurch wird jeder eingehende SSH-Versuch aus dem IP-Bereich xxx.xxx.xxx.0/24 blockiert.
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.xxx.0/24 --dport ssh -j DROP
28. Ausgehende SSH-Verbindungen zulassen
Sie müssen ausgehendes SSH aktiviert haben, wenn Sie eine sichere Remote-Kommunikation für Ihren Linux-Computer herstellen möchten. Mit dem nächsten Befehl können Sie genau dies tun.
$ sudo iptables -A OUTPUT -p tcp --dport ssh -j ACCEPT
Es erlaubt alle ausgehenden SSH-Verbindungen von Ihrem System über das Web.
29. Alle ausgehenden SSH-Verbindungen blockieren
Der nächste Befehl blockiert alle ausgehenden SSH-Versuche von Ihrem System zu jedem Netzwerk. Seien Sie vorsichtig, wenn Sie diesen Befehl aus der Ferne verwenden, da Sie dadurch auch vom System ausgeschlossen werden können.
$ sudo iptables -A INPUT -p tcp --dport ssh -j DROP
30. Festlegen von Zuständen beim Zulassen von eingehendem SSH
Systemadministratoren verwenden häufig SSH-Zustände, um festzustellen, ob die Remote-Verbindungen zur richtigen Entität gehören oder nicht. Weisen Sie zuerst den eingehenden SSH-Anforderungen mit dem folgenden Befehl Zustände zu. Das -i Flag wird verwendet, um auf die Schnittstelle zu verweisen, die in diesem Fall eth0 ist.
$ sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
31. Festlegen von Zuständen beim Zulassen von eingehendem SSH
Weisen Sie ausgehenden SSH-Anfragen Zustände zu, wie Sie es bei eingehenden Anfragen getan haben. Das -o flag wird hier verwendet, um auf die Schnittstelle zu verweisen, die in diesem Fall ebenfalls eth0 ist.
$ sudo iptables -A OUTPUT -o eth0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
32. Mehrere Ports für eingehende Anfragen zulassen
Linux-Firewall-iptables ermöglichen es Administratoren, mehr als einen Port gleichzeitig zu aktivieren, indem sie die Multiport-Option von iptables verwenden. Der folgende Befehl richtet eine Regel zum Akzeptieren aller eingehenden Anfragen an den Ports 22, 80 und 110 ein.
$ sudo iptables -A INPUT -p tcp -m multiport --dports 22,80,110 -j ACCEPT
33. Mehrere Ports für ausgehende Anfragen zulassen
Das Einrichten mehrerer Ports für ausgehende Verbindungen ist fast identisch mit dem obigen Befehl. Hier brauchen Sie nur die Option OUTPUT zu verwenden.
$ sudo iptables -A OUTPUT -p tcp -m multiport --sports 22,80,110 -j ACCEPT
34. IP-Bereiche auf bestimmtem Port zulassen
Manchmal erhalten Sie Netzwerkanfragen nur von einem bestimmten IP-Bereich, d. h. privaten Unternehmensnetzwerken. Der folgende Befehl lässt alle ausgehenden SSH-Anfragen des Bereichs xxx.xxx.xxx.0/24 auf dem Standard-SSH-Port zu.
$ sudo iptables -A OUTPUT -p tcp -d xxx.xxx.xxx.0/24 --dport 22 -j ACCEPT
35. IP-Bereiche auf bestimmten Ports blockieren
Häufig werden Sie auf kontinuierliche Netzwerkanfragen von böswilligen Bot-Benutzern stoßen. Sie umfassen normalerweise einen bestimmten IP-Bereich. Es ist einfach, diesen Datenverkehr mit dem folgenden Befehl zu blockieren.
$ sudo iptables -A INPUT -p tcp -s xxx.xxx.0.0/24 --dport 22 -j DROP
36. Facebook in den Iptables-Regeln blockieren
Oft blockieren viele Unternehmen Social-Media-Seiten wie Facebook während der Bürozeiten. Zu diesem Zweck können die folgenden Befehle verwendet werden. Finden Sie zuerst den Netzwerkbereich heraus, der von Facebook an Ihrem Standort verwendet wird.
$ sudo host facebook.come
Dies sollte ein Ergebnis zurückgeben, das aus der spezifischen IP besteht, die von Facebook verwendet wird, sagen wir in diesem Fall 157.240.7.35. Führen Sie nun den nächsten Befehl aus.
$ sudo whois 66.220.156.68 | grep CIDR
Es wird der IP-Bereich bereitgestellt, den Facebook für Ihren Standort verwendet, in diesem Fall beispielsweise 157.240.0.0/16. Jetzt können wir einfach alle ausgehenden Verbindungen zu diesem Netzwerk blockieren.
$ sudo iptables -A OUTPUT -p tcp -d 157.240.0.0/16 -j DROP
37. Netzwerkflut blockieren
Böswillige Benutzer greifen häufig auf Netzwerkflutung zurück, um Unternehmensserver zu kompromittieren. Sie können die eingehenden Anfragen pro Zeiteinheit begrenzen, um Ihr System vor solchen Angriffen zu schützen.
$ sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 50/minute --limit-burst 100 -j ACCEPT
Dieser Befehl begrenzt den eingehenden Datenverkehr auf Port 80 auf maximal 50 Verbindungen pro Minute und legt ein Burst-Limit von 100 fest.
38. Eingehende Ping-Anfragen blockieren
Ping-Anfragen werden verwendet, um festzustellen, ob ein Server aktiv ist oder nicht. Es kann auch wertvolle Erkenntnisse für potenzielle Hacker liefern. Sie können diese Anfragen blockieren, indem Sie den nächsten Befehl zu Ihrer Linux-Firewall iptables hinzufügen.
$ sudo iptables -A INPUT -pr icmp -i eth0 -j DROP
39. Verworfene Netzwerkpakete protokollieren
Möglicherweise möchten Sie die von Ihren iptables-Firewallregeln verworfenen Netzwerkpakete zur späteren Überprüfung speichern. Dies kann mit dem folgenden Befehl erreicht werden.
$ sudo iptables -A INPUT -i eth0 -j LOG --log-prefix "IPtables dropped packets:"
Sie können die Zeichenfolge nach –log-prefix ersetzen zu etwas deiner Wahl. Verwenden Sie grep, um die abgelegten Pakete herauszufinden.
$ sudo grep "IPtables dropped packets:" /var/log/*.log
40. Verbindungsanfragen auf der Netzwerkschnittstelle blockieren
Wenn Sie mehr als eine Netzwerkschnittstelle haben, möchten Sie möglicherweise Verbindungen auf einer davon blockieren. Verwenden Sie den folgenden Befehl, um alle Anfragen aus dem IP-Bereich xxx.xxx.xxx.0/24 auf der ersten Ethernet-Schnittstelle, eth0, zu blockieren.
$ sudo iptables -A INPUT -i eth0 -s xxx.xxx.xxx.0/24 -j DROP
Verschiedene IPtables-Firewallregeln
Da Linux-iptables-Regeln sehr unterschiedlich sein können, werden wir einige wichtige Befehle auflisten, die einen erheblichen Einfluss auf die Systemverwaltung haben. Sie können oft zur Lösung spezifischer Probleme führen und können auch zur Fehlerbehebung der iptables-Firewall verwendet werden.
41. Portweiterleitung in Iptables zulassen
Manchmal möchten Sie vielleicht den Datenverkehr eines Dienstes an einen anderen Port weiterleiten. Der folgende Befehl zeigt ein solches einfaches Beispiel.
$ sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25 -j REDIRECT --to-port 3535
Der obige Befehl leitet den gesamten eingehenden Datenverkehr auf der Netzwerkschnittstelle eth0 von Port 25 an 3535 weiter.
42. Loopback-Zugriff zulassen
Der Loopback-Zugriff ist wichtig für die Fehlersuche in Ihrem Netzwerk und für verschiedene Testzwecke. Sie können dies mit den folgenden Befehlen zulassen.
Für eingehende Verbindungen
$ sudo iptables -A INPUT -i lo -j ACCEPT
Für ausgehende Verbindungen
$ sudo iptables -A OUTPUT -o lo -j ACCEPT
43. Zugriff auf bestimmte MAC-Adressen blockieren
Wenn Sie verhindern möchten, dass andere Personen von einer bestimmten MAC-Adresse aus auf Ihr System zugreifen, können Sie dazu den folgenden Befehl verwenden. Ändern Sie die folgende MAC mit der Adresse, die Sie blockieren möchten.
$ sudo iptables -A INPUT -m mac --mac-source 00:00:00:00:00:00 -j DROP
44. Gleichzeitige Verbindungen pro IP begrenzen
Systemadministratoren möchten manchmal die Anzahl gleichzeitiger Verbindungen begrenzen, die von einer einzelnen IP-Adresse an einem bestimmten Port hergestellt werden. Der nächste Befehl zeigt uns, wie man das mit iptables macht.
$ sudo iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
Sie können die Portnummer und das Verbindungslimit beliebig ändern.
45. Iptables-Regeln durchsuchen
Sobald Ihre iptables-Firewall eingerichtet ist und ausgeführt wird, müssen Sie möglicherweise später einige Regeln überprüfen. Dies kann mit der folgenden Befehlssyntax erfolgen.
$ sudo iptables -L $table -v -n | grep $string
Vergessen Sie nicht, $table durch Ihren Tabellennamen und $string durch Ihren Suchbegriff zu ersetzen.
46. Iptables-Regeln in einer Datei speichern
Sie können Ihre neue iptables-Firewall einfach in einer Datei speichern. Der nächste Befehl zeigt, wie ein neu konfiguriertes iptables in einer Datei namens iptables.rules gespeichert wird. Sie können den Dateinamen beliebig ändern.
$ sudo iptables-save > ~/iptables.rules
47. Iptables aus einer Datei wiederherstellen
Der folgende Befehl zeigt, wie iptables-Firewallregeln aus Dateien wiederhergestellt werden. In diesem Beispiel gehen wir davon aus, dass die Regeln in der Datei gespeichert werden, die im obigen Beispiel erstellt wurde.
$ sudo iptables-restore < ~/iptables.rules
48. Ausgehende E-Mails deaktivieren
Wenn Sie sicher sind, dass Ihr System keine ausgehenden E-Mails senden muss, können Sie diese mit iptables vollständig deaktivieren. Der folgende Befehl blockiert alle ausgehenden Verbindungen an SMTP-Ports. Verwenden Sie DROP statt REJECT, wenn Sie keine Bestätigung senden möchten.
$ sudo iptables -A OUTPUT -p tcp --dports 25,465,587 -j REJECT
49. Paketanzahl und -größe zurücksetzen
Sie können den folgenden Befehl verwenden, um die Anzahl Ihrer iptables-Pakete und die Gesamtgröße zurückzusetzen. Dies ist hilfreich, wenn Sie feststellen möchten, wie viel neuer Datenverkehr Ihr Server während einer bereits hergestellten Verbindung verarbeitet.
$ sudo iptables -Z
50. Ermöglicht interne zu externe Verbindungen
Angenommen, Ihre interne Netzwerkschnittstelle ist eth1 und die externe Schnittstelle ist eth0. Der folgende Befehl ermöglicht dem eth1-Adapter den Zugriff auf den Datenverkehr des externen Adapters.
$ sudo iptables -A FORWARD l-i eth1 -o eth0 -j ACCEPT
Abschlussgedanken
Linux-iptables-Regeln bieten ein flexibles Mittel zur Steuerung des Netzwerkverkehrs und ermöglichen es Administratoren, ihr System bequem zu verwalten. Die Leute denken oft, dass iptables aufgrund einer Fülle von iptables-Firewallregeln außerhalb ihres Geltungsbereichs liegt. Sie sind jedoch recht einfach, sobald Sie sie verstanden haben.
Darüber hinaus sind fundierte Kenntnisse über iptables zwingend erforderlich, wenn Sie eine Karriere im Netzwerkbereich anstreben. Wir haben die 50 nützlichsten iptables-Befehle skizziert, damit Sie sie schnell lernen können. Beginnen Sie sofort mit dem Üben und experimentieren Sie weiter, bis Sie etwas Neues lernen. Hinterlassen Sie uns Ihre Gedanken zu diesem Leitfaden und bleiben Sie bei uns für weitere spannende Leitfäden zu verschiedenen Linux- und Unix-Befehlen.