Problemer med gateway/firewall
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å squidVores 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.