In diesem Tutorial zeigen wir Ihnen, wie Sie mit iptables eine Firewall einrichten auf einem Linux VPS mit Ubuntu oder CentOS als Betriebssystem. Iptables ist ein Verwaltungstool für IPv4-Paketfilterung und NAT und wird verwendet, um die Tabellen der IPv4-Paketfilterregeln im Linux-Kernel einzurichten und zu verwalten.
Die ordnungsgemäße Konfiguration und Einrichtung einer Firewall ist eines der wichtigsten und wichtigsten Dinge, die Sie tun müssen, um Ihren Server zu sichern.
Mit iptables werden mehrere verschiedene Paketabgleichstabellen definiert und jede Tabelle kann eine Reihe von eingebauten Ketten sowie einige vom Benutzer definierte Ketten enthalten. Die Ketten sind eigentlich Listen von Regeln, die mit einer Reihe von Paketen übereinstimmen, und jede Regel gibt an, was mit dem übereinstimmenden Paket zu tun ist.
Die Standardtabelle ist der filter
Tabelle und enthält die eingebauten Ketten INPUT, FORWARD und OUTPUT. Die INPUT-Kette wird für Pakete verwendet, die an lokale Sockets gerichtet sind, die FORWARD-Kette wird für Pakete verwendet, die durch die Box geleitet werden, während die OUTPUT-Kette für lokal generierte Pakete verwendet wird.
Stellen Sie über SSH eine Verbindung zu Ihrem Server her und listen Sie die in einer bestimmten Kette definierten Regeln mit der folgenden Syntax auf:
sudo iptables -L CHAIN
Ersetzen Sie CHAIN durch eine der integrierten Ketten, um die definierten Regeln anzuzeigen. Wenn keine Kette ausgewählt ist, werden alle Ketten in der Ausgabe aufgelistet.
sudo iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Die Firewall-Regeln legen fest, was mit einem bestimmten Paket geschehen soll, wenn es bestimmte Kriterien erfüllt, und falls das Paket die Kriterien nicht erfüllt, wird die nächste in der Kette definierte Firewall-Regel untersucht. Dies ist sehr wichtig, wenn Sie die Firewall-Regeln definieren, da Sie sich leicht von Ihrem Server aussperren können, wenn Sie die Regel definieren, die Pakete von Ihrer lokalen IP-Adresse nach der Sperrregel akzeptiert.
Die Ziele, die Sie für die Firewall-Regeln verwenden können, sind ACCEPT, DROP, QUEUE und RETURN. ACCEPT lässt das Paket durch, DROP verwirft das Paket, QUEUE leitet das Paket an den Userspace weiter, während RETURN das Paket durch die aktuelle Kette stoppt und bei der nächsten Regel in der vorherigen Kette fortfährt. Die Standard-Kettenrichtlinie definiert, was mit einem Paket geschehen soll, wenn es nicht mit einer bestimmten Firewall-Regel übereinstimmt. Wie Sie in der Ausgabe des ersten Befehls sehen können, ist die Standardrichtlinie für alle integrierten Ketten auf ACCEPT gesetzt. ACCEPT lässt das Paket passieren, also gibt es im Grunde keinen Schutz.
Bevor Sie bestimmte Regeln hinzufügen, fügen Sie die folgende hinzu:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Dadurch wird verhindert, dass bereits aufgebaute Verbindungen getrennt werden und Ihre aktuelle SSH-Sitzung bleibt aktiv.
Fügen Sie als Nächstes Regeln hinzu, um Datenverkehr auf Ihrer Loopback-Schnittstelle zuzulassen:
sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A OUTPUT -o lo -j ACCEPT
Erlauben Sie als Nächstes den Zugriff auf Ihren Server über SSH für Ihre lokale IP-Adresse, damit nur Sie auf den Server zugreifen können:
sudo iptables -A INPUT -s 111.111.111.111 -p tcp --dport 22 -j ACCEPT
Wobei 111.111.111.111
ist Ihre lokale IP-Adresse und 22
ist der Listening-Port Ihres SSH-Daemons. Falls sich Ihre lokale IP-Adresse dynamisch ändert, lassen Sie am besten das -s 111.111.111.111
weg Teil und verwenden Sie eine andere Methode, um den SSH-Dienst vor unerwünschtem Datenverkehr zu schützen.
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Erlauben Sie als Nächstes den Zugriff auf Ihre wichtigen Dienste wie den HTTP/HTTPS-Server:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
[ecko_alert color=”blue”]Irgendwo stecken geblieben? Holen Sie sich einen VPS von uns und wir sichern Ihren Server ordnungsgemäß ab und konfigurieren kostenlos eine Firewall für Sie![/ecko_alert]
Listen Sie nun die aktuellen Regeln auf und prüfen Sie, ob alles in Ordnung ist. Für eine detaillierte Ausgabe können Sie folgenden Befehl verwenden:
sudo iptables -nvL
Wenn Sie andere Dienste haben, auf die Sie Zugriff gewähren möchten, tun Sie dies am besten jetzt. Wenn Sie fertig sind, können Sie die Standardrichtlinie für die integrierte INPUT-Kette auf DROP setzen.
sudo iptables -P INPUT -j DROP
Dadurch werden alle Pakete verworfen, die nicht den Kriterien der Firewall-Regeln entsprechen. Die endgültige Ausgabe sollte der folgenden ähneln:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 0 0 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
Wenn Sie jetzt jedoch den Server neu starten, gehen alle von Ihnen definierten Firewall-Regeln verloren, daher ist es wirklich wichtig, die Regeln dauerhaft zu machen.
Falls Sie ein Ubuntu-VPS verwenden, müssen Sie zu diesem Zweck ein zusätzliches Paket installieren. Fahren Sie fort und installieren Sie das erforderliche Paket mit dem folgenden Befehl:
sudo apt-get install iptables-persistent
Am Ubutnu 14.04 Sie können die Firewall-Regeln mit den folgenden Befehlen speichern und neu laden:
sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reload
Auf Ubuntu 16.04 Verwenden Sie stattdessen die folgenden Befehle:
sudo netfilter-persistent save sudo netfilter-persistent reload
Wenn Sie einen CentOS-VPS verwenden, können Sie die Firewall-Regeln mit dem folgenden Befehl speichern:
service iptables save
Natürlich müssen Sie nichts davon tun, wenn Sie einen unserer vollständig verwalteten VPS-Hosting-Dienste nutzen. In diesem Fall können Sie einfach unsere erfahrenen Linux-Administratoren bitten, Ihnen bei der Konfiguration Ihrer iptables auf Ihrem Server zu helfen. Sie sind rund um die Uhr erreichbar und kümmern sich umgehend um Ihr Anliegen.
PS . Wenn Ihnen dieser Beitrag zum Einrichten einer Firewall mit iptables unter Ubuntu und CentOS gefallen hat, teilen Sie ihn bitte mit Ihren Freunden in den sozialen Netzwerken über die Schaltflächen unten oder hinterlassen Sie einfach einen Kommentar im Kommentarbereich. Danke.