25 Nützliche iptierbare Firewall -Regeln, die jeder Linux -Administrator wissen sollte

25 Nützliche iptierbare Firewall -Regeln, die jeder Linux -Administrator wissen sollte

Das Verwalten von Netzwerkverkehr ist einer der schwierigsten Jobs, mit denen ein Systemadministratoren zu tun haben müssen. Er muss die Firewall so konfigurieren, dass sie den Anforderungen des Systems und der Benutzer sowohl für eingehende als auch für ausgehende Verbindungen erfüllt, ohne das System anfällig für Angriffe zu lassen.

25 iptables Firewall -Regeln für Linux

Das ist wo iptables nützlich kommen. Iptables ist eine Linux -Befehlszeilen -Firewall, mit der Systemadministratoren eingehender und ausgehender Datenverkehr über eine Reihe konfigurierbarer Tabellenregeln verwalten können.

Iptables Verwendet eine Reihe von Tabellen mit Ketten, die eine Reihe von integrierten oder benutzerdefinierten Regeln enthalten. Dank ihm kann ein Systemadministrator den Netzwerkverkehr seines Systems ordnungsgemäß filtern.

Per Iptables -Handbuch gibt es derzeit 3 ​​Arten von Tabellen:

    1. FILTER - Dies ist die Standardtabelle, die die integrierten Ketten enthält für:
      1. EINGANG  - Pakete für lokale Steckdosen
      2. NACH VORNE - Pakete durch das System geleitet
      3. AUSGANG - Pakete lokal erzeugt
    2. Nat - Eine Tabelle, die konsultiert wird, wenn ein Paket versucht, eine neue Verbindung zu erstellen. Es hat das folgende Einbau:
      1. Vorränge - verwendet zur Änderung eines Pakets, sobald es erhalten ist
      2. AUSGANG - Wird zur Änderung lokal erzeugter Pakete verwendet
      3. Postrouting - Wird zum Ändern von Paketen verwendet
    3. MANGEL - Diese Tabelle wird für die Veränderung des Pakets verwendet. Bis Kernelversion 2.4 Diese Tabelle hatte nur zwei Ketten, aber sie sind jetzt 5:
      1. Vorränge - zur Veränderung eingehender Verbindungen
      2. AUSGANG - Um lokal erzeugte Pakete zu verändern
      3. EINGANG - Für eingehende Pakete
      4. Postrouting - zum Veränderung der Pakete, während sie kurz vor dem Ausgehen sind
      5. NACH VORNE - Für Pakete, die durch die Box geleitet wurden

In diesem Artikel sehen Sie einige nützliche Befehle, mit denen Sie Ihre Linux -Box -Firewall über Iptables verwalten können. Für den Zweck dieses Artikels werde ich mit einfacheren Befehlen beginnen und bis zum Ende komplexer gehen.

1. Start/Stop/Neustart iptables Firewall

Zunächst sollten Sie wissen, wie Sie den Iptables -Dienst in verschiedenen Linux -Verteilungen verwalten können. Das ist ziemlich einfach:

Auf systemd -basierten Linux -Verteilungen

------------ Auf Cent/rhel 7 und Fedora 22+ ------------ # SystemCTL Start iptables # SystemCtl Stopp iptables # SystemCTL Neustart iptables 

Auf sysvinit basierten Linux -Verteilungen

------------ Auf Cent/rhel 6/5 und Fedora ------------ # /etc /init.D/iptables starten #/etc/init.D/iptables stoppen #/etc/init.D/iptables neu starten 

2. Überprüfen Sie alle Iptables -Firewall -Regeln

Wenn Sie Ihre vorhandenen Regeln überprüfen möchten, verwenden Sie den folgenden Befehl:

# iptables -l -n -v 

Dies sollte die Ausgabe ähnlich wie unten zurückgeben:

