Linux mag einen Ruf für Sicherheit haben, aber es ist nicht perfekt. Viele Distributionen verfügen nicht über die besten Sicherheitsstandards. Daher empfiehlt es sich, einige Best Practices für die Sicherheit zu implementieren. Ein solches Beispiel ist die Verwendung einer Firewall.

Es gibt ein paar Optionen für Firewalls in Linux, aber die meisten sind eigentlich nur Wrapper um iptables. Für diesen Leitfaden zeigen wir Ihnen, wie Sie direkt mit iptables arbeiten können.

Was ist Iptables?

Iptables ist die Linux-Kernel-Firewall. Es kommt mit jeder Linux-Distribution und es ist der direkteste Weg, den Verkehr zu kontrollieren, der in und aus Ihrem Computer kommt.

Iptables hat den Ruf, komplex zu sein und es kann sein. Sie müssen jedoch nicht alles über iptables wissen, um es effektiv auf Ihrem Desktop zu verwenden. Sie brauchen nur ein paar grundlegende Kenntnisse darüber, wie es funktioniert und wie seine Regeln strukturiert sind.

Related : So behandeln und konfigurieren Sie Firewall unter Linux

Befehlsstruktur

Alle iptables-Regeln folgen derselben Grundstruktur. Jede Regel ist ein einzeiliger Befehl an iptables, der angibt, wie der Verkehr an einem bestimmten Port gehandhabt wird. Schauen Sie sich das folgende Beispiel an:

 -A INPUT -i eth0 -p tcp -m Zustand - Status ESTABLISHED, RELATED - Sport 80 -j ACCEPT 

Das sieht nach viel aus, aber es ist wirklich einfach, wenn man es kaputt macht. Zuerst beginnt diese Regel mit -A weil sie an Ihre iptables-Regeln angehängt wird.

Als nächstes gibt das Flag -i die Schnittstelle an, für die die Regel gilt. In diesem Fall ist es eth0 . Achten Sie beim Schreiben Ihrer eigenen Regeln darauf, dass Sie wissen, mit welcher Schnittstelle Sie über Ihr Netzwerk verbunden sind.

Das folgende Flag, -p, benennt das Protokoll. Diese Regel gilt für tcp, also für den Web-Datenverkehr.

Die -m Flagge ist ein bisschen anders. Es wird verwendet, um zu bestätigen, dass eine Bedingung erfüllt sein muss, damit der Verkehr nicht zurückgewiesen wird. Die Bedingung in dieser Regel ist der Staat.

State ist eigentlich die nächste Flagge. Sie müssen --state Geben --state eine Liste der zulässigen Zustände ein, die in --state geschrieben und durch Kommas getrennt sind. Diese Regel akzeptiert sowohl neue als auch etablierte Verbindungen.

Die vorletzte Flagge hier ist --sport . Es steht für "source port" und es teilt iptables mit, woher der Verkehr kommt. Es gibt auch ein --dport Flag, das für "Ziel-Port" steht. Es wird für die OUTPUT Regeln verwendet, um zu behandeln, welcher Port-Verkehr ankommt.

Schließlich gibt es die -j Flagge. Es teilt iptable mit, zu welcher Aktion "gesprungen" werden soll. In diesem Fall sollte es den Datenverkehr ACCEPT der die vorherigen Bedingungen erfüllt.

Verwenden einer Datei

Sie können Ihre Regeln einzeln nacheinander in iptables eingeben. Das ist unglaublich mühsam, und es ist sehr leicht, den Überblick zu verlieren, wo Sie sind und was Sie tun. Es ist viel besser, eine Regeldatei zu erstellen, die Sie alle gleichzeitig in iptables importieren können.

Es spielt keine Rolle, wo Sie die Datei erstellen. Leute machen sie sogar im Verzeichnis /tmp weil iptables das Ergebnis speichert, nachdem es importiert wurde.

Erstelle deine Datei. In diesem Handbuch wird /tmp/iptables-ip4 . Fügen Sie in der Datei die folgenden zwei Zeilen hinzu. Alle deine Regeln werden zwischen ihnen liegen.

 * filter # Deine Regeln hier COMMIT 

