Iptables


Zurück zur Linux Startseite

Inhalt


Intro

Ab dem Kernel 2.4 gibt es die Iptables - ein Portfilter welcher mit dem Kernel geliefert wird. Mit diesem Dokument versuche ich einige Dinge zu beschreiben, welche ich benötigt habe. Mehr Infos findet man unter der offiziellen http://www.netfilter.org

Am besten ihr beschafft euch diese Tools "iptraf" und "tcpdump" - Damit könnt ihr alles mitverfolgen und die Packete mitsniffen... :o)

top.gifZurück zum Inhalt


Iptables - Befehlszeile

iptables -A/-I/-D/-N/-X INPUT/OUTPUT/FORWARD -s $SRC_IP -d $DST_IP --sport $SRC_PORT --dport $DST_PORT -i $ETH_EXT -p all/tcp/udp/icmp -j ACCEPT/DROP/REJECT

top.gifZurück zum Inhalt


Chains Löschen

iptables -F
iptables --flush

top.gifZurück zum Inhalt


Chains Auflisten

iptables -L -n
iptables --list -n

top.gifZurück zum Inhalt


Chains - Alle Packete verwerfen

iptables -A INPUT -p all -j DROP
iptables -A FORWARD -p all -j DROP
iptables -A OUTPUT -p all -j DROP

top.gifZurück zum Inhalt


Chains - Alle Packete zurückweisen

iptables -A INPUT -p all -j REJECT --reject-with icmp-port-unreachable
iptables -A FORWARD -p all -j REJECT --reject-with icmp-port-unreachable
iptables -A OUTPUT -p all -j REJECT --reject-with icmp-port-unreachable

top.gifZurück zum Inhalt


Chains - Ping erlauben

iptables -A INPUT -d $EXT_IP -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j DROP

top.gifZurück zum Inhalt


Chains - Packet State

iptables -A INPUT -m state --state ESTABLISHED,RELATED -i eth1 -j ACCEPT iptables -A INPUT -m state --state NEW -i eth1 -j DROP

top.gifZurück zum Inhalt


Chains - Packete Loggen

iptables -A INPUT -d $EXT_IP -p icmp -j LOG --log-level debug/info/notice/warning/err/crit/alert/emerg --log-prefix "PING "

top.gifZurück zum Inhalt


Chains - String match

iptables -A INPUT -d $EXT_IP -m string --string "default.ida" -p tcp -j REJECT

top.gifZurück zum Inhalt


Spezielle Tabellen

Es gibt noch einige spezielle Tabellen welche mit dem normalen "iptables -L" nicht angezeigt werden.

#Iptables Tabelle FILTER ausgeben
iptables -t filter -n -L

#Iptables Tabelle MANGLE ausgeben
iptables -t mangle -n -L

#Iptables Tabelle NAT ausgeben
iptables -t nat -n -L

top.gifZurück zum Inhalt


Chains - SNAT (Source Network Adress Translation)

echo 1 > /proc/sys/net/ipv4/ip_forward (IP Forwarding aktivieren)
iptables -A INPUT -i $IF_INT -s $INT_NET -d 0.0.0.0/0 -m state --state NEW/ESTABLISHED/RELATED -p all -j ACCEPT ()
iptables -t nat -n -L (NAT Tabelle anzeigen)
iptables -t nat -A POSTROUTING -o $IF_EXT -p tcp -j MASQUERADE (MASQUERADING aktivieren)
iptables -A FORWARD -s $INT_NET -p tcp -j ACCEPT (Forward INT --> EXT)
iptables -A FORWARD -d $INT_NET -p tcp -j ACCEPT (Forward EXT --> INT)

top.gifZurück zum Inhalt


Chains - DNAT (Destination Network Adress Translation)

echo 1 > /proc/sys/net/ipv4/ip_forward (IP Forwarding aktivieren)
iptables -A INPUT -i eth1 -d $EXT_IP --dport 8080 -j ACCEPT (Zugriff auf Port 8080 erlauben)
iptables -t nat -n -L (NAT Tabelle anzeigen)
iptables -t nat -A PREROUTING -i eth1 -d $EXT_IP --dport 8080 -p tcp -j DNAT --to $INT_IP:$INT_PORT (NAT aktivieren)
iptables -A FORWARD -d $INT_IP --dport $INT_PORT -p tcp -j ACCEPT (Forward EXT --> INT)
iptables -A FORWARD -s $INT_IP --sport $INT_PORT -p tcp -j ACCEPT (Forward INT --> EXT)

top.gifZurück zum Inhalt


Probleme mit FTP

Da es beim Masquerading zu Problemen mit FTP Verbindungen kommen kann, sollten zusätzich die Kernelmoduule "ip_conntrack" und "ip_conntrack_ftp" geladen werden.

insmod ip_conntrack
insmod ip_conntrack_ftp

top.gifZurück zum Inhalt


Zur Linux Startseite home.icewolf.ch/linux/ | Copyright © 2003 - Andres Bohren Icewolf Software