Hej! Vi har et mærkeligt problem, vi har en maskine med 3 netkort i, de 2 af
kortene bliver brugt til dsl forbindelser og det 3. kort til vores klienter.
På firewallen/gatewayen kører der også squid
Vores script ser således ud:
IFI="eth3"
IPI="10.0.0.1"
IPI_NET="10.0.0.0/16"
NMI="24"
IFE1="eth0"
IFE2="eth1"
IPE1="192.168.1.2"
IPE2="172.16.1.174"
NWE1="192.168.0.0"
NWE2="172.16.0.0"
NME1="16"
NME2="16"
BRD1="192.168.255.255"
BRD2="172.16.255.255"
GWE1="192.168.1.1"
GWE2="172.16.0.1"
IPTABLES="/sbin/iptables"
UNPRIVPORTS="1024:65535"
echo "1" > /proc/sys/net/ipv4/ip_forward
$IPTABLES --flush
$IPTABLES -X
$IPTABLES -Z
$IPTABLES --delete-chain
$IPTABLES -t nat --flush
$IPTABLES -t nat --delete-chain
$IPTABLES -t mangle --flush
$IPTABLES -t mangle --delete-chain
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A FORWARD -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
$IPTABLES --policy INPUT DROP
$IPTABLES --policy OUTPUT DROP
$IPTABLES --policy FORWARD DROP
# Regler for LAN
$IPTABLES -A OUTPUT -o $IFI -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $IFI -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
# Regler for wan
$IPTABLES -A INPUT -i $IFE1 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i $IFE2 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -o $IFE1 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
$IPTABLES -A OUTPUT -o $IFE2 -m state --state NEW,ESTABLISHED,RELATED -j
ACCEPT
# Transperent proxy
$IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
# SNAT
$IPTABLES -t nat -A POSTROUTING -s $IPI_NET -j SNAT --to $IPE1
$IPTABLES -t nat -A POSTROUTING -s $IPI_NET -j SNAT --to $IPE2
# State
$IPTABLES -t filter -N keep_state
$IPTABLES -t filter -A keep_state -m state --state RELATED,ESTABLISHED -j
ACCEPT
$IPTABLES -t filter -A keep_state -j RETURN
$IPTABLES -t nat -N keep_state
$IPTABLES -t nat -A keep_state -m state --state RELATED,ESTABLISHED -j
ACCEPT
$IPTABLES -t nat -A keep_state -j RETURN
$IPTABLES -t nat -A PREROUTING -j keep_state
$IPTABLES -t nat -A POSTROUTING -j keep_state
$IPTABLES -t nat -A OUTPUT -j keep_state
$IPTABLES -t filter -A INPUT -j keep_state
$IPTABLES -t filter -A FORWARD -j keep_state
$IPTABLES -t filter -A OUTPUT -j keep_state
------
Vi er godt klar over der ikke er meget sikkerhed i den (endnu) men det er
for at udelukke regler der kan drille.
Selve firewallen kan godt tilgå Internettet, men vores klienter på lan'et
kan ikke, med mindre vi tvinger den til at bruge proxyen på firewallen.
Vi kan via tcpdump se at hvis vi laver en forespørgsel (fra klienten) på en
ekstern url (f.eks.
www.dr.dk), laver klienten en forespørgsel til dns
(ligger eksternt) og der kommer et svar tilbage fra dns til vores eksterne
interface, men dette svar får vores klient (eller rettere sagt vores lan
interface) ikke. Så vores bud er at der er et problem med den interne
routning, men kan ikke lurer hvor problemet ligger da vi laver vores SNAT
transformering.