Taschentuch
27.08.07, 22:39
Hi, ich habe mir letztens nach einer Anleitung eine config für iptables gebastelt. Natürlich hab ich die Config meinen Bedürfnissen angepasst (wär ja langweilig wenn hier mal was Funktionieren würde ^^)
Naja, aufjedenfall kann nach draußen pingen. Nur leide habe aber keinen DNS und wenn ich versuche, z.B. meinen Router per IP im Webbrowser aufzurufen geht es auch nicht.
Das einzige was bei mir geht ist ICMP. Dies ist aber auch das einzige was bei mir von aussen ungefragt rein darf.
Jetzt dachte ich mir aber, da ich auf alles ein "-m state --state RELATED,ESTABLISHED" gesetzt habe müssten doch, wenn ich eine Verbindung beginnen will, die Antworten auch durch kommen. Nur klappt das irgendwie wohl nicht.
Im lokalen Netz brauche meine Freigaben per SMB und nach "draußen" einen SSH Zugang.
Irgendwie klappt das bei mir nicht...
Kann mir da jemand helfen?
#!/bin/bash
# iptables-up script 1.3.6 für Debian 3.1
# /etc/network/if-pre-up.d/iptables-up
IPTABLES=/sbin/iptables
#Netzwerke
LAN=192.168.2.0/24
#Auf im Internet
INETPORTS="22"
#Auf im LAN
LANPORTS="22 111 139 445"
# Pruefen ob dev-spezif. chains noch vorhanden (Ueberbleibsel von Fehlern),
# ggf. aufraeumen wie beim Runterfahren der Schnittstelle
if $IPTABLES -L IN-$IFACE >/dev/null; then
/etc/network/if-post-down.d/iptables-down;
fi
# Setzen der Default-Policies
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#Extra Chains erstellen
$IPTABLES -N IN-$IFACE
$IPTABLES -A INPUT -i $IFACE -j IN-$IFACE
$IPTABLES -N OUT-$IFACE
$IPTABLES -A OUTPUT -o $IFACE -j OUT-$IFACE
case "$IFACE" in
lo)
#Loopback frei
$IPTABLES -A IN-$IFACE -j ACCEPT
$IPTABLES -A OUT-$IFACE -j ACCEPT
;;
eth0)
#############
### INPUT ###
#############
#Bestehendes zulassen
$IPTABLES -A IN-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
#Internetports Aufmachen
for PORT in $INTETPORTS; do
$IPTABLES -A IN-$IFACE -p tcp --dport $PORT -j ACCEPT
$IPTABLES -A IN-$IFACE -p udp --dport $PORT -j ACCEPT
done
#Lanports Aufmachen
for PORT in $LANPORTS; do
$IPTABLES -A IN-$IFACE -s $LAN -p tcp --dport $PORT -j ACCEPT
$IPTABLES -A IN-$IFACE -s $LAN -p udp --dport $PORT -j ACCEPT
done
#ICMP Zulassen im LAN
$IPTABLES -A IN-$IFACE -s $LAN -p icmp -j ACCEPT
#Alles andere Fallenlassen
#$IPTABLES -A IN-$IFACE -p tcp -j DROP
#$IPTABLES -A IN-$IFACE -p udp -j DROP
#$IPTABLES -A IN-$IFACE -p icmp -j DROP
##############
### OUTPUT ###
##############
$IPTABLES -A OUT-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
#Alles rauslassen
$IPTABLES -A OUT-$IFACE -p tcp -j ACCEPT
$IPTABLES -A OUT-$IFACE -p udp -j ACCEPT
$IPTABLES -A OUT-$IFACE -p icmp -j ACCEPT
;;
*)
$IPTABLES -A IN-$IFACE -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A IN-$IFACE -j REJECT
$IPTABLES -A OUT-$IFACE -j ACCEPT
;;
Naja, aufjedenfall kann nach draußen pingen. Nur leide habe aber keinen DNS und wenn ich versuche, z.B. meinen Router per IP im Webbrowser aufzurufen geht es auch nicht.
Das einzige was bei mir geht ist ICMP. Dies ist aber auch das einzige was bei mir von aussen ungefragt rein darf.
Jetzt dachte ich mir aber, da ich auf alles ein "-m state --state RELATED,ESTABLISHED" gesetzt habe müssten doch, wenn ich eine Verbindung beginnen will, die Antworten auch durch kommen. Nur klappt das irgendwie wohl nicht.
Im lokalen Netz brauche meine Freigaben per SMB und nach "draußen" einen SSH Zugang.
Irgendwie klappt das bei mir nicht...
Kann mir da jemand helfen?
#!/bin/bash
# iptables-up script 1.3.6 für Debian 3.1
# /etc/network/if-pre-up.d/iptables-up
IPTABLES=/sbin/iptables
#Netzwerke
LAN=192.168.2.0/24
#Auf im Internet
INETPORTS="22"
#Auf im LAN
LANPORTS="22 111 139 445"
# Pruefen ob dev-spezif. chains noch vorhanden (Ueberbleibsel von Fehlern),
# ggf. aufraeumen wie beim Runterfahren der Schnittstelle
if $IPTABLES -L IN-$IFACE >/dev/null; then
/etc/network/if-post-down.d/iptables-down;
fi
# Setzen der Default-Policies
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP
#Extra Chains erstellen
$IPTABLES -N IN-$IFACE
$IPTABLES -A INPUT -i $IFACE -j IN-$IFACE
$IPTABLES -N OUT-$IFACE
$IPTABLES -A OUTPUT -o $IFACE -j OUT-$IFACE
case "$IFACE" in
lo)
#Loopback frei
$IPTABLES -A IN-$IFACE -j ACCEPT
$IPTABLES -A OUT-$IFACE -j ACCEPT
;;
eth0)
#############
### INPUT ###
#############
#Bestehendes zulassen
$IPTABLES -A IN-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
#Internetports Aufmachen
for PORT in $INTETPORTS; do
$IPTABLES -A IN-$IFACE -p tcp --dport $PORT -j ACCEPT
$IPTABLES -A IN-$IFACE -p udp --dport $PORT -j ACCEPT
done
#Lanports Aufmachen
for PORT in $LANPORTS; do
$IPTABLES -A IN-$IFACE -s $LAN -p tcp --dport $PORT -j ACCEPT
$IPTABLES -A IN-$IFACE -s $LAN -p udp --dport $PORT -j ACCEPT
done
#ICMP Zulassen im LAN
$IPTABLES -A IN-$IFACE -s $LAN -p icmp -j ACCEPT
#Alles andere Fallenlassen
#$IPTABLES -A IN-$IFACE -p tcp -j DROP
#$IPTABLES -A IN-$IFACE -p udp -j DROP
#$IPTABLES -A IN-$IFACE -p icmp -j DROP
##############
### OUTPUT ###
##############
$IPTABLES -A OUT-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
#Alles rauslassen
$IPTABLES -A OUT-$IFACE -p tcp -j ACCEPT
$IPTABLES -A OUT-$IFACE -p udp -j ACCEPT
$IPTABLES -A OUT-$IFACE -p icmp -j ACCEPT
;;
*)
$IPTABLES -A IN-$IFACE -p icmp --icmp-type 8 -j ACCEPT
$IPTABLES -A IN-$IFACE -j REJECT
$IPTABLES -A OUT-$IFACE -j ACCEPT
;;