25 Nützliche iptierbare Firewall -Regeln, die jeder Linux -Administrator wissen sollte
- 3738
- 122
- Tom Jakobs
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 LinuxDas 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:
FILTER
- Dies ist die Standardtabelle, die die integrierten Ketten enthält für:- EINGANG - Pakete für lokale Steckdosen
- NACH VORNE - Pakete durch das System geleitet
- AUSGANG - Pakete lokal erzeugt
Nat
- Eine Tabelle, die konsultiert wird, wenn ein Paket versucht, eine neue Verbindung zu erstellen. Es hat das folgende Einbau:- Vorränge - verwendet zur Änderung eines Pakets, sobald es erhalten ist
- AUSGANG - Wird zur Änderung lokal erzeugter Pakete verwendet
- Postrouting - Wird zum Ändern von Paketen verwendet
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:- Vorränge - zur Veränderung eingehender Verbindungen
- AUSGANG - Um lokal erzeugte Pakete zu verändern
- EINGANG - Für eingehende Pakete
- Postrouting - zum Veränderung der Pakete, während sie kurz vor dem Ausgehen sind
- 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.
- « 5 Tipps, um die Leistung Ihres Apache -Webservers zu steigern
- So installieren Sie LAMP (Linux, Apache, Mariadb und PHP) auf Fedora 23 Server und Workstation »