Einführung
Das Einrichten einer Firewall ist ein wichtiger Schritt bei der Sicherung der meisten modernen Betriebssysteme. Die meisten Linux-Distributionen sind mit verschiedenen Firewall-Tools ausgestattet, mit denen wir unsere Firewall konfigurieren können. In diesem Handbuch werden wir besprechen, wie Sie die Iptables-Firewall für Ubuntu 14.04 konfigurieren.
Hinweis: Dieses Tutorial behandelt die IPv4-Sicherheit. Unter Linux wird die IPv6-Sicherheit getrennt von IPv4 verwaltet. Beispielsweise verwaltet „iptables“ nur Firewall-Regeln für IPv4-Adressen, hat aber ein IPv6-Gegenstück namens „ip6tables“, das verwendet werden kann, um Firewall-Regeln für IPv6-Netzwerkadressen zu verwalten.
Grundlegende Befehle
Bevor Sie dieser Anleitung folgen, müssen Sie Zugriff auf ein Nicht-Root-Superuser-Konto haben, mit auf Ihrem Server eingerichteten sudo-Berechtigungen. Zuerst müssen Sie wissen, dass iptables-Befehle nur mit Root-Rechten ausgeführt werden dürfen. Um diese Bedingung zu implementieren, fügen wir „sudo“ vor allen Befehlen in diesem Handbuch hinzu. Wir können uns auch als Root-Benutzer anmelden, indem wir die Befehle „su“ oder „sudo -i“ verwenden, aber wir bleiben in dieser Anleitung bei „sudo“.
Zunächst müssen wir die aktuellen Regeln finden, die für die iptables konfiguriert sind. Dies wird mit dem folgenden Befehl erreicht:
# sudo iptables -L
Kette INPUT (Richtlinie ACCEPT)Ziel Prot Opt Source Ziel Chain FORWARD (Policy ACCEPT)Ziel Prot Opt Source Ziel Chain OUTPUT (Policy ACCEPT)Ziel Prot Opt Source pre>. >.Wir können die aktuellen Regeln auch in einem einfacheren Format sehen, indem wir das Flag -S anstelle des Flags -L verwenden:
# sudo iptables -S-P INPUT ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPTIn beiden Ergebnissen sehen wir drei Ketten, die als INPUT, FORWARD und OUTPUT angezeigt werden. Wir sehen auch, dass die Standardrichtlinie jeder Kette als ACCEPT festgelegt ist, aber in den obigen Ergebnissen sind keine tatsächlichen Regeln festgelegt. Dies liegt daran, dass Ubuntu nicht mit Standardregeln ausgeliefert wird.
Wenn bereits Regeln in den Iptables konfiguriert sind, können wir sie vollständig löschen, indem wir das -F-Flag wie folgt verwenden:
Hinweis:Wenn Sie die Regeln remote löschen, sollten die Richtlinien der INPUT- und OUTPUT-Ketten auf ACCEPT gesetzt werden. Dies kann durch Eingabe von
erfolgen# sudo iptables -P INPUT ACCEPT# sudo iptables -P OUTPUT ACCEPT# sudo iptables -FEinstellungsregeln für Iptables
Regeln für iptables können auf zwei Arten festgelegt werden. Eine Möglichkeit besteht darin, der Standardregel das AKZEPTIEREN zu erlauben und unerwünschten Datenverkehr zu blockieren, indem bestimmte Regeln festgelegt werden. Die andere Methode besteht darin, zulässigen Datenverkehr zu konfigurieren und alles andere zu blockieren. Die zweite Methode ist oft die bevorzugte .
Die erste Regel, die zugewiesen werden muss, besteht darin, den gesamten eingehenden Datenverkehr zu akzeptieren, indem Sie den folgenden Befehl eingeben:
# sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPTWir können das Ergebnis des obigen Befehls sehen, indem wir erneut das Flag -L verwenden.
# sudo iptables -LKetteneingabe (Richtlinienakzeptakakzeption) Zielprotopt -Quellziel Akzeptieren Sie alle -überall überall ctState verwandt, etabliertChain Forward (Richtlinien Akzeptieren) Zielprott -Quellziel -Kettenausgabe (Richtlinien Akzeptieren) Zielprotopt -QuellzielHier können wir sehen, dass die Richtlinie der INPUT-Kette im Vergleich zu vor der Anwendung der Regel geändert wird.
Der nächste Schritt besteht darin, Datenverkehr zu einem bestimmten Port zuzulassen, um SSH-Verbindungen zu ermöglichen . Dies kann folgendermaßen erfolgen:
# sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT„ssh“ wird standardmäßig in Portnummer 22 übersetzt. Anstelle von „ssh“ kann eine beliebige Portnummer verwendet werden. Geben Sie den folgenden Befehl ein, um den Zugriff auf den HTTP-Webserver zuzulassen:
# sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTEs gibt noch eine ACCEPT-Regel, die unseren Iptables zugewiesen werden muss, damit unser Server ordnungsgemäß läuft.
# sudo iptables -I INPUT 1 -i lo -j ACCEPTHinzufügen einer Drop-Regel
Bisher haben wir unseren Iptables nur ACCEPT-Regeln hinzugefügt. Wir müssen auch Blockregeln zuweisen, da alle Netzwerkpakete gemäß den unseren Iptables zugewiesenen Regeln akzeptiert werden. Eine Möglichkeit besteht darin, der Standardrichtlinie unserer INPUT-Kette eine DROP-Regel zuzuweisen. Dadurch werden alle Pakete abgefangen, die durch unsere INPUT-Kette fallen, und verworfen.
# sudo iptables -P INPUT DROPEine der Auswirkungen dieser Art von Design ist, dass es auf das Verwerfen von Paketen zurückgreift, wenn die Regeln geleert werden.
Der alternative Ansatz besteht darin, die Standardrichtlinie für die Kette auf Akzeptieren zu belassen und eine Regel hinzuzufügen, die jedes verbleibende Paket an das Ende der Kette selbst verwirft.
Wenn Sie die Standardrichtlinie für die INPUT-Kette oben geändert haben, können Sie sie zurücksetzen, um ihr zu folgen, indem Sie Folgendes eingeben:
# sudo iptables -P INPUT ACCEPTJetzt können Sie am Ende der Kette eine Regel hinzufügen, die alle verbleibenden Pakete verwirft:
# sudo iptables -A INPUT -j DROPVor dem Speichern der Iptables ist es besser, die zugewiesenen Regeln einmal zu überprüfen. Unsere aktuellen Regeln lauten wie folgt:
-P INPUT ACCEPT-P FORWARD ACCEPT-P OUTPUT ACCEPT-A INPUT -i lo -j ACCEPT-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT-A INPUT -p tcp -m tcp -- dport 22 -j ACCEPT-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT-A INPUT -j DROPSpeichern von Iptables-Regeln
Standardmäßig werden Iptables-Regeln gelöscht, sobald der Server neu gestartet wird. Um die Iptabels-Regeln dauerhaft zu speichern, können die Einstellungen auf verschiedene Arten gespeichert werden, aber der einfachste Weg ist mit dem Paket „iptables-persistent“. Dies kann von den Standard-Repositories von Ubuntu heruntergeladen werden:
# sudo apt-get update# sudo apt-get install iptables-persistentSpeichern Sie Ihre Firewall-Regeln mit diesem Befehl:
# sudo invoke-rc.d iptables-persistent saveUm zu erfahren, wie Firewall-Regeln mit iptables-persistent unter Ubuntu 10.04/Debian 6.0 konfiguriert und gespeichert werden, klicken Sie auf den folgenden Link:
So konfigurieren und speichern Sie Iptables-persistent für Ubuntu 10.04/ Debian 6.0