Ketteneingabe (Richtlinien Akzeptieren 1129K -Pakete, 415 m Bytes) PKTS -Bytes Zielprotokoll -Opt -Out -Quellziel 0 0 Akzeptieren Sie TCP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 53 0 0 Akzeptieren Sie UDP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 UDP DPT: 53 0 0 Akzeptieren Sie TCP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 TCP DPT: 67 0 0 Akzeptieren Sie UDP - LXCBR0 * 0.0.0.0/0 0.0.0.0/0 UDP DPT: 67
Chain Forward (Richtlinie Akzeptieren Sie 0 Pakete, 0 Bytes) PKTS -Bytes Zielprotokoll -Opt -Out -Quellziel 0 0 Akzeptieren Sie alle - * lxcbr0 0.0.0.0/0 0.0.0.0/0 0 0 akzeptieren alle - lxcbr0 * 0.0.0.0/0 0.0.0.0/0
Kettenausgabe (Richtlinien akzeptieren 354K -Pakete, 185 m Bytes) PKTS -Bytes Zielprotteil out -Quellziel

Wenn Sie es vorziehen, die Regeln für eine bestimmte Tabelle zu überprüfen, können Sie die verwenden -T Option gefolgt von der Tabelle, die Sie überprüfen möchten. Zum Beispiel, um die Regeln in der zu überprüfen Nat Tabelle, Sie können verwenden:

# iptables -t nat -l -v -n 

3. Blockieren Sie die spezifische IP -Adresse in Iptables Firewall

Wenn Sie eine ungewöhnliche oder missbräuchliche Aktivität von einer IP -Adresse finden, können Sie diese IP -Adresse mit der folgenden Regel blockieren:

# iptables -a Eingabe -s xxx.xxx.xxx.xxx -j Drop 

Wo Sie sich ändern müssen "xxx.xxx.xxx.xxx " mit der tatsächlichen IP -Adresse. Seien Sie sehr vorsichtig, wenn Sie diesen Befehl ausführen, da Sie versehentlich Ihre eigene IP -Adresse blockieren können. Der -A Die Option wendet die Regel am Ende der ausgewählten Kette an.

Falls Sie nur blockieren möchten TCP Datenverkehr von dieser IP -Adresse können Sie die verwenden -P Option, die das Protokoll angibt. Auf diese Weise sieht der Befehl so aus:

# iptables -a input -p tcp -s xxx.xxx.xxx.xxx -j Drop 

4. IP -Adresse entsperren in iptables Firewall

Wenn Sie entschieden haben, dass Sie Anforderungen nicht mehr von einer bestimmten IP -Adresse blockieren möchten, können Sie die Blockierungsregel mit dem folgenden Befehl löschen:

# iptables -d input -s xxx.xxx.xxx.xxx -j Drop 

Der -D Option löscht eine oder mehrere Regeln aus der ausgewählten Kette. Wenn Sie es vorziehen, die längere Option zu verwenden, die Sie verwenden können --löschen.

5. Blockieren Sie den spezifischen Port auf iptables Firewall

Manchmal möchten Sie möglicherweise eingehende oder ausgehende Verbindungen an einem bestimmten Port blockieren. Es ist eine gute Sicherheitsmaßnahme, und Sie sollten wirklich darüber nachdenken, wenn Sie Ihre Firewall einrichten.

Um ausgehende Verbindungen für eine bestimmte Portutzung zu blockieren:

# iptables -a output -p tcp - -dport xxx -j Drop 

Um eingehende Verbindungen zu ermöglichen, verwenden Sie:

# iptables -a input -p tcp - -dport xxx -j Akzeptieren 

In beiden Beispielen ändern sich "xxx" Mit dem eigentlichen Port, den Sie zulassen möchten. Wenn Sie blockieren möchten UDP Verkehr statt von TCP, einfach ändern "TCP" mit "UDP" In der obigen Iptables -Regel.

6. Ermöglichen Sie mehrere Ports auf Iptables mit Multiport

Sie können mehrere Ports gleichzeitig zulassen, indem Sie verwenden Multiport, Im Folgenden finden Sie eine solche Regel für eingehende und ausgehende Verbindungen:

