Steffen Fischer wrote:
>
> Hej alle
>
> Jeg har netop sat en 2.4.17 kerne i min debian potato, som fungerer
> nat-boks for lokalnettet. I samme omgang fandt jeg det naturligt at
> erstatte ipchains med iptables, og det nedenstående script er mit
> allerførste...
Fornuftigt.
> så I skal ikke grine alt for højt :)
HA, HA, HA
>
> Det lokale net, hvorfra folk gerne vil på internettet er 192.168.1.0 på
> eth0, og externt interface er eth1. Der kører af og til webserver og
> ftpserver på maskinen så disse porte er forsøgt åbnet.
>
For det første undrer jeg mig lidt over at du bruger
et shell script og ikke blot en configurationsfil
til iptables-restore. Jeg ved ikke lige hvordan debian
fungerer på det punkt, men på RedHat kan man skrive
sine regler i /etc/sysconfig/iptables og så indlæse
dem med "service iptables start". Findes der en fil
med navnet /etc/rc.d/init.d/iptables på dit system?
> #! /bin/sh
>
> case "$1" in
> start)
> echo -n "Starting firewall"
>
> # Turn on IP forwarding
> echo 1 > /proc/sys/net/ipv4/ip_forward
>
> # Flush all tables
> iptables -F
> iptables -t nat -F
> iptables -X
>
> # Sæt default policies
> iptables -P INPUT DROP
> iptables -P FORWARD DROP
> iptables -P OUTPUT ACCEPT
> iptables -t nat -P POSTROUTING DROP
>
> # Tillad input fra denne og fra lokalnettet
> iptables -A INPUT -i lo -j ACCEPT
> iptables -A INPUT -i lo -j ACCEPT
Et eksemplar af den linie burde være nok.
> iptables -A INPUT -i eth0 -j ACCEPT
> iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> # Åben for ftp og http
> iptables -A INPUT -p tcp --syn --dport 21 -j ACCEPT
> iptables -A INPUT -p tcp --syn --dport 80 -j ACCEPT
> # Åben for icq
> iptables -A INPUT -p tcp --syn --dport 5190 -j ACCEPT
Jeg har aldrig selv brugt --syn, men det er måske
en udmærket idé.
>
> # Tillad ping replies
> iptables -A INPUT -p ICMP -s 0/0 --icmp-type echo-request -j ACCEPT
Øh, replies? Du må vel mene requests? I øvrigt er
"-s 0/0" overflødigt.
>
> # Forward til og fra lokalnet
> iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
> iptables -A FORWARD -d 192.168.1.0/24 -j ACCEPT
Hvad er formålet med de to regler? Hvis formålet er
at acceptere alle masqueradede pakker ville jeg nok
have valgt disse to regler i stedet:
iptables -A FORWARD -i eth0 -s 192.168.1.0/24 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
>
> # Masquerading
> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
>
> echo "."
> ;;
>
> stop)
> echo -n "Stopping firewall"
> iptables --flush
> # så åbner vi den på vid gab
> iptables -P INPUT ACCEPT
> iptables -P FORWARD ACCEPT
> iptables -P OUTPUT ACCEPT
> # og sætter masquerading til
> iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
> echo "."
> ;;
>
> restart)
> $0 stop
> sleep 1
> $0 start
> ;;
>
> reload)
> $0 restart
> ;;
>
> *)
> echo "Usage: /etc/init.d/firewall {start|stop}"
> exit 1
> ;;
> esac
>
> exit 0
>
> Jeg har nu følgende spørgsmål:
>
> 1. Ser dette script fuldstændig tosset ud - eller sagt på en anden måde:
> hvad skal ændres eller tilføjes?
Det ser fornuftigt ud. Det er kun dine forwarding
regler jeg absolut ikke forstår.
>
> 2. Hvorfor kan jeg ikke pinge mig selv fra maskinen? Altså at bl.a.
> "ping localhost" fejler med denne besked:
> PING debian (127.0.0.1): 56 data bytes
> ping: sendto: Operation not permitted
> ping: wrote debian 64 chars, ret=-1
Underligt, den fejlmelding har jeg aldrig set fra
ping. Virker det hvis du slår firewallen fra?
>
> 3. Hvorfor kan jeg ikke længere se mit samba-share?
Hvilken maskine er server, og hvilken er klient?
Compilerede du selv den nye kerne? I så fald har
du måske glemt at vælge samba. Samba klienten på
Linux er et filsystem, der enten skal compileres
i kernen eller som et modul.
>
> 4. Er der nogle hjælpesomme sjæle, der kan hjælpe mig?
>
> Med venlig hilsen
> Steffen Fischer
>
> PS.: Spørgsmål 4 er snarere en opfordring end et spørgsmål
--
Kasper Dupont
For sending spam use mailto:razor-report@daimi.au.dk