Server mit iptables absichern
Die folgende Anleitung erläutert wie mit Hilfe von iptables der Zugriff auf Serverdienste aus dem Netzwerk abgesichert werden kann. Nähere Information zu iptables finden sich auch in der Online-Dokumentation von Ubuntu: https://help.ubuntu.com/community/IptablesHowTo
iptables konfigurieren
Als erstes müssen die iptabels-Regeln erstellt werden. Dazu müssen Sie die folgenden Befehle auf der Konsole eingeben.
iptables -A INPUT -p tcp --dport 22 -m recent --set --name ssh --rsource
iptables -A INPUT -p tcp --dport 22 -m recent ! --rcheck --seconds 60 --hitcount 4 --name ssh --rsource -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP
Die erste Regel unterbindet eine Dictionary-Attacke auf den SSH-Zugang in dem nur 4 Verbindungsversuche pro 60 Sekunden zugelassen werden . Die zweite Regel unterbindet jeglichen Zugriff auf den MySQL-Standardport.
iptables-Konfiguration bei jedem Neustart laden
Standardmäßig vergißt iptables bei jedem Neustart die zuvor durchgeführten Änderungen. Um unsere Einstellungen nun bei jedem Neustart wieder zu laden müssen die Regeln mittels Skript geladen werden.
Als erstes sichern wir die gerade aktive Konfiguration.
sh -c "iptables-save > /etc/iptables.rules"
Danach erstellen wir ein Hilfsskript das unsere Regeln bei jedem Start des Interfaces lädt. Dazu legen wir das Skript /etc/network/if-pre-up.d/iptablesload mit folgendem Inhalt an.
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.rules
exit 0