ich hab mir ein iptables script fĂĽr einen linux-router zusammengebastelt, kann aber keine adsl-verbindung aufbauen.
hier das script:
- Code: Alles auswählen
#!/bin/sh
#local interface
INT="eth1"
#nach drauĂźen
EXT="ppp0"
#loopback
LO="lo"
#ports auf router von aussen zugänglich machen
SERVER_PORTS_TCP=""
SERVER_PORTS_UDP=""
#ports an rechner im lokalen netz zugänglich machen
DEST_HOST=""
PORTS_TCP=""
PORTS_UDP=""
#####################################################
case "$1" in
start)
echo -n "Starte Firewall (Paketfilter): "
# Alte Regeln loeschen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
#default policies
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
#ip-forwarding einschalten
echo "1" > /proc/sys/net/ipv4/ip_forward
#####################
#eingehender verkehr#
#####################
#neue verbindungen verboten
iptables -A INPUT -p TCP ! --syn -m state --state NEW -j DROP
#von intern erlaubt
iptables -A INPUT -i $INT -j ACCEPT
#ueber loopback erlaubt
iptables -A INPUT -i $LO -j ACCEPT
#von aussen verboten
iptables -A INPUT -i $EXT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -i $EXT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -i $EXT -s 192.168.0.0/24 -j DROP
#bestehende verbindungen von aussen erlauben
iptables -A INPUT -i $EXT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ports auf router von aussen
if [ "$SERVER_PORTS_TCP" != "" ]; then
iptables -A INPUT -i $EXT -p tcp -m multiport --dport $SERVER_PORTS_TCP -j ACCEPT
fi
if [ "$SERVER_PORTS_UDP" != "" ]; then
iptables -A INPUT -i $EXT -p udp -m multiport --dport $SERVER_PORTS_UDP -j ACCEPT
fi
############
#forwarding#
############
#wegen telekom
iptables -I FORWARD -p TCP --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
#lokal -> internet erlaubt
iptables -A FORWARD -i $INT -o $EXT -j ACCEPT
#internet -> lokal nur bestehende verbindungen
iptables -A FORWARD -i $EXT -o $INT -m state --state ESTABLISHED,RELATED -j ACCEPT
#ports auf rechner im lokalem netz
if [ "$PORTS_TCP" != "" ]; then
iptables -A FORWARD -i $EXT -o $INT -p tcp -m multiport --dport $PORTS_TCP -d $DEST_HOST -j ACCEPT
fi
if [ "$PORTS_UDP" != "" ]; then
iptables -A FORWARD -i $EXT -o $INT -p tcp -m multiport --dport $PORTS_UDP -d $DEST_HOST -j ACCEPT
fi
########
#output#
########
#alles erlaubt
iptables -A OUTPUT -o $INT -j ACCEPT
iptables -A OUTPUT -o $EXT -j ACCEPT
iptables -A OUTPUT -o $LO -j ACCEPT
#########
#routing#
#########
#umleiten der ports auf einen lokalen rechner
if [ "$PORTS_TCP" != "" ]; then
iptables -t nat -A PREROUTING -i $EXT -p tcp -m multiport --dport $PORTS_TCP -j DNAT --to $DEST_HOST
fi
if [ "$PORTS_UDP" != "" ]; then
iptables -t nat -A PREROUTING -i $EXT -p tcp -m multiport --dport $PORTS_UDP -j DNAT --to $DEST_HOST
fi
#masquerading
iptables -t nat -A POSTROUTING -o $EXT -j MASQUERADE
echo "done."
;;
stop)
echo -n "Firewall (Packetfilter) anhalten: "
#alte regeln löschen
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
#default policies
iptables -P INPUT ACCEPT
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
echo "done."
;;
restart)
$0 start
;;
status)
iptables -L
;;
*)
echo "Usage: fwscript start|stop|restart|status"
exit 1
;;
esac
ich wĂĽsste echt keinen grund wieso das nicht funktionieren sollte....
irgendwelche ideen?
mfg,
michael[/list]