router - forward portu zpet do vychozi site

Filip Jirsák filip.jirsak na centrum.cz
Čtvrtek Červen 13 10:01:31 CEST 2002


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

#přesměrování 1.2.3.4 na 192.168.1.20 - porty 25,80
# tady se snažím o přesměrová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

# 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

#defaultní pravidlo DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

echo 1 > /proc/sys/net/ipv4/ip_forward
-----
Predem diky za jakekoliv popostrceni.
Filip Jirsak

--------------------
Chuťová inspirace na http://recepty-maggi.centrum.cz 





Další informace o konferenci Linux