Sichern Sie sich auch Ihren Linux-Desktop mit Iptables
Linux hat zwar den Ruf, sicher zu sein, aber es ist nicht perfekt. Viele Distributionen verfügen außerdem nicht über die besten Sicherheitsstandards. Daher ist es am besten, einige Best Practices für die Sicherheit zu implementieren oder Open-Source-Sicherheitstools zu verwenden. Ein solches Beispiel ist die Verwendung einer Firewall.
Es gibt einige Optionen für Firewalls unter Linux, aber die meisten sind eigentlich nur Wrapper um iptables. In dieser Anleitung zeigen wir Ihnen, wie Sie direkt mit iptables arbeiten.
Lesen Sie auch: Was ist Log4Shell und wie schützen Sie Ihr Linux-System davor?
Was ist Iptables?
Iptables ist die Linux-Kernel-Firewall. Es ist in jeder Linux-Distribution enthalten und bietet die direkteste Möglichkeit, den ein- und ausgehenden Datenverkehr auf Ihrem Computer zu kontrollieren.
Iptables hat den Ruf, komplex zu sein, und das kann auch so sein. Sie müssen jedoch nicht alles über iptables wissen, um es effektiv auf Ihrem Desktop nutzen zu können. Sie benötigen lediglich einige Grundkenntnisse darüber, wie es funktioniert und wie seine Regeln aufgebaut sind.
Befehlsstruktur
Alle iptables-Regeln folgen der gleichen Grundstruktur. Bei jeder Regel handelt es sich um einen einzelnen Befehl an iptables, der angibt, wie der Datenverkehr an einem bestimmten Port verarbeitet werden soll. Schauen Sie sich das folgende Beispiel an:
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPTDas sieht vielleicht nach viel aus, aber wenn man es aufschlüsselt, ist es wirklich einfach. Erstens beginnt diese Regel mit -A, da 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. Stellen Sie beim Schreiben Ihrer eigenen Regeln sicher, dass Sie wissen, über welche Schnittstelle Sie mit Ihrem Netzwerk verbunden sind.
Das folgende Flag, -p, benennt das Protokoll. Diese Regel gilt für TCP, also Webverkehr.
Das Flag -m ist etwas anders. Damit wird behauptet, dass eine Bedingung erfüllt sein muss, damit der Datenverkehr nicht abgelehnt wird. Die Bedingung in dieser Regel ist der Zustand.
Staat ist eigentlich die nächste Flagge. Sie müssen --state eine Liste akzeptabler Zustände geben, die in Großbuchstaben geschrieben und durch Kommas getrennt sind. Diese Regel akzeptiert sowohl neue als auch bestehende Verbindungen.
Die vorletzte Flagge hier ist --sport. Es steht für „Quellport“ und teilt iptables mit, woher der Datenverkehr kommt. Es gibt auch ein Flag --dport, das für „Zielport“ steht. Es wird für OUTPUT-Regeln verwendet, um den Portverkehr zu verarbeiten, von dem er ankommt.
Schließlich gibt es noch das Flag -j. Es teilt iptable mit, zu welcher Aktion es „springen“ soll. In diesem Fall sollte der Datenverkehr AKZEPTIERT werden, der die vorherigen Bedingungen erfüllt.
Lesen Sie auch: So verwenden Sie den Nessus Vulnerability Scanner unter Linux
Verwenden einer Datei
Sie können Ihre Regeln einzeln manuell in iptables eingeben. Das ist unglaublich mühsam und man verliert sehr leicht den Überblick darüber, wo man ist und was man tut. Es ist viel besser, eine Regeldatei zu erstellen, die Sie auf einmal in iptables importieren können.
Es spielt keine Rolle, wo Sie die Datei erstellen. Die Leute erstellen sie sogar im Verzeichnis /tmp, weil iptables das Ergebnis nach dem Import speichert.
Erstellen Sie Ihre Datei. In dieser Anleitung wird /tmp/iptables-ip4 verwendet. Fügen Sie in der Datei die folgenden zwei Zeilen hinzu. Alle Ihre Regeln werden dazwischen liegen.
*filter # Ihre Regeln hier COMMITErstellen Sie Ihre Regeln
Sie können mit der Einrichtung Ihrer Regeln beginnen. Dies sind lediglich Vorschläge. Wenn Sie andere Dienste ausführen oder andere offene Ports benötigen, können Sie natürlich einige Dinge optimieren oder Ihre eigenen Regeln hinzufügen.
Loopback
Die Loopback-Schnittstelle ist eine interne Schnittstelle, die Linux verwendet.
-A INPUT -i lo -j ACCEPT -A OUTPUT -o lo -j ACCEPTKlingeln
Dies ist eine Frage der Präferenz. Vielen Menschen gefällt es überhaupt nicht, Ping auf ihren Desktops zuzulassen. Es kann jedoch nützlich sein, es zu haben, um Verbindungen zu testen. Wenn Sie Ping zulassen möchten, fügen Sie die folgenden Regeln hinzu. Wenn nicht, schließen Sie sie aus.
-A INPUT -i eth0 -p icmp -m state --state NEW --icmp-type 8 -j ACCEPT -A INPUT -i eth0 -p icmp -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT - o eth0 -p icmp -j AKZEPTIERENDas Netz
Sie möchten natürlich eine Verbindung zum Internet herstellen können. Auf der anderen Seite möchten Sie keine Verbindungen zulassen, die aus dem Internet stammen.
-A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 80 -j ACCEPT -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 443 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 80 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 443 -j ACCEPTAußerdem müssen Sie DNS-Verbindungen zulassen, damit Ihr Computer URLs statt nur IP-Adressen verwenden kann, denn das wäre nicht sehr praktisch. Ersetzen Sie die hier verwendete IP-Adresse Ihres Routers.
-A INPUT -i ens3 -s 192.168.1.1 -p udp --sport 53 -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -o ens3 -d 192.168.1.1 -p udp --dport 53 -m udp -j AKZEPTIERENZeit
Die meisten Linux-Desktops verwenden NTP, um die Systemzeit über das Internet festzulegen und zu verwalten. Sie müssen Ihrem Computer erlauben, eine Verbindung zu einem NTP-Server herzustellen, um die Uhrzeit abzurufen.
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --dport 123 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --sport 123 -j ACCEPTSofern Sie keinen USB-Drucker oder einen externen Druckserver verwenden, müssen Sie Verbindungen zu CUPS aktivieren.
-A INPUT -p udp -m udp --dport 631 -j ACCEPT -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A OUTPUT -p udp -m udp --sport 631 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 631 -j AKZEPTIERENSie möchten wahrscheinlich auch E-Mails senden und empfangen können. E-Mails können schwierig sein. Die hier zulässigen Ports sind die SSL-E-Mail-Ports. Wenn Sie ungesicherte E-Mails verwenden müssen, ersetzen Sie diese Ports.
# IMAP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 993 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 993 -j ACCEPT # POP3 -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 995 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 995 -j ACCEPT # SMTP -A INPUT -i eth0 -p tcp -m state --state ESTABLISHED,RELATED --sport 465 -j ACCEPT -A OUTPUT -o eth0 -p tcp -m tcp --dport 465 -j ACCEPTSSH
Um SSH-Verbindungen vollständig nutzen zu können, müssen Sie sowohl die Eingabe als auch die Ausgabe über SSH zulassen.
# Input -A INPUT -i ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT -A OUTPUT -o ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPT # Output -A OUTPUT -o ens3 -p tcp -m state --state NEW,ESTABLISHED --dport 22 -j ACCEPT -A INPUT -i ens3 -p tcp -m state --state ESTABLISHED --sport 22 -j ACCEPTDHCP
Die meisten Linux-Desktops verwenden DHCP, um automatisch eine IP-Adresse von einem Router zu erhalten. Da DHCP eigene Ports verwendet, müssen diese ebenfalls zugänglich sein. Wenn Sie eine statische IP verwenden, benötigen Sie diese Regeln nicht.
-A INPUT -i eth0 -p udp -m state --state ESTABLISHED,RELATED --sport 67:68 -j ACCEPT -A OUTPUT -o eth0 -p udp -m udp --dport 67:68 -j ACCEPTAlles andere ablehnen
Abschließend weisen Sie iptables an, absolut alles abzulehnen, was Sie in den obigen Regeln nicht ausdrücklich zugelassen haben.
-A INPUT -j ABLEHNEN -A VORWÄRTS -j ABLEHNEN -A AUSGANG -j ABLEHNENLetztendlich sollten Ihre Regeln in etwa so aussehen.
Lesen Sie auch: So verwenden Sie den Passwortspeicher zum Verwalten Ihrer Passwörter unter Linux
Importieren Ihrer Regeln
Sie verfügen jetzt über eine voll funktionsfähige iptables-Regelliste. Sie müssen es nur an iptables übergeben, um es verwenden zu können.
Falls im Laufe der Zeit einige Regeln hinzugefügt wurden, löschen Sie diese. Nach diesen Befehlen sehen Sie die Standardeinstellungen, die alles zulassen.
sudo iptables -F && sudo iptables -XWenn diese nicht mehr vorhanden sind, können Sie die neuen aus der von Ihnen erstellten Datei wiederherstellen.
sudo iptables-restore < /tmp/itpables-ip4Ihr Computer verwendet jetzt die neuen iptables-Regeln. Sie können sie sich ansehen.
Allerdings sind sie noch nicht dauerhaft. Wenn Sie Ihren Computer jetzt neu starten, wird Folgendes angezeigt: Wirklich schlechte Zeit.
Lesen Sie auch: So sichern Sie Ihre Linux-Server mit SELinux
Sie dauerhaft machen
Es gibt mehrere Möglichkeiten, die Regeln dauerhaft zu machen. Sie sind für jede Distribution unterschiedlich. Dieser Leitfaden konzentriert sich auf Debian- und Ubuntu-basierte Systeme, da diese am beliebtesten sind.
Es gibt ein Paket namens iptables-persistant, das das Speichern und Wiederherstellen von iptables übernimmt. Alles was Sie tun müssen, ist es zu installieren.
sudo apt install iptables-persistentWährend der Installation werden Sie vom Paket gefragt, ob Sie Ihre Konfiguration speichern möchten. Wählen Sie „Ja“.
Wenn Sie in Zukunft Regeln hinzufügen möchten, können Sie dies erneut speichern, indem Sie den folgenden Befehl ausführen.
sudo service netfilter-persistente SpeicherungSie haben jetzt die Kontrolle über den Datenverkehr, der durch Ihren Computer fließt. Mit iptables können Sie sicherlich noch mehr tun, aber Sie sollten sich zunächst mit den Grundlagen vertraut machen.
Schreibe einen Kommentar