← Back to team overview

sslug-teknik team mailing list archive

packet filtering Firewall med IP masquerading og forwarding

 

Jeg er igang med at sætte en firewall op til vore LAN, som er forbundet til
internettet igennem en router. (i øjeblikket ISDN, skal senere ændres til
ADSL)

Jeg har lavet et shell script som følger her:



# to enable logging if necessary
#LOG=-1

# Tilfoj /sbin til PATH
PATH=$PATH:/sbin

# Konstanter
ANYWHERE=0.0.0.0/0.0.0.0
EXT_IF=eth1
INT_IF=eth0

# Netværk
INTERNAL_NET=192.168.80.0/255.255.255.0
EXTERNAT_ADDR=193.167.90.1/255.255.255.0

# Forhindrer 'packet forwarding' mens Firewall initieres
echo "0" >/proc/sys/net/ipv4/ip_forward

# Nulstill (flush) alle regler
ipchains -F input
ipchains -F output
ipchains -F forward

# Afvis alle pakker (IP packets) som default (mostly closed firewall)
ipchains -P input DENY
ipchains -P output DENY
ipchains -P forward DENY

# Accepter alt fra localhost
ipchains -A input -j ACCEPT -p all -s localhost -d localhost -i lo $LOG
ipchains -A output -j ACCEPT -p all -s localhost -d localhost -i lo $LOG

# Spoofing beskyttelse - Afvis alt der kommer udefra med en intern adresse
ipchains -A input -j RETURN -p all -s $INTERNAL_NET -d $ANYWHERE -i $EXT_IF
$LOG

# Accepter TCP Pakker der horer til allerede etablerede forbindelser
ipchains -A input -j ACCEPT -p tcp -s $ANYWHERE -d $INTERNAL_NET -i $EXT_IF
! -y $LOG

# Accepter og mask'r alle interne pakker der skal ud
ipchains -A input -j ACCEPT -p all -s $INTERNAL_NET -d $ANYWHERE -i $INT_IF
$LOG
ipchains -A forward -j MASQ -p all -s $INTERNAL_NET -d $ANYWHERE -i $INT_IF
$LOG

# Accepter alle TCP pakker fra det interne net på vej ud af nettet
ipchains -A output -j ACCEPT -p all -s $INTERNAL_NET -d $ANYWHERE -i $EXT_IF
$LOG

# Accepter type 3 ICMP foresporgsler (destination unreachable)
ipchains -A input -j ACCEPT -p icmp -s $ANYWHERE -d $INTERNAL_NET -i $EXT_IF
--icmp-type destination-unreachable $LOG
ipchains -A output -j ACCEPT -p icmp -s $INTERNAL_NET -d $ANYWHERE -i
$EXT_IF --icmp-type destination-unreachable $LOG

# Fang alle regler, til LOG brug
ipchains -A input -j DENY -l
ipchains -A output -j DENY -l
ipchains -A forward -j DENY -l

# Re-etabler packet forwarding
echo "1" > /proc/sys/net/ipv4/ip_forward


Problemet er, at lige så snart jeg eksekverer dette script, forsvinder
firewallen (192.168.80.254 - eth0), dvs jeg kan ikke PINGE den fra en
computer på lokalnettet. 

jeg er lidt i tvivl om der skal ændres noget i min route tabel, eller om jeg
har gjort noget forket mht default gateway (sat til 192.168.80.254 på alle
clienter, og til 193.167.90.254 på firewallen)


for god ordens skyld, sender jeg lige maskinens configuration:  eth0 = 3c509
192.168.80.254, eth1= 3c509 193.167.90.1

default gateway= 193.167.90.254



Er der nogen der har lyst til at hjælpe?

mvh

Jonas Stevnsvig, Complete-Learning (www.complete-learning.com)


Follow ups