Sebuah permasalah IP Forwarding terjadi pada box linux saya.

Kalau digambarkan konfigurasinya …

NET <-> Box A (shorewall) <-> Box B (dhcp,DNS Local) <-> OUR LAN

Linux Box A memiliki 3 buah NIC

eth0 –> Ke Internet
eth1 –> LOCAL DB & Back Up
eth2 –> Router LAN (10.11.12.1/30 – Ke Box B)

Pada Box B memiliki 2 NIC

eth0 –> ke Box A (10.11.12.2/30)
eth1 –> ke OUR LAN (10.10.4.1/24)

Karena di Box B kami putuskan untuk memasang transparent proxy maka kami menggunakan perintah IP Tables …

# iptables –table nat -A PREROUTING -s 10.10.4.0/24 -p tcp -m tcp –dport 80 -j REDIRECT –to-port 3128

Yap, 10.10.4.0/24 adalah IP dari OUR LAN dan 3128 adalah port milik PROXY Server (SQUID).

Kemudian masalah terjadi pada saat kami ingin menggunakan https dan service yang lain. Karena dari jaringan 10.10.4.0/24 saat memasuki Box A selain menggunakan Web pasti akan menggunakan IP pada OUR LAN dan bukan milik Box B. Akibatnya, Shorewall menganggap bahwa OUR LAN merupakan jaringan luar dan kemudian di DROP dan dibuktikan pada log di Box A kurang lebih …

<… another log … > Shorewall:FORWARD:REJECT: < … another log … >

Hal ini cukup mengesalkan karena OUR LAN tidak dapat melakukan ping, https dll. Dari penelusuran, ternyata pemecahannya adalah dengan melkukan mekanisme masquerade IP yang dari eth1 ke eth0 pada Linux Box B. Sehingga perintahnya menjadi …

# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Setelah itu OUR LAN bisa mengakses internet dengan lancar.

NOTE: Tentu saja pada Box A (shorewall) harus segera dilakukan berbagai langkah pengamanan, paling tidak hanya membuka beberapa port yang penting saja bagi eth2.

Sumber: