Iptables-Firewall

Aus Qloc Wiki
Wechseln zu: Navigation, Suche

Dieser Artikel beschreibt das Einrichten einer Iptables-Firewall unter Ubuntu und Debian. Die Firewall ist so ausgelegt, dass nur Ports erlaubt werden, die zuvor auch eingetragen wurden. Sollten Sie die Firewallregel für beispielsweise den SSH-Port vergessen hinzuzufügen, kann es passieren, dass Sie nur noch per KVM oder Rescue Console auf Ihren (v)Server zugreifen können.

Firewallregeln setzen

Bevor Sie Firewall-Regeln setzen können müssen Sie zunächst feststellen, welchen Namen die externe Netzwerkkarte (diejenige, die die öffentliche IP Ihres vServers trägt) Ihres (v)Servers hat. Dies können Sie mit dem Befehl ifconfig herausfinden. Meist haben diese folgende Bezeichnungen: eth0, vmbr0, venet0 (Zahlen = Anzahl der Netzwerkkarten)

Beginnen wir nun zunächst damit, dass wir zwei essentielle Ausnahmeregeln einrichten:

iptables -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j ACCEPT

Die erste Ausnahmeregel bewirkt, dass der Server weiterhin Internetzugriff hat, die zweite sorgt dafür, dass Ihr Server anpingbar bleibt.


Anschließend schalten wir die von uns auf dem Server betriebenen Dienste frei, wie im folgenden Beispiel der Apache Webserver, ein Teamspeak3-Server und ein SSH-Server:

iptables -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -i eth0 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 9987 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -m tcp -m multiport --dports 30033,10011 -i eth0 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -i eth0 -j ACCEPT

Abhängig davon, welche Dienste sie noch zusätzlich betreiben, müssen Sie weitere Regeln hinzufügen und dementsprechend anpassen. Sollten Sie nicht wissen, welche Dienste auf Ihrem Server laufen bzw. auf welchen Ports diese lauschen, so können Sie diese mithilfe des folgenden Befehls auflisten:

netstat -tulpn

Wenn Sie alle Ports/Dienste freigegeben haben, richten Sie eine abschließende Regel ein, die alle anderen Anfragen an den Server abweist:

iptables -A INPUT -i venet0 -j REJECT --reject-with icmp-admin-prohibited

Firewallregeln speichern

Damit die zuvor gesetzten Firewallregeln auch bei einem Neustart des Servers erhalten bleiben, müssen Sie diese sichern:

iptables-save > /etc/iptables.save

Öffnen Sie abschließend die Datei /etc/rc.local und tragen Sie dort den folgenden Befehl vor der Zeichenkette "exit 0" ein:

iptables-restore < /etc/iptables.save