Minggu, 21 Juni 2015

Port Forward Iptables

Hi semua,, hari ini mau tulis mengenai cara forward port menggunakan iptables. Sudah banyak artikel yang membahas mengenai hal ini, tapi untuk menambah tulisan juga tidak apa-apa kan :P.
Kurang lebih diagram port forward seperti dibawah ini
Dalam diagram di atas, kita ingin ssh host 192.168.56.22 lewat host 192.168.56.11 via port 3232 dari host 192.168.56.1. Untuk itu kita set iptables yang di host 192.168.56.11.
Sebelum kita set rules iptables, kita aktifkan dahulu ip forwardnya
sudo sysctl -w net.ipv4.ip_forward=1
Lalu kita tambahkan rules pada chain PREROUTING dan POSTROUTING, oh iya tampilan sebelum ditambahkan rules pada chain PREROUTING dan POSTROUTING adalah seperti di bawah ini
Kita tambahkan rules seperti di bawah ini
sudo iptables -t nat -A PREROUTING -p tcp --dport 3232 -d 192.168.56.11 -j DNAT --to 192.168.56.22:22
sudo iptables -t nat -A POSTROUTING -p tcp -j SNAT --to 192.168.56.11
Sehingga untuk tampilan chain nat yang baru adalah seperti di bawah ini
Penjelasan rules di atas adalah, untuk chain PREROUTING, jika ada paket tcp yang mengarah ke host 192.168.56.11 ke port 3232, maka akan ditranslate ke ip 192.168.56.22 menuju port 22. Lalu untuk reponse dari host 192.168.56.22, kita set rule di chain POSTROUTING, jika ada paket tcp yang mengarah ke host 192.168.56.11 maka akan ditranslate sebagai ip 192.168.56.11.
Sekarang kita bisa telnet dari ip 192.168.56.1 mengarah ke ip 192.168.56.22 port 3232, tampilannya kurang lebih seperti di bawah ini.
Coba kita melakukan ssh dari host 192.168.56.1, 
ssh ardi@192.168.56.11 -p3232
Pasti bisa masuk :D, kondisi ini jika chain FORWARD tidak diDROP (ACCEPT), seperti gambar di bawah ini
Lalu bagaimana jika diDROP ? Maka kita perlu menambahkan rules di chain FORWARD, seperti di bawah ini
sudo iptables -A FORWARD -p tcp --dport 22 -d 192.168.56.22 -j ACCEPT
sudo iptables -A FORWARD -p tcp --sport 22 -s 192.168.56.22 -j ACCEPT
Kira - kira tampilan rulesnya seperti di bawah ini

Lalu coba telnet lagi, pasti bisa lagi :D. Penjelasan untuk chain FORWARD erat kaitannya dengan chain PREROUTING dan POSTROUTING sebelumnya. Jika ada paket tcp yang ingin diteruskan ke host 192.168.56.22 dan port 22 maka akan diACCEPT, lalu jika ada paket tcp dari host 192.168.56.22 dan port 22 maka akan diACCEPT, selain itu maka akan diDROP.
Sekian dari saya. Wassalam :)

0 komentar:

Posting Komentar