# iptables -a Eingabe -p tcp -m multiport - -dorts 22,80,443 -J Akzeptieren # iptables -a output -p tcp -m Multiport --Sports 22,80,443 -j Akzeptieren 

7. Ermöglichen Sie einen bestimmten Netzwerkbereich auf einem bestimmten Port auf iptables

Möglicherweise möchten Sie bestimmte Verbindungen auf einem bestimmten Port auf ein bestimmtes Netzwerk einschränken. Angenommen, Sie möchten ausgehende Verbindungen am Port zulassen 22 Netzwerken 192.168.100.0/24.

Sie können es mit diesem Befehl tun:

# iptables -a output -p tcp -d 192.168.100.0/24 - -dort 22 -J Akzeptieren 

8. Blockieren Sie Facebook auf iptables Firewall

Einige Arbeitgeber blockieren gerne Zugang zu Facebook zu ihren Mitarbeitern. Nachfolgend finden Sie ein Beispiel, wie der Verkehr auf Facebook blockiert wird.

Notiz: Wenn Sie ein Systemadministrator sind und diese Regeln anwenden müssen, denken Sie daran, dass Ihre Kollegen möglicherweise aufhören, mit Ihnen zu sprechen :) :)

Suchen Sie zunächst die von Facebook verwendeten IP -Adressen:

# Host Facebook.com Facebook.com hat Adresse 66.220.156.68 
# Whois 66.220.156.68 | Grep CIDR CIDR: 66.220.144.0/20 

Sie können dann dieses Facebook -Netzwerk mit:

# iptables -a output -p tcp -d 66.220.144.0/20 -J Drop 

Beachten Sie, dass der von Facebook verwendete IP -Adressbereich in Ihrem Land variieren kann.

9. Setup -Port -Weiterleitung in iptables

Manchmal möchten Sie den Verkehr eines Dienstes an einen anderen Port weiterleiten. Sie können dies mit dem folgenden Befehl erreichen:

# iptables -t nat -a prerouting -i eth0 -p tcp - -dort 25 -J Redirect - -zu -Port 2525 

Der obige Befehl leitet den gesamten eingehenden Verkehr auf der Netzwerkschnittstelle weiter Eth0, vom Hafen 25 zum Hafen 2525. Sie können die Ports mit denen ändern, die Sie benötigen.

10. Blocknetzwerkflut am Apache -Port mit iptables blockieren

Manchmal fordert IP -Adressen zu viele Verbindungen zu Webports auf Ihrer Website an. Dies kann zu einer Anzahl von Problemen führen und um solche Probleme zu verhindern, können Sie die folgende Regel verwenden:

# iptables -a Eingabe -p tcp - -dort 80 -m limit -limit 100/minute -limit -burst 200 -j Akzeptieren 

Der obige Befehl begrenzt die eingehenden Verbindungen von pro Minute auf 100 und legt einen Grenzwert für Burst auf 200. Sie können den Grenzwert und die Begrenzung auf Ihre eigenen spezifischen Anforderungen bearbeiten.

11. Blocke eingehende Ping -Anfragen auf iptables blockieren

Einige Systemadministratoren blockieren gerne eingehende Ping -Anfragen aufgrund von Sicherheitsbedenken. Obwohl die Bedrohung nicht so groß ist, ist es gut zu wissen, wie man eine solche Anfrage blockiert:

# iptables -a Eingabe -p ICMP -i Eth0 -j Drop 

12. Loopback -Zugriff zulassen

Loopback -Zugriff (Zugriff aus 127.0.0.1) ist wichtig und Sie sollten es immer aktiv lassen:

# iptables -a input -i lo -j Akzeptieren # iptables -a output -o lo -j Akzeptieren 

13. Halten Sie ein Protokoll mit fallengelassenen Netzwerkpaketen auf iptables

Wenn Sie die abgesetzten Pakete auf der Netzwerkschnittstelle protokollieren möchten Eth0, Sie können den folgenden Befehl verwenden:

