Hi
ich hab' gemäss dem Firewall-Workshop (<a href="http://www.pro-linux.de/work/server/and ... e_doc.html)" target="_blank"><!--auto-->http://www.pro-linux.de/work/server/and ... e_doc.html)</a><!--auto--> mir unter SuSE 6.3 eine Paketfilterfirewall aufgesetzt. Der Linux-Rechner soll für meine Windows-Clients das Internet Sharing übernehmen.
Dies funktioniert soweit einwandfrei -- allerdings möchte ich mir es ersparen die einzelnen Windows-Clients per Hand zu konfigurieren und statt dessen DHCP einsetzen.
Allerdings können die Windows-Rechner anscheinend wegen der ipchains-Regeln nicht mit DHCP die Konfiguration holen. <img src="http://www.pl-forum.de/UltraBoard/Images/Sad.gif" border="0" align="middle">
Wenn ich die ipchains-Regeln folgendermassen "aufmache", können sich meine Windows-Clients wieder konfigurieren...
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P forward DENY
/sbin/ipchains -P output ACCEPT
Welche ipchains Regel muss noch definiert werden, dass im lokalen Netz das DHCP funkioniert *und* die Firewall wieder gemäss dem Workshop "zu" ist und alles erst mal kategorisch ablehnt ?
/sbin/ipchains -P input DENY
/sbin/ipchains -P forward DENY
/sbin/ipchains -P output DENY
Irgendwelche ipchains Profis da draussen ?
Firewall und DHCP ?
Re: Firewall und DHCP ?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
echo Start RP filter for anti spoofing shield
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo Deleting all existing chains...
/sbin/ipchains -F
/sbin/ipchains -X icmp-acc
echo Setting up default policy...
/sbin/ipchains -P input DENY
/sbin/ipchains -P forward DENY
/sbin/ipchains -P output DENY
# Variables
DEV_LNET=eth0
IP_LNET=192.168.0.99
DEV_INET=ppp0
LNET=192.168.0.0/24
GLOBAL=0.0.0.0/0
echo Setting up loopback interface...
/sbin/ipchains -A input -i lo -j ACCEPT
/sbin/ipchains -A output -i lo -j ACCEPT
<font color="0000FF">echo Setting up DHCP access...
/sbin/ipchains -A input -p udp -s $GLOBAL 67 -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A input -p udp -s $GLOBAL 68 -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A output -p udp -d $GLOBAL 67 -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A output -p udp -d $GLOBAL 68 -i $DEV_LNET -j ACCEPT</font><!--color-->
<font color="009900"># das hier scheint zu funktionieren;
# oder kann man das evt. "besser" (sprich: sicherer) machen ?
# das ganze mit dem $GLOBAL scheint mir ein bisschen zu viel des guten</font><!--color-->
echo Setting up intranet connections...
/sbin/ipchains -A input -i $DEV_LNET -s $LNET -j ACCEPT
/sbin/ipchains -A output -i $DEV_LNET -d $LNET -j ACCEPT
echo Setting up internet syn connections...
/sbin/ipchains -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ
/sbin/ipchains -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
/sbin/ipchains -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
/sbin/ipchains -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
echo Setting up internet ack connections...
/sbin/ipchains -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
/sbin/ipchains -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y
/sbin/ipchains -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y
/sbin/ipchains -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
/sbin/ipchains -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
echo Setting up ICMP defined restrictions...
/sbin/ipchains -N icmp-acc
/sbin/ipchains -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
echo Setting up ICMP major restrictions...
/sbin/ipchains -A input -p icmp -j icmp-acc
/sbin/ipchains -A forward -p icmp -j MASQ
/sbin/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
echo Firewall active
</font><hr></pre></blockquote>
echo Start RP filter for anti spoofing shield
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
echo Deleting all existing chains...
/sbin/ipchains -F
/sbin/ipchains -X icmp-acc
echo Setting up default policy...
/sbin/ipchains -P input DENY
/sbin/ipchains -P forward DENY
/sbin/ipchains -P output DENY
# Variables
DEV_LNET=eth0
IP_LNET=192.168.0.99
DEV_INET=ppp0
LNET=192.168.0.0/24
GLOBAL=0.0.0.0/0
echo Setting up loopback interface...
/sbin/ipchains -A input -i lo -j ACCEPT
/sbin/ipchains -A output -i lo -j ACCEPT
<font color="0000FF">echo Setting up DHCP access...
/sbin/ipchains -A input -p udp -s $GLOBAL 67 -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A input -p udp -s $GLOBAL 68 -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A output -p udp -d $GLOBAL 67 -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A output -p udp -d $GLOBAL 68 -i $DEV_LNET -j ACCEPT</font><!--color-->
<font color="009900"># das hier scheint zu funktionieren;
# oder kann man das evt. "besser" (sprich: sicherer) machen ?
# das ganze mit dem $GLOBAL scheint mir ein bisschen zu viel des guten</font><!--color-->
echo Setting up intranet connections...
/sbin/ipchains -A input -i $DEV_LNET -s $LNET -j ACCEPT
/sbin/ipchains -A output -i $DEV_LNET -d $LNET -j ACCEPT
echo Setting up internet syn connections...
/sbin/ipchains -A input -s $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A forward -s $LNET 1024: -p tcp -i $DEV_INET -j MASQ
/sbin/ipchains -A output -s $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
/sbin/ipchains -A input -s $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A forward -s $LNET 1024: -p udp -i $DEV_INET -j MASQ
/sbin/ipchains -A output -s $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
echo Setting up internet ack connections...
/sbin/ipchains -A input --sport 20 -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT
/sbin/ipchains -A output --sport 20 -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT
/sbin/ipchains -A input -d $GLOBAL 1024: -p tcp -i $DEV_INET -j ACCEPT ! -y
/sbin/ipchains -A output -d $LNET 1024: -p tcp -i $DEV_LNET -j ACCEPT ! -y
/sbin/ipchains -A input -d $GLOBAL 1024: -p udp -i $DEV_INET -j ACCEPT
/sbin/ipchains -A output -d $LNET 1024: -p udp -i $DEV_LNET -j ACCEPT
echo Setting up ICMP defined restrictions...
/sbin/ipchains -N icmp-acc
/sbin/ipchains -A icmp-acc -p icmp --icmp-type echo-reply -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type echo-request -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type destination-unreachable -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type source-quench -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type time-exceeded -j ACCEPT
/sbin/ipchains -A icmp-acc -p icmp --icmp-type parameter-problem -j ACCEPT
echo Setting up ICMP major restrictions...
/sbin/ipchains -A input -p icmp -j icmp-acc
/sbin/ipchains -A forward -p icmp -j MASQ
/sbin/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
echo Firewall active
</font><hr></pre></blockquote>
Re: Firewall und DHCP ?
<blockquote><pre><font size="1" face="">code:</font><hr><font face="Courier New" size="2">
...
# 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
BROADCAST=255.255.255.255
IPCHAINS=/sbin/ipchains
...
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
<font color="0000FF">$IPCHAINS -A output -p udp -d $BROADCAST 67 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -p udp -d $BROADCAST 68 -i $DEV_LNET -j ACCEPT</font><!--color-->
<font color="009900"># noch eine Idee (nicht getestet)
# wenn ich die destination auf $BROADCAST setze,
# ist das dann sinnvoller als auf $GLOBAL ? und wird das funktionieren ?</font><!--color-->
...
</font><hr></pre></blockquote>
...
# 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
BROADCAST=255.255.255.255
IPCHAINS=/sbin/ipchains
...
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
<font color="0000FF">$IPCHAINS -A output -p udp -d $BROADCAST 67 -i $DEV_LNET -j ACCEPT
$IPCHAINS -A output -p udp -d $BROADCAST 68 -i $DEV_LNET -j ACCEPT</font><!--color-->
<font color="009900"># noch eine Idee (nicht getestet)
# wenn ich die destination auf $BROADCAST setze,
# ist das dann sinnvoller als auf $GLOBAL ? und wird das funktionieren ?</font><!--color-->
...
</font><hr></pre></blockquote>