router - forward portu zpet do vychozi site

Peter Ronai linux na my-scotland.sk
Čtvrtek Červen 13 15:40:14 CEST 2002


On Thu, 2002-06-13 at 09:01, Filip =?ISO-8859-2?Q?Jirs=E1k ?= wrote:
> Zdravim,
> mam nasledujici usporadani: firewall se tremi sitovkami, jedna do 
> internetu a dve do dvou rouznych podsiti (ktere jsou 
> zamaskaradovane). Vnejsi rozhrani fw ma vlastni IP adresu 
> (1.2.3.4). Na tuto adresu je ale v DNS nastaven web a mail 
> server, ktery je ve skutecnosti umisten v jedne positi (a ja s 
> tim nic neudelam, spravuji jen firewall a druhou podist). Tj. 
> pozadavek na 1.2.3.4:80 se ma forwardovat na 192.168.1.20:80. 
> Forwardovani portu na firewallu mi funguje spravne pro pozadavky 
> z venku i z druhe site. Nefunguje ale pripad, kdy je pozadavek z 
> te same site, kde je umisten web a mail server - tj. ma 
> probehnout to, ze prijde paket z vnitrni site, udela se na nem 
> DNAT a odesle se zpet do puvodni site (rozhranim, kterym prisel). 
> Jenze to nefunguje. Musi se nekde specialne nastavit, ze paket 
> muze byt odeslan stejnym rozhranim, kterym prisel? Nebo je chyba 
> nekde jinde? Pouzivam Mandrake 8.2, jadro 2.4.x, iptables.
> Prikladam relevantni cast skriptu, kterym se nastavuji iptables:
> ------
> #eth0 - internet
> #eth1 - 2. vnitrni sit
> #eth2 - 1. vnitrni sit
> 
> #privátní adresy, které se nikdy nemohou na internetu vyskytnout
> iptables -N private
> iptables -A private -i eth0 -s 10.0.0.0/8 -j DROP
> iptables -A private -i eth0 -s 172.16.0.0/12 -j DROP
> iptables -A private -i eth0 -s 192.168.0.0/16 -j DROP
> #zakázat privátní adresy na vstupu
> iptables -A FORWARD -j private
> iptables -A INPUT -j private
> 
> iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT -
> -to 1.2.3.4

skuste excludnut tu .20 (webserver), dnat a snat sa dokopy nemaju radi

> 
> #poesmirování 1.2.3.4 na 192.168.1.20 - porty 25,80
> # tady se sna3/4ím o poesmirování portu, které funguje jen mezi 
> # internet - 2. sit a 1. sit - 2. sit, nejde 1. sit - 1. sit
> iptables -t nat -A PREROUTING -p tcp -d 1.2.3.4 --destination-
> port 25 -j DNAT --to-destination 192.168.1.20:25
> iptables -t nat -A PREROUTING -p tcp -d 12.3.4 --destination-port 
> 80 -j DNAT --to-destination 192.168.1.20:80
> 
> #povolit 1. podsit - internet
> iptables -A FORWARD -i eth2 -o eth0 -s 192.168.1.0/24 -j ACCEPT
> iptables -A FORWARD -i eth0 -o eth2 -d 192.168.1.0/24 -j ACCEPT
> 

toto je trosku prilis benevolentne ;)

> # a tady se snazim o to, aby se pakety mohly vratit zpet do
> # 1. podsite
> 
> iptables -A FORWARD -i eth2 -o eth2 -d 192.168.1.0/24 -j ACCEPT
> iptables -A FORWARD -i eth2 -o eth2 -s 192.168.1.0/24 -j ACCEPT
> 

toto ja by som riesil skor takto:

                IPT=/sbin/iptables
                PRE=PREROUTING
                POS=POSTROUTING
                OUT=OUTPUT
                FOR=FORWARD
                INP=INPUT
#atdatd

#
                $IPT -A $FOR -s $LAN -i $LAN_NIC -p TCP --dport $WEB_P \
                -m state --state NEW,ESTABLISHED -j ACCEPT
                $IPT -A $FOR -d $LAN -p TCP --sport $WEB_P \
                -m state --state ESTABLISHED -j ACCEPT

                $IPT -A $FOR -s $LAN -i $LAN_NIC -p TCP --dport
$SSLWEB_P \
                -m state --state NEW,ESTABLISHED -j ACCEPT
                $IPT -A $FOR -d $LAN -p TCP --sport $SSLWEB_P \
                -m state --state ESTABLISHED -j ACCEPT





> #defaultní pravidlo DROP
> iptables -P INPUT DROP
> iptables -P OUTPUT DROP
> iptables -P FORWARD DROP
> 
> echo 1 > /proc/sys/net/ipv4/ip_forward









Další informace o konferenci Linux