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:

December 6th, 2007 on 14:17
Hallo zusammen
ich bin leider nicht so im thema aber in der Einarbeitung
eine Verständnisfrage: Warum habt ihr nicht einfach einen Router mit Firewallregeln genommen und dann auf jedem Webserver nur eine Regel (alles ausser port 80 wegwerfen)
ist doch viel einfacher ?!??!?!
beste grüße
michael
December 22nd, 2007 on 12:16
Hi,
ich brauche intern noch mehr Ports, die geöffnet sind z.B Mysql,memcached,nfs usw.
Ich möchte durch die Firewall eine saubere Trennung intern<>extern machen.
Mfg