Hi all!
Als absoluter Linux-Neuling wollte ich mein heimisches LAN sicherer machen <g>. Daher habe ich versucht, eine eigene Firewall mittels iptables, nat, etc... zu erstellen UND bin kläglich untergegangen
Schließlich habe ich das auf Pro-Linux bereitgestellte Script angewendet und bin damit eigentlich sehr zufrieden. Allerdings stoße ich jetzt auf Probs, die ich selbst nicht beheben kann.
Zum Server:
- Suse Linux 7.1
- Kernel 2.4.0
- eth0: 192.168.0.1/24 (am HUB)
- eth1: 192.168.1.1/24 (am ADSL-Modem)
Der Server dient als Router, File-Server, Print-Server, Mail-Server und Web-Server.
Und da fängt das Prob an:
Über die bei der Einwahl dynamisch vergebene IP ist es möglich, auf den Server zurückzugreifen. Nach Eingabe im Browser antwortet der Apache und zeigt die Eingangsseite. DAS DARF NICHT SEIN!
Natürlich müssen die Windows-Clients auf den Apache zurückgreifen dürfen, aber nicht die Außenwelt.
Ebenso ist es möglich, auf die von SAMBA freigegebenen Festplatten/Drucker über das Internet zurückzugreifen. Zumindest meldet mir das http://www.datenschutz.ch/index.htm
Habt Ihr eine Idee, welche Regel(n) ich dem Firewall-Script von Pro-Linux hinzufügen muß, damit der Apache auf dem Server nicht mehr antwortet, bzw. der Server alle Anfragen aus dem Internet ablehnt, die nicht ausdrücklich von den Clients angefordert wurden (wie z.B. ICQ)?
Viele Grüße, Marc
Firewall-Script auf Pro-Linux
Re: Firewall-Script auf Pro-Linux
check dieses Script mal aus:
allerdings finde ich die ip_masq_* Kernelmodule nur bei meinem 2.2er Kernel aber nicht bei meinem 2.4er Kernel. Wurden diese Kernelmodule bei 2.4.x umbenannt, in ein anderes Modul migriert oder was muss man beim Kernelbacken beachten ? Auch beim Kernelerstellen finde ich keine Option mehr die mir die ip_masq_* Module erstellt ???
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#! /bin/sh
#
# for SuSE 6.3
#
# /etc/rc.d/init.d/firewall
#
# and has symbolic links to it from
#
# /etc/rc.d/rc2.d/S51firewall
# /etc/rc.d/rc2.d/K51firewall
# /etc/rc.d/rc3.d/S51firewall
# /etc/rc.d/rc3.d/K51firewall
#
. /etc/rc.config
# test is START_FW is set to yes in SuSE's /etc/rc.config
test "$START_FW" = yes || exit 0
# Variables
DEV_LNET=eth0 # LAN Interface
IP_LNET=192.168.0.99 # my IP
DEV_INET=ppp0 # Internet Interface
LNET=192.168.0.0/24 # local net
GLOBAL=0.0.0.0/0
IPCHAINS=/sbin/ipchains
# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
start)
echo "Stand by while starting up the firewall..."
echo "Starting IP forwarding"
echo "1" > /proc/sys/net/ipv4/ip_forward
# IP Forward muss vorher aktiviert werden.
# Unter SuSE sollte der Befehl in der rc.config aktiviert werden.
# Bei Masquerading muss zusaetzlich noch IP_DYNIP in der
# /etc/rc.config aktiviert sein.
echo "Start RP filter for anti spoofing shield"
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "Deleting all existing chains..."
$IPCHAINS -F
echo "Setting up default policy..."
$IPCHAINS -P input DENY
$IPCHAINS -P forward DENY
$IPCHAINS -P output DENY
#-------------------------------------------------------------------
# scheinbar macht FTP ansonsten Probleme wenn man wo was uploaden moechte
$IPCHAINS -A input --sport 20 -i $DEV_INET -p tcp -y -j ACCEPT
$IPCHAINS -A input i $DEV_INET -p tcp -y -j DENY --log
# Ping aus dem Internet ignorieren
# $IPCHAINS -A inet_in -p icmp --icmp-type echo-request -j DENY --log
$IPCHAINS -A input -i $DEV_INET -p icmp --icmp-type echo-request -j DENY --log
#-------------------------------------------------------------------
echo "Setting up loopback interface..."
$IPCHAINS -A input -i lo -j ACCEPT
$IPCHAINS -A output -i lo -j ACCEPT
echo "Setting up DHCP access..."
$IPCHAINS -A input -p udp -s $GLOBAL 67 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -p udp -s $GLOBAL 68 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -p udp -d $GLOBAL 67 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -p udp -d $GLOBAL 68 -i $DEV_LNET -j ACCEPT
echo "Setting up intranet connections..."
$IPCHAINS -A input -i $DEV_LNET -s $LNET -j ACCEPT
$IPCHAINS -A output -i $DEV_LNET -d $LNET -j ACCEPT
echo "Setting up Win32 NETBIOS connections..."
#--tcp
$IPCHAINS -A input -s $LNET 137 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -s $LNET 138 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -s $LNET 139 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 135 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 137 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 138 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 139 -p tcp -i $DEV_LNET -j ACCEPT
#--udp
$IPCHAINS -A input -s $LNET 137 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -s $LNET 138 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 135 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 137 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 138 -p udp -i $DEV_LNET -j ACCEPT
# die Ports 135, 137..139 fuer das lokale Netz aufmachen, damit
# Windows Freigaben angezeigt werden...
# Name ID Protokol Bemerkung
# netbios-ns 137 tcp/udp NETBIOS Name Service
# netbios-dgm 138 tcp/udp NETBIOS Datagram Service
# netbios-ssn 139 tcp NETBIOS-Session
echo "Setting up internet SYN connections..."
$IPCHAINS -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ
$IPCHAINS -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
$IPCHAINS -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
$IPCHAINS -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
echo "Setting up internet ACK connections..."
$IPCHAINS -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
$IPCHAINS -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y
$IPCHAINS -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y
$IPCHAINS -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
$IPCHAINS -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
echo "Setting up ICMP defined restrictions..."
$IPCHAINS -N icmp-acc
$IPCHAINS -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
echo "Setting up ICMP major restrictions..."
$IPCHAINS -A input -p icmp -j icmp-acc
$IPCHAINS -A forward -p icmp -j MASQ
$IPCHAINS -A output -p icmp -j icmp-acc
echo "Loading modules for masquerading..."
insmod ip_masq_ftp
insmod ip_masq_irc
insmod ip_masq_quake
insmod ip_masq_raudio
insmod ip_masq_vdolive
insmod ip_masq_cuseeme
# die Kernelmodule ip_masq_ftp und Co. scheinen im Kernel 2.4.x nicht mehr
# vorhanden zu sein ?
echo -n "Firewall active"
echo -e "$return"
;;
stop)
echo "Shutting down the Firewall (and disabling routing): "
echo 0 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
$IPCHAINS -P input ACCEPT
$IPCHAINS -P output ACCEPT
$IPCHAINS -P forward ACCEPT
$IPCHAINS -F icmp-acc
$IPCHAINS -F input
$IPCHAINS -F output
$IPCHAINS -F forward || return=$rc_failed
echo "Removing firewall modules..."
rmmod ip_masq_cuseeme ip_masq_vdolive
rmmod ip_masq_raudio ip_masq_quake
rmmod ip_masq_irc ip_masq_ftp
echo -n "Fireall disabled..."
echo -e "$return"
;;
restart)
$0 start || return=$rc_failed
;;
reload)
$0 start || return=$rc_failed
;;
status)
echo "Checking the status of the Firewall: "
$IPCHAINS -L || return=$rc_failed
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0
</font><hr></pre></blockquote>
allerdings finde ich die ip_masq_* Kernelmodule nur bei meinem 2.2er Kernel aber nicht bei meinem 2.4er Kernel. Wurden diese Kernelmodule bei 2.4.x umbenannt, in ein anderes Modul migriert oder was muss man beim Kernelbacken beachten ? Auch beim Kernelerstellen finde ich keine Option mehr die mir die ip_masq_* Module erstellt ???
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
#! /bin/sh
#
# for SuSE 6.3
#
# /etc/rc.d/init.d/firewall
#
# and has symbolic links to it from
#
# /etc/rc.d/rc2.d/S51firewall
# /etc/rc.d/rc2.d/K51firewall
# /etc/rc.d/rc3.d/S51firewall
# /etc/rc.d/rc3.d/K51firewall
#
. /etc/rc.config
# test is START_FW is set to yes in SuSE's /etc/rc.config
test "$START_FW" = yes || exit 0
# Variables
DEV_LNET=eth0 # LAN Interface
IP_LNET=192.168.0.99 # my IP
DEV_INET=ppp0 # Internet Interface
LNET=192.168.0.0/24 # local net
GLOBAL=0.0.0.0/0
IPCHAINS=/sbin/ipchains
# The echo return value for success (defined in /etc/rc.config).
return=$rc_done
case "$1" in
start)
echo "Stand by while starting up the firewall..."
echo "Starting IP forwarding"
echo "1" > /proc/sys/net/ipv4/ip_forward
# IP Forward muss vorher aktiviert werden.
# Unter SuSE sollte der Befehl in der rc.config aktiviert werden.
# Bei Masquerading muss zusaetzlich noch IP_DYNIP in der
# /etc/rc.config aktiviert sein.
echo "Start RP filter for anti spoofing shield"
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo "Deleting all existing chains..."
$IPCHAINS -F
echo "Setting up default policy..."
$IPCHAINS -P input DENY
$IPCHAINS -P forward DENY
$IPCHAINS -P output DENY
#-------------------------------------------------------------------
# scheinbar macht FTP ansonsten Probleme wenn man wo was uploaden moechte
$IPCHAINS -A input --sport 20 -i $DEV_INET -p tcp -y -j ACCEPT
$IPCHAINS -A input i $DEV_INET -p tcp -y -j DENY --log
# Ping aus dem Internet ignorieren
# $IPCHAINS -A inet_in -p icmp --icmp-type echo-request -j DENY --log
$IPCHAINS -A input -i $DEV_INET -p icmp --icmp-type echo-request -j DENY --log
#-------------------------------------------------------------------
echo "Setting up loopback interface..."
$IPCHAINS -A input -i lo -j ACCEPT
$IPCHAINS -A output -i lo -j ACCEPT
echo "Setting up DHCP access..."
$IPCHAINS -A input -p udp -s $GLOBAL 67 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -p udp -s $GLOBAL 68 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -p udp -d $GLOBAL 67 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -p udp -d $GLOBAL 68 -i $DEV_LNET -j ACCEPT
echo "Setting up intranet connections..."
$IPCHAINS -A input -i $DEV_LNET -s $LNET -j ACCEPT
$IPCHAINS -A output -i $DEV_LNET -d $LNET -j ACCEPT
echo "Setting up Win32 NETBIOS connections..."
#--tcp
$IPCHAINS -A input -s $LNET 137 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -s $LNET 138 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -s $LNET 139 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 135 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 137 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 138 -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 139 -p tcp -i $DEV_LNET -j ACCEPT
#--udp
$IPCHAINS -A input -s $LNET 137 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -s $LNET 138 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 135 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 137 -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -d $LNET 138 -p udp -i $DEV_LNET -j ACCEPT
# die Ports 135, 137..139 fuer das lokale Netz aufmachen, damit
# Windows Freigaben angezeigt werden...
# Name ID Protokol Bemerkung
# netbios-ns 137 tcp/udp NETBIOS Name Service
# netbios-dgm 138 tcp/udp NETBIOS Datagram Service
# netbios-ssn 139 tcp NETBIOS-Session
echo "Setting up internet SYN connections..."
$IPCHAINS -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ
$IPCHAINS -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
$IPCHAINS -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
$IPCHAINS -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
echo "Setting up internet ACK connections..."
$IPCHAINS -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
$IPCHAINS -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
$IPCHAINS -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y
$IPCHAINS -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y
$IPCHAINS -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
$IPCHAINS -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
echo "Setting up ICMP defined restrictions..."
$IPCHAINS -N icmp-acc
$IPCHAINS -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
$IPCHAINS -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
echo "Setting up ICMP major restrictions..."
$IPCHAINS -A input -p icmp -j icmp-acc
$IPCHAINS -A forward -p icmp -j MASQ
$IPCHAINS -A output -p icmp -j icmp-acc
echo "Loading modules for masquerading..."
insmod ip_masq_ftp
insmod ip_masq_irc
insmod ip_masq_quake
insmod ip_masq_raudio
insmod ip_masq_vdolive
insmod ip_masq_cuseeme
# die Kernelmodule ip_masq_ftp und Co. scheinen im Kernel 2.4.x nicht mehr
# vorhanden zu sein ?
echo -n "Firewall active"
echo -e "$return"
;;
stop)
echo "Shutting down the Firewall (and disabling routing): "
echo 0 > /proc/sys/net/ipv4/ip_forward 2> /dev/null
$IPCHAINS -P input ACCEPT
$IPCHAINS -P output ACCEPT
$IPCHAINS -P forward ACCEPT
$IPCHAINS -F icmp-acc
$IPCHAINS -F input
$IPCHAINS -F output
$IPCHAINS -F forward || return=$rc_failed
echo "Removing firewall modules..."
rmmod ip_masq_cuseeme ip_masq_vdolive
rmmod ip_masq_raudio ip_masq_quake
rmmod ip_masq_irc ip_masq_ftp
echo -n "Fireall disabled..."
echo -e "$return"
;;
restart)
$0 start || return=$rc_failed
;;
reload)
$0 start || return=$rc_failed
;;
status)
echo "Checking the status of the Firewall: "
$IPCHAINS -L || return=$rc_failed
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
;;
esac
# Inform the caller not only verbosely and set an exit status.
test "$return" = "$rc_done" || exit 1
exit 0
</font><hr></pre></blockquote>
Re: Firewall-Script auf Pro-Linux
Also, ich kannes nur sagen wie ich es per ipchains machen würde:
Alle sperren (DENY) und dann einzeln freigeben. bzw. sperre doch einfach den PORT 80 von aussen. Dann kann von aussen keienr mehr auf den Apache. Für das lokale Netzwerk gibst du einfach alles frei.
/sbin/ipchains -A input -i ppp0 -p tcp --dport 80 -j DENY # ppp0 = Interface des Internet (z.B. DSL)
Ist nur ein erster Ansatz. ich persönlich kenne mcih auch ncith 100%ig mit Firewall System aus bzw. Ipchains Packetfilter.
Da war ich wohl zu spät... <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
Alle sperren (DENY) und dann einzeln freigeben. bzw. sperre doch einfach den PORT 80 von aussen. Dann kann von aussen keienr mehr auf den Apache. Für das lokale Netzwerk gibst du einfach alles frei.
/sbin/ipchains -A input -i ppp0 -p tcp --dport 80 -j DENY # ppp0 = Interface des Internet (z.B. DSL)
Ist nur ein erster Ansatz. ich persönlich kenne mcih auch ncith 100%ig mit Firewall System aus bzw. Ipchains Packetfilter.
Da war ich wohl zu spät... <img src="http://www.pl-forum.de/UltraBoard/Images/Wilk.gif" border="0" align="middle">
Last edited by stingway on 25. Aug 2001 13:54, edited 1 time in total.
System: SuSe 7.0 - Kernel 2.2.16 - Textkonsole
Re: Firewall-Script auf Pro-Linux
ich habe es mit iptables gemacht... habe alles gesperrt und dann einzeln freigegeben.
#Ports freischalten
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED
#Alles sperren
iptables -A INPUT -j DROP -m state --state NEW,INVALID -i ppp0
iptables -A FORWARD -j DROP -m state --state NEW,INVALID -i ppp0
#Ports freischalten
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED
#Alles sperren
iptables -A INPUT -j DROP -m state --state NEW,INVALID -i ppp0
iptables -A FORWARD -j DROP -m state --state NEW,INVALID -i ppp0
Re: Firewall-Script auf Pro-Linux
@Lino
für FTP brauchst du neben Port 21 auch noch den Port 20
#Alles sperren
iptables -A INPUT -j DROP -m state --state NEW,INVALID -i ppp0
iptables -A FORWARD -j DROP -m state --state NEW,INVALID -i ppp0
#Ports freischalten
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED
Wie läuft das mit dem Routing ? Wird mit o.g. Konfiguration auch gleich korrekt zwischen ppp0 und eth0 geroutet ? Wenn nein, wie muss die Konfig denn dann aussehen ? Bei meinem Pro-Linux Firewall-Script (leicht abgewandelt an ein/zwei Stellen) findet ja auch gleich noch ein NAT und Routing zwischen dem LAN (eth0) und dem Modem (ppp0) statt.
für FTP brauchst du neben Port 21 auch noch den Port 20
#Alles sperren
iptables -A INPUT -j DROP -m state --state NEW,INVALID -i ppp0
iptables -A FORWARD -j DROP -m state --state NEW,INVALID -i ppp0
#Ports freischalten
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED
iptables -A INPUT -j ACCEPT -i ppp0 -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED
Wie läuft das mit dem Routing ? Wird mit o.g. Konfiguration auch gleich korrekt zwischen ppp0 und eth0 geroutet ? Wenn nein, wie muss die Konfig denn dann aussehen ? Bei meinem Pro-Linux Firewall-Script (leicht abgewandelt an ein/zwei Stellen) findet ja auch gleich noch ein NAT und Routing zwischen dem LAN (eth0) und dem Modem (ppp0) statt.