7.19. ( PORTFW - helyi ) - nem érem el a PORTFW-olt szerveremet a BELSŐ hálózatról

Ez egy gyakori probléma, amit elmagyaráztunk a 6.7 fejezetben, a "Megjegyzés #2" alatt.

Tegyük fel, hogy a tartományod, az acme.com, az 1.2.3.4 külső IP címmel rendelkezik, és átirányítottad a WWW forgalmat egy belső gépre, mondjuk a 192.168.0.20-ra. Ezek után mint egy belső felhasználó, próbálsz kapcsolódni a http://www.acme.com-ra, és várod hogy működjenek a dolgok. Nos, ez így nem helyes. Alapvetően a www.acme.com-hoz a névfeloldás során az 1.2.3.4 címet rendeljük. Amit viszont igazából akarsz, az a 192.168.0.20-hoz való kapcsolódás.

Látod a különbséget?

A tökéletes megoldása ennek az, ha SZÉTVÁLASZTOD a DNS szervert. A belső felhasználókat úgy állítjuk be, hogy a belső DNS szervert használják, ami a 192.168.1.20-at adja vissza, ha lekérdezzük tőle a www.acme.com-ot. Minden külső felhasználó viszont az 1.2.3.4 IP címet kapja válaszként a névfeloldásra a külső szervertől. Innentől az IPTABLES/IPCHAINS/IPFWADM továbbíthatja a forgalmat a 192.168.1.20 szerverhez, normál módon.

Másik lehetőség, ha csak kevés belső géped van, hogy beállítasz egy "hosts" fájlt minden belső gépen. Ennek egy bejegyzése tipikusan így néz ki:

www.acme.com    192.168.0.20

Látod? Ha érdekel a jobban skálázható DNS-es megközelítés, a TrinityOS teljesen kivesézi az osztott és chroot-olt DNS szervereket: TrinityOS - Section 24 http://www.ecst.csuchico.edu/~dranch/LINUX/index-linux.html#trinityos

Ha pedig az osztott DNS vagy a hosts fájl-os ötlet sem érdekel, akkor add hozzá a következő sort a tűzfalszabályaidhoz. Jegyezd meg, hogy ez a rész jelenleg nem foglalkozik a REDIR használatával. Ha segítségre van szükséged a REDIR-hez, küldj nekem e-mailt.

# $IPTABLES - ez az IPTABLES-ed teljes elérési útvonala
#
# $PORTFW   - ez a belső WWW szerver IP címe
#
# $INTLAN   - ez a belső, maszkolott LAN hálózati címe,
#             pl. 192.168.0.0/24
#
# $INTIP    - ez a MASQ szerver belső IP címe


$IPTABLES -t nat -A POSTROUTING -d $PORTFW -s $INTLAN \
        -p tcp --dport 80 -j SNAT --to $INTIP

Ezzel a megközelítéssel az a probléma, hogy minden csomagnak el kell mennie a MASQ klienstől a MASQ szerverig, az maszkolott WWW szerverig és újra vissza. Ez mind a hálózat sávszélességével, mind a szerver CPU-jával nagy pocsékolás!