IPTables – Internet surfen

Clientseitiges Internet surfen

Nachdem wir uns mit der Kommunikation der Firewall beschäftigt haben und diese nun sowohl intern als auch nach außen kommunizieren darf, wird es Zeit auch den Clients die Freigaben (FORWARDING) zu erteilen.

In unserem Videotutorial erklären wir Euch die wichtigsten Schritte.

1. DNS

Das Domain Name System (DNS) ist einer der wichtigsten Dienste in vielen IP-basierten Netzwerken. Seine Hauptaufgabe ist die Beantwortung von Anfragen zur Namensauflösung.


echo "Regel: Internet surfen"

$IPT -A FORWARD -p UDP -i $LOCAL -o $INET -s $LOCAL_NET --dport=53 -j ACCEPT

Die Namensauflösung kann nun geprüft werden.
1. ipconfig /flushdns (Cache leeren)
2. nslookup www.google.de

Nun sollte auch der Ping funktionieren.

2.Port 80 – Hypertext Transfer Protocol (HTTP)

Nachdem die DNS Auflösung funktioniert, muss noch die Freigabe für das TCP Protokoll und dem Port 80 eingetragen werden.


$IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=80 -j ACCEPT

3. Port 443 – HTTPS (Hypertext Transfer Protocol über SSL/TLS)

Da sehr viele Seiten mittlerweile nur über HTTPS und Port 443 erreicht werden können, muss natürlich auch dafür die Freigabe erteilt werden


$IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=443 -j ACCEPT

Das komplette Skript inklusive Firewall


IPT =/sbin/iptables 
LO=lo
INET=eth1
LOCAL=eth0
LOCAL_NET='192.168.100.0/24'

echo "Schalte den router aus..."
echo 0 /proc/sys/net/ipv4/ip_forward

echo "Loesche iptables regeln und ketten"
$IPT -X 
$IPT -F 
$IPT -t nat -X
$IPT -t nat -F

echo "Default policy drop"
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP

echo "Schalte connection tracking ein"
$IPT -A FORWARD -m conntrack --ctstate=RELATED ESTABLISHED -j ACCEPT
$IPT -A FORWARD -m conntrack --ctstate=INVALID -j DROP

$IPT -A INPUT -m conntrack --ctstate=RELATED ESTABLISHED -j ACCEPT
$IPT -A INPUT -m conntrack --ctstate=INVALID -j DROP

$IPT -A OUTPUT -m conntrack --ctstate=RELATED ESTABLISHED -j ACCEPT
$IPT -A OUTPUT -m conntrack --ctstate=INVALID -j DROP

echo "Regel: SSH erlauben"
$IPT -A INPUT -p tcp -i $LOCAL --dport 22 -m conntrack --ctstate=NEW -j ACCEPT

echo "Firewall selbst darf alles"

$IPT -A OUTPUT -j ACCEPT

echo "LOOPBACK freischalten"

$IPT -A FORWARD -i $LO -o $LO -j ACCEPT
$IPT -A INPUT -i $LO -j ACCEPT

echo "NAT: Internet"
$IPT -t nat -A Postrouting -o $NET -j MASQUERADE

echo "Regel: ICMP für das lokale netz erlauben"
$IPT -A FORWARD -p  icmp -i $LOCAL -o $NET -s $LOCAL_NET -m conntrack --ctstate=NEW -j ACCEPT

echo "Regel: Internet surfen"

$IPT -A FORWARD -p UDP -i $LOCAL -o $INET -s $LOCAL_NET --dport=53 -j ACCEPT
$IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=80 -j ACCEPT
$IPT -A FORWARD -p TCP -i $LOCAL -o $INET -s $LOCAL_NET --dport=443 -j ACCEPT

echo "Schalte den router wieder ein..."
echo 1 /proc/sys/net/ipv4/ip_forward

Leave a Reply