# iptables -a input -i Eth0 -j log - -log -prefix "Iptables fallen gelassene Pakete:" 

Sie können den Wert danach ändern "-Log-Prefix" mit etwas nach Ihrer Wahl. Die Nachrichten sind angemeldet /var/log/messages Und Sie können nach ihnen suchen mit:

# Grep "Iptables fallen gelassene Pakete:"/var/log/messages 

14. Blockieren Sie den Zugriff auf eine bestimmte MAC -Adresse auf iptables

Sie können den Zugriff auf Ihr System über eine bestimmte MAC -Adresse blockieren, indem Sie:

# iptables -a Eingabe -m Mac - -mac -source 00: 00: 00: 00: 00: 00 -j Drop 

Natürlich müssen Sie sich ändern "00: 00: 00: 00: 00: 00" Mit der tatsächlichen MAC -Adresse, die Sie blockieren möchten.

15. Begrenzen Sie die Anzahl der gleichzeitigen Verbindungen pro IP -Adresse

Wenn Sie nicht zu viele gleichzeitige Verbindung aus einer einzelnen IP -Adresse auf dem gegebenen Port festlegen möchten, können Sie den folgenden Befehl verwenden:

# iptables -a input -p tcp - -syn - -dort 22 -m connlimit -connlimit -Above 3 -J Ablehnung 

Der obige Befehl erlaubt nicht mehr als 3 Verbindungen pro Client. Natürlich können Sie die Portnummer an einen anderen Service ändern. Auch der --Connlimit-Above sollte geändert werden, um Ihren Anforderungen zu entsprechen.

16. Suche innerhalb der Iptables -Regel

Sobald Sie Ihre Iptables -Regeln definiert haben, möchten Sie von Zeit zu Zeit suchen und müssen sie möglicherweise ändern. Eine einfache Möglichkeit, innerhalb Ihrer Regeln zu suchen, besteht darin, zu verwenden:

# iptables -l $ table -v -n | Grep $ String 

Im obigen Beispiel müssen Sie sich ändern $ table mit der tatsächlichen Tabelle, in der Sie suchen möchten und $ String mit der tatsächlichen Zeichenfolge, nach der Sie suchen.

Hier ist ein Beispiel:

# iptables -l input -v -n | Grep 192.168.0.100 

17. Definieren Sie die neue Iptables -Kette

Mit Iptables können Sie Ihre eigene Kette definieren und benutzerdefinierte Regeln speichern. Verwenden Sie eine Kette, um eine Kette zu definieren:

# iptables -n Custom -Filter 

Jetzt können Sie überprüfen, ob Ihr neuer Filter vorhanden ist:

# iptables -l 
Probenausgabe
Ketteneingang (Richtlinien Akzeptieren) Zielprotopt -Quellziel 
Kettenwächter (Richtlinien Akzeptieren) Ziel -Protopt -Quellziel
Kettenausgang (Richtlinien Akzeptieren) Zielprotopt -Quellziel
Kette benutzerdefinierte Filter (0 Referenzen) Zielprotopt -Quellziel

18. Flush iptables Firewall -Ketten oder Regeln

Wenn Sie Ihre Firewall -Ketten spülen möchten, können Sie verwenden:

# iptables -f 

Sie können Ketten aus einem bestimmten Tisch spülen mit:

# iptables -t nat -f 

Du kannst ändern "nat" Mit der tatsächlichen Tabelle, welche Ketten Sie spülen möchten.

19. Speichern Sie iptables Regeln in einer Datei

Wenn Sie Ihre Firewall -Regeln speichern möchten, können Sie die verwenden iptables-save Befehl. Sie können Folgendes verwenden, um Ihre Regeln in einer Datei zu speichern und zu speichern:

# iptables-Save> ~/iptables.Regeln 

Es liegt an Ihnen, wo Sie die Datei speichern und wie Sie sie benennen werden.

20. Wiederherstellen Sie Iptables -Regeln aus einer Datei wieder her

Wenn Sie eine Liste von Iptables -Regeln wiederherstellen möchten, können Sie verwenden iptables-restore. Der Befehl sieht so aus:

# iptables-restore < ~/iptables.rules 

Natürlich kann der Pfad zu Ihrer Regelndatei unterschiedlich sein.

21. Setup iptables Regeln für die PCI -Konformität

Einige Systemadministratoren müssen möglicherweise ihre Server als PCI -kompiliant konfigurieren. Es gibt viele Anforderungen verschiedener PCI -Compliance -Anbieter, aber es gibt nur wenige gemeinsame.

In vielen Fällen müssen Sie mehr als eine IP -Adresse haben. Sie müssen die folgenden Regeln für die IP -Adresse der Website anwenden. Seien Sie besonders vorsichtig, wenn Sie die folgenden Regeln verwenden, und verwenden Sie sie nur, wenn Sie sicher sind, was Sie tun:

# iptables -i Eingabe -d Site -p tcp -m multiport - -dorts 21,25,110,143,465,587,993,995 -J Drop 

Wenn Sie CPANEL oder ein ähnliches Bedienfeld verwenden, müssen Sie möglicherweise auch die Ports blockieren. Hier ist ein Beispiel:

# iptables -i in_sg -d dedi_ip -p tcp -m multiport - -dorts 2082,2083,2095,2096,2525,2086,2087 -J Tropfen 

Notiz: Um sicherzustellen, dass Sie die Anforderungen Ihres PCI -Anbieters erfüllen, überprüfen Sie ihren Bericht sorgfältig und wenden Sie die erforderlichen Regeln an. In einigen Fällen müssen Sie möglicherweise auch den UDP -Verkehr auch für bestimmte Ports blockieren.

22. Erlauben Sie etablierte und verwandte Verbindungen

Da der Netzwerkverkehr bei eingehenden und kontaktfressen. Für eingehende Verbindungen tun dies mit:

# iptables -a Eingabe -m ConnTrack -CTTState etabliert, verwandte -J Akzeptieren 

Für die ausgehende Verwendung:

# iptables -a output -m connTrack -CTTState etabliert -j Akzeptieren 

23. Lassen Sie ungültige Pakete in iptables fallen

Es ist möglich, dass einige Netzwerkpakete als ungültig markiert werden. Einige Leute mögen es vorziehen, diese Pakete zu protokollieren, andere lieber, sie fallen zu lassen. Um die Pakete ungültig zu machen, können Sie verwenden:

# iptables -a Eingabe -m ConnTrack -CTTSTATE Invalid -j Drop 

24. Blockieren Sie die Verbindung auf der Netzwerkschnittstelle

Einige Systeme haben möglicherweise mehr als eine Netzwerkschnittstelle. Sie können den Zugriff auf diese Netzwerkschnittstelle einschränken oder Verbindungen von einer bestimmten IP -Adresse blockieren.

Zum Beispiel:

# iptables -a Eingabe -i Eth0 -s xxx.xxx.xxx.xxx -j Drop 

Ändern „XXX.xxx.xxx.xxx ” mit der tatsächlichen IP -Adresse (oder dem Netzwerk), die Sie blockieren möchten.

25. Deaktivieren Sie ausgehende Mails über Iptables

Wenn Ihr System keine E -Mails senden sollte, können Sie ausgehende Ports auf SMTP -Ports blockieren. Zum Beispiel können Sie dies verwenden:

# iptables -a output -p tcp -dorts 25.465.587 -J Ablehnung 

Abschluss

Iptables ist eine mächtige Firewall, von der Sie leicht profitieren können. Für jeden Systemadministrator ist es wichtig, zumindest die Grundlagen von iptables zu lernen. Wenn Sie detailliertere Informationen zu Iptables und seinen Optionen finden möchten, empfehlen Sie dringend, das Handbuch zu lesen:

# Mann iptables 

Wenn Sie der Meinung sind, dass wir dieser Liste weitere Befehle hinzufügen sollten.