Im Anschluss an den vorherigen Post zum Thema SNAT/DNAT wollte ich noch den Grundaufbau meines iptables firewall scriptes veröffentlichen, weil bei meinen Streifzügen in Google viele nicht funktionierende oder halbe Lösungen zu Tage gekommen sind.

iptables=”iptables”;

# Alle Regeln leeren
$iptables -t nat -F
$iptables -t filter -F
$iptables -X

# neue Regeln erzeugen
$iptables -N garbage

# Folgende Zeilen sind zum loggen notwendig, müssen aber nicht gesetzt werden
$iptables -I garbage -p TCP -j LOG –log-prefix=”DROP TCP-Packet: ” –log-level err
$iptables -I garbage -p UDP -j LOG –log-prefix=”DROP UDP-Packet: ” –log-level err
$iptables -I garbage -p ICMP -j LOG –log-prefix=”DROP ICMP-Packet: ” –log-level err

# Erstmal alles ankommt verwerfen!
$iptables -P INPUT DROP

# Ausnahmen für lo ( localhost ), eth0 ( internes Interface ) sowie tun0, tun1, tun2 ( openvpn devices )
$iptables -I INPUT -i lo -j ACCEPT
$iptables -I OUTPUT -o lo -j ACCEPT
$iptables -I INPUT -i eth0 -j ACCEPT
$iptables -I OUTPUT -o eth0 -j ACCEPT
$iptables -I INPUT -i tun0 -j ACCEPT
$iptables -I OUTPUT -o tun0 -j ACCEPT
$iptables -I INPUT -i tun1 -j ACCEPT
$iptables -I OUTPUT -o tun1 -j ACCEPT
$iptables -I INPUT -i tun2 -j ACCEPT
$iptables -I OUTPUT -o tun2 -j ACCEPT

# Eingehende Verbindungen auf Port 22 zulassen von Sourcesports zwischen 1024 und 65535
$iptables -I INPUT -i eth1 -p TCP –sport 1024:65535 –dport 22 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

# Bestehende Verbindungen akzeptieren
$iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

# Was nicht passt wird in die weiter oben angelegte Chain “Garbage” gepackt
$iptables -A INPUT -m state –state NEW,INVALID -j garbage
$iptables -A INPUT -j garbage

Related posts:

  1. Merken: NAT aktivieren
  2. DMZ, SNAT & DNAT
  3. Bilder verkleinern mit ImageMagick
  4. Wordpress 3 Beta Permalinks mit Nginx oder Lighttpd