Erstellen Sie Ihre Regeln

Sie können mit der Einrichtung Ihrer Regeln beginnen. Dies sind nur Vorschläge. Wenn Sie andere Dienste ausführen oder andere Ports geöffnet haben, können Sie natürlich einige Dinge optimieren oder eigene Regeln hinzufügen.

Loopback

Die Loopback-Schnittstelle ist eine interne Schnittstelle, die Linux verwendet.

 -A EINGANG -i lo -j AKZEPT-A AUSGANG -o lo -j AKZEPTIEREN 

Klingeln

Dieser ist eine Frage der Präferenz. Viele Leute mögen es überhaupt nicht, Ping auf ihren Desktops zu erlauben. Es kann jedoch nützlich sein, Verbindungen zu testen. Wenn Sie Ping zulassen möchten, fügen Sie die folgenden Regeln hinzu. Wenn Sie dies nicht tun, schließen Sie sie aus.

 -A INPUT -i eth0 -p icmp -m Status --status NEW --icmp-type 8 -j AKZEPT-A EINGANG -i eth0 -p icmp -m Status --status ERGIBT, VERBUNDEN -j ANNEHMEN -A AUSGANG - o eth0 -p icmp -j AKZEPTIEREN 

Das Netz

Sie möchten offensichtlich eine Verbindung mit dem Web herstellen können. Auf der anderen Seite wollen Sie keine Verbindungen aus dem Internet zulassen.

 -A EINGANG -i eth0 -p tcp -m Zustand --Status HERAUSGEFÜHRT, VERWANDT --Sport 80 -j ANNEHMEN -EINGANG -i eth0 -p tcp -m Zustand --Status FESTGESTELLT, VERWANDT --Sport 443 -j AKZEPTIEREN -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ANNEHMEN -A AUSGABE -o eth0 -p tcp -m tcp --dport 443 -j AKZEPTIEREN 

Sie müssen auch DNS-Verbindungen zulassen, damit Ihr Computer URLs anstelle von nur IP-Adressen verwenden kann, da dies nicht sehr praktisch wäre. Ersetzen Sie die IP-Adresse Ihres Routers für die hier verwendete Adresse.

 -A EINGANG -i ens3 -s 192.168.1.1 -p udp --sport 53 -m zustand --status ERGIBT, VERBINDET -j ANNEHMEN -A AUSGANG -o ens3 -d 192.168.1.1 -p udp --dport 53 -m udp -j AKZEPTIEREN 

Zeit

Die meisten Linux-Desktops verwenden NTP, um die Systemzeit über das Internet festzulegen und zu verwalten. Sie müssen Ihrem Computer erlauben, sich mit einem NTP-Server zu verbinden, um die Zeit zu erhalten.

 -A INPUT -i eth0 -p udp -m Status - Status ESTABLISHED, VERWANDT --dport 123 -j ANNEHMEN-OUTPUT -o eth0 -p udp -m udp --sport 123 -j AKZEPTIEREN 

Drucken

Sofern Sie keinen USB-Drucker oder einen externen Druckserver verwenden, müssen Sie Verbindungen zu CUPS aktivieren.

 -A EINGABE -p udp -m udp --dport 631 -j ANNEHMEN -A EINGABE -p tcp -m tcp --dport 631 -j ANNEHMEN -A AUSGABE -p udp -m udp --sport 631 -j AKZEPTIEREN -A OUTPUT -p tcp -m tcp --sport 631 -j AKZEPTIEREN 

Email

Wahrscheinlich möchten Sie auch E-Mails senden und empfangen können. E-Mail kann schwierig sein. Die hier erlaubten Ports sind die SSL-Email-Ports. Wenn Sie ungesicherte E-Mails verwenden müssen, ersetzen Sie diese Ports.

 # IMAP -A EINGANG -i eth0 -p tcp -m Zustand --status ERGIBT, VERBUNDEN --sport 993 -j ANNEHMEN -A AUSGABE -o eth0 -p tcp -m tcp --dport 993 -j AKZEPTIEREN # POP3 -A INPUT -i eth0 -p tcp -m Zustand --status ERGIBT, VERBUNDEN --sport 995 -j ANNEHMEN -A AUSGABE -o eth0 -p tcp -m tcp --dport 995 -j AKZEPTIEREN # SMTP -A EINGANG -i eth0 -p tcp -m Zustand --status ERGIBT, VERBUNDEN --sport 465 -j ANNEHMEN -A AUSGABE -o eth0 -p tcp -m tcp --dport 465 -j AKZEPTIEREN 

SSH

Um die SSH-Verbindungen voll auszunutzen, müssen Sie sowohl die Eingabe als auch die Ausgabe über SSH zulassen.

 # Eingang -A EINGANG -i ens3 -p tcp -m Zustand --status NEU, EINGEFERTIGT --dport 22 -j ANNEHMEN -A AUSGANG -o ens3 -p tcp -m Zustand --status EINGESTELLT --sport 22 -j AKZEPTIEREN # Ausgang -A AUSGANG -o ens3 -p tcp -m Zustand --status NEU, EINGEFERTIGT --dport 22 -j ANNEHMEN -A EINGANG -i ens3 -p tcp -m Zustand --Status ESTABLISHED --sport 22 -j ANNEHMEN 

DHCP

Die meisten Linux-Desktops verwenden DHCP, um automatisch eine IP-Adresse von einem Router zu erhalten. DHCP verwendet seine eigenen Ports, daher müssen sie auch zugänglich sein. Wenn Sie eine statische IP verwenden, benötigen Sie diese Regeln nicht.

 -A INPUT -i eth0 -p udp -m Zustand --status ESTABLISHED, RELATED --sport 67:68 -j ANNEHMEN -A AUSGABE -o eth0 -p udp -m udp --dport 67:68 -j AKZEPTIEREN 

Alles andere ablehnen

Schließlich wirst du Iptables sagen, dass du alles ablehnen sollst, was du in den obigen Regeln nicht explizit erlaubt hast.

 -A INPUT -j REJECT-FORWARD -j REJECT-OUTPUT -j REJECT 

Nach allem sollten Ihre Regeln in etwa so aussehen.

Importieren Sie Ihre Regeln

Sie haben jetzt eine voll funktionsfähige iptables-Regelliste. Sie müssen es nur an iptables weitergeben, um es zu verwenden.

Falls einige Regeln im Laufe der Zeit hinzugefügt wurden, löschen Sie sie. Nach diesen Befehlen sehen Sie die Standardeinstellungen, die alles erlauben.

 sudo iptables -F && sudo iptables -X 

Wenn diese entfernt wurden, können Sie die neuen aus der von Ihnen erstellten Datei wiederherstellen.

 sudo iptables-restore </ tmp / itpables-ip4 

Ihr Computer verwendet jetzt die neuen iptables-Regeln. Sie können sie überprüfen.

 sudo iptables -S 

Sie sind jedoch noch nicht dauerhaft. Wenn Sie Ihren Computer jetzt neu starten, werden Sie eine wirklich schlechte Zeit haben.

Sie dauerhaft machen

Es gibt mehrere Möglichkeiten, die Regeln dauerhaft zu machen. Sie sind für jede Distribution unterschiedlich. Dieses Handbuch konzentriert sich auf Debian- und Ubuntu-basierte Systeme, da diese am beliebtesten sind.

Es gibt ein Paket namens iptables-persistant, das iptables speichert und wiederherstellt. Alles, was Sie tun müssen, ist es zu installieren.

 sudo apt installiert iptables-persistent 

Während der Installation werden Sie vom Paket gefragt, ob Sie Ihre Konfiguration speichern möchten. Wählen Sie "Ja".

Wenn Sie in der Zukunft Regeln hinzufügen möchten, können Sie den Befehl erneut ausführen, indem Sie den folgenden Befehl ausführen.

 sudo service netfilter-persistent speichern 

Sie haben jetzt die Kontrolle über den Datenverkehr, der durch Ihren Computer fließt. Es gibt sicherlich mehr, was Sie mit iptables machen können, aber Sie sollten sich zuerst mit den Grundlagen vertraut machen.