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... så I skal
ikke grine alt for højt :)
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.
#! /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
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
# Tillad ping replies
iptables -A INPUT -p ICMP -s 0/0 --icmp-type echo-request -j ACCEPT
# 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
# 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?
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
3. Hvorfor kan jeg ikke længere se mit samba-share?
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