IPTABLES Howto


Autor: F4RR3LL|sven
E-Mail: sven.richter@nixhelp.de
Stand: 19.06.2008


Ich möchte einige wenige Worte zu IPTables verlieren.
Gleich vorweg, IPTables ist ein Tool das unwahrscheinlich viel kann.
Um all seine Funktionen erklären zu wollen würde jedoch den Rahmen hier sprengen, daher beschränke ich mich auf die wichtigsten Funktionen.
Ich werde darauf eingehen wie man es so einrichtet, dass es die Funktion einer Portwall übernimmt.
In eurem Server dürfte momantan noch nichts eingerichtet sein, ihr könnt das ja mal testen indem ihr auf der Console folgendes eingebt:

iptables -L



Die Ausgabe dürfte recht dürftig sein ;)

Sollte eine Meldung kommen, dass das Modul ip_tables nicht gefunden wurde, liegt es daran:

Wenn es nicht geladen wurde, kann man versuchen es manuell zu laden mit

modprobe ip_tables

Wird es noch immer nicht geladen, bleibt euch nichts weiter übrig als einen neuen Kernel zu bauen. Bei den Kerneln von OVH wird der Befehl 'modprobe' nicht funktionieren, weil beim Backen dieser 'Kernel' die Modulfunktion bewusst nicht berücksichtigt wurde…

Um sich einen Paketfilter/minimale Firewall zu installieren geht man folgendermaßen vor:

cat > /etc/network/if-up.d/iptables.active.sh << "EOF"
#!/bin/sh

IPTABLES="/sbin/iptables"

$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -p icmp -m icmp --icmp-type 5 -j DROP
$IPTABLES -A INPUT -p icmp -j ACCEPT
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
$IPTABLES -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent   --set
$IPTABLES -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent   --update --seconds 120 --hitcount 3 -j DROP
$IPTABLES -A INPUT -p tcp --dport 25 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 80 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 443 -j ACCEPT
EOF



Mit obigen Angaben passiert folgendes. Alle Ports sind geschlossen.
Nur auf Port 22 (SSH),25 (MAIL),80(HTTP),443(HTTPS) werden noch Connections angenommen.
Wenn man also den SSH Port geändert hat muss man die 22 entsprechend anpassen.
Desweiteren werden auf Port 22 nur noch maximal 3 Verbindungsversuche pro Minute erlaubt-
danach ist für diese IP 60 Sekunden lang kein weiterer Verbindungsversuch erlaubt.
Wenn man weitere offene Ports benötigt lässt sich die Liste natürlich entsprechend anpassen.
Das sind wie gesagt nur Grundfunktionen in IPTables die aber schon einiges bewirken.

Man kann die Firewall nun schon aktivieren indem man

#sh /etc/network/if-up.d/iptables.active.sh



auf der Console eintippt.
Wenn man nun Kontrollieren will ob sich was verändert hat schreibt man:

iptables -L



Es sollte sich nun einiges getan haben
Der Firewall werden neue Userrrechte gegeben und um es gegen löschen/unerwünschtes editieren zu schützen mit dem immutable Bit versehen.


chmod 700 /etc/network/if-up.d/iptables.active.sh




chattr -V +i /etc/network/if-up.d/iptables.active.sh




Hiermit hat man die Datei auch gleich noch schreibgeschützt.
Die IPTABLES starten nun automatisch nach einem Reboot.

Zurück zum Index