Forum EUserv

VPS/vServer - virtual private server => vServer allgemein => Thema gestartet von: kronk2002de am 01.Februar 2012, 21:35:58

Titel: iptables Problem beim Booten
Beitrag von: kronk2002de am 01.Februar 2012, 21:35:58
Hallo zusammen.

Ich habe mal eine kleine Nuss, die es zu knacken gillt.

Zur Zeit betreibe ich u.a. zwei vServer, beide mit Debian 6 minimal versehen. Auf diesen Servern habe unter /etc/network/if-pre-up.d/iptables-up ein Script liegen, welches eigentlich bei jedem Hochfahren von Netzwerkgeräten aufgerufen werden sollte. Auf meinen physischen Servern (einer mit Debian 5, der andere auch mit Debian 6) funktioniert das auch super. Aber auf den vServern wird das Script offensichtlich ignoriert.

Hier mal als Beispiel das Script von einem meiner Server:
IPTABLES=/sbin/iptables
MAIN_IP_ETH0="<removed />"

# set default policies
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP
$IPTABLES -P FORWARD DROP

# Check for device specific chains (oddities from previous errors).
# Clean them up, if any.
if $IPTABLES -L IN-$IFACE >/dev/null 2>&1; then
  /etc/network/if-post-down.d/iptables-down;
fi

# create new chain
$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 is free
    $IPTABLES -A IN-$IFACE -j ACCEPT
    $IPTABLES -A OUT-$IFACE -j ACCEPT
    ;;
  eth0)
    # main ethernet adapter

    ##### INCOMING TRAFFIC RULES

    # pass established connections
    $IPTABLES -A IN-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT

    # pass tcp/ssh
    $IPTABLES -A IN-$IFACE -p tcp --dport ssh -j ACCEPT
    # pass tcp/http
    $IPTABLES -A IN-$IFACE -p tcp --dport www -j ACCEPT
    # pass tcp/https
    $IPTABLES -A IN-$IFACE -p tcp --dport http -j ACCEPT
    $IPTABLES -A IN-$IFACE -p tcp --dport https -j ACCEPT
    # pass icmp/ping
    $IPTABLES -A IN-$IFACE -p icmp --icmp-type 8 -j ACCEPT

    # block rest
    $IPTABLES -A IN-$IFACE -j REJECT

    ##### OUTGOING TRAFFIC RULES

    # pass established connections
    $IPTABLES -A OUT-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT

    # pass tcp/udp/icmp traffic only
    $IPTABLES -A OUT-$IFACE -p tcp -j ACCEPT
    $IPTABLES -A OUT-$IFACE -p udp -j ACCEPT
    $IPTABLES -A OUT-$IFACE -p icmp -j ACCEPT

    ;;
  *)
    # if none of the above works, this is the default

    ##### INCOMING TRAFFIC RULES

    # pass established connections
    $IPTABLES -A IN-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT

    # pass tcp/ssh
    $IPTABLES -A IN-$IFACE -p tcp --dport 22 -j ACCEPT
    # pass icmp/ping
    $IPTABLES -A IN-$IFACE -p icmp --icmp-type 8 -j ACCEPT

    # block rest
    $IPTABLES -A IN-$IFACE -j REJECT

    ##### OUTGOING TRAFFIC RULES

    # pass established connections
    $IPTABLES -A OUT-$IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT

    # pass */* (you never know what freaky stuff is on new interfaces)
    $IPTABLES -A OUT-$IFACE -j ACCEPT

    ;;
esac

Wie gesagt, das Script kopiere ich nur und passe halt die Regeln an. Einzeln ausgeführt funktionieren die iptables Aufrufe auch. Ergo: HELP!

Freu mich auf Feedback.

Gruß,
kronk