IP Publik , IP address dan NAT (Network Address Translation)
IP Public adalah IP yang
bisa diakses langsung oleh internet. Analoginya IP Public itu seperti kamu
punya nomer telepon rumah atau nomer HP yang bisa ditelepon langsung oleh semua
orang. alamat-alamat ini telah ditetapkan oleh InterNIC dan berisi beberapa buah
network identifier yang telah dijamin unik (artinya, tidak ada dua host yang
menggunakan alamat yang sama) jika jaringan tersebut telah terhubung ke
Internet.
IP Private adalah IP yang biasanya digunakan dalam jaringan yang tidak terhubung ke internet atau bisa juga terhubung ke internet tapi melalui NAT. Analoginya IP private itu telepon lokal dalam kantor/hotel yang bisa buat telepon-teleponan gratis dalam satu gedung. Nah kalo ada orang yang mau telepon harus lewat operator dolo (NAT) karena nomer telepon publicnya cuma satu (hunting). untuk gambarnya bisa melihat gambar dibawah ini.
192.168.xxx.xxx adalah IP Private sedangkan 125.126.0.1 adalah IP Public yang dalam analogi kita tadi sebagai NAT di mana, NAT adalah pengalihan suatu alamat IP ke alamat yang lain. Dan apabila suatu paket dialihkan dengan NAT pada suatu link, maka pada saat ada paket kembali dari tujuan maka link ini akan mengingat darimana asal dari paket itu, sehingga komunikasi akan berjalan seperti biasa.
Kenapa orang-orang
menggunakan NAT ?
- Koneksi Modem ke Internet.
Kebanyakan ISP akan memberikan satu alamat IP pada
saat anda melakukan dial up ke internet. Anda dapat mengirim paket ke alamat
mana saja yang anda inginkan tetapi balasannya hanya akan diterima oleh satu
alamat IP yang anda miliki.Apabila anda ingin menggunakan banyak komputer
seperti jaringan dalam rumah anda untuk terhubung dengan internet dengan hanya
satu kink ini, maka anda membutuhkan NAT. Cara ini adalah NAT
yang paling umum digunakan sekarang ini, sering disebut sebagai masqurading.
- Banyak Server
Terkadang anda ingin mengubah arah paket yang datang ke jaringan anda. Hal ini disebabkan anda hanya memiliki satu alamat IP, tapi anda ingin semua orang dapat mengakses komputer yang berada di belakang komputer yang memiliki alamat IP yang asli. Apabila anda dapat mengubah tujuan dari paket yang masuk, anda dapat melakukan ini.
Tipe NAT seperti ini disebut port-forwarding. - Transparent Proxy
Terkadang anda ingin seakan-akan setiap paket yang melewati komputer anda hanya ditujukan untuk komputer anda sendiri. Hal ini digunakan untuk membuat transparent proxy : Proxy adalah program yang berada di antara jaringan anda dan dunia luar, dan membuat keduanya dapat saling berkomunikasi. Bagian transparannya dikarenakan jaringan anda tidak akan mengetahui bahwa dia menggunakan proxy kecuali proxynya tidak bekerja.
Program squid dapat dikonfiguraasi untuk bekerja seperti ini, dan hal ini disebut redirection atau transparent proxy.
Dua Tipe NAT
NAT terdiri atas dua
macam tipe: Source NAT (SNAT) dan Destination NAT (DNAT) Source NAT adalah
ketika anda mengubah alamat asal dari paket pertama dengan kata lain anda
merubah dari mana koneksi terjadi. Source NAT selalu dilakukan setelah routing,
sebelum paket keluar ke jaringan. Masquerading adalah contoh dari SNAT.
Destination NAT
adalah ketika anda mengubah alamat tujuan dari paket pertama dengan kata lain
anda merubah ke mana komunikasi terjadi. Destination NAT selalu dilakukan
sebelum routing, ketika paket masuk dari jaringan. Port forwarding, load
sharing dan transparent proxy semuanya adalah bentuk dari DNAT.
Menggunakan NAT di
Linux
Untuk membuat NAt
anda harus membuat aturan NAT yang akan memberitahu kernel koneksi apa yang
harus diubah. Untuk ini kita menggunakan tool iptables dan membuatnya untuk
mengubah tabel NAT dengan memberikan option "-t nat".
Tabel aturan NAT
berisi 3 bagian yang disebut "chain", setiap aturan akan diperiksa
secara berurutan sampai ada satu yang tepat. Kedua chain disebut PREROUTING
(untuk Destination NAT, ketika paket pertama kali masuk), dan POSTROUTING
(untuk Source NAT, ketika paket pergi). Yang ketiga, OUTPUT akan diabaikan.
Tabel di bawah akan menggambarkannya :
Pada setiap node di
atas, ketika paket melewati kita melihat koneksi apa yang diasosiasikan
dengannya. Apabila hal itu adalah koneksi yang baru, kita melihat chain pada
tabel nat yang berperan untuk mengetahui apa yang akan kita lakukan dengan
paket tersebut.
Source NAT
Untuk melakukan
Source NAT anda harus merubah asal dari koneksi. Hal ini dilakukan di chain
POSTROUTING, pas sebelum keluar. Hal ini sangat penting, dikarenakan berarti
tools lain yang di dalam router itu (routing, packet filtering) akan melihat
paket itu tidak berubah. Hal ini juga berarti opsi '-o' (outgoing interface)
juga bisa digunakan.
Source
dispesifikasikan dengan menggunakan '-j SNAT', dan juga opsi '--to-source'
untuk menspesifikasikan sebuah alamat IP, range alamat IP dan port atau range
port (hanya untuk protokol UDP dan TCP) yang sifatnya optional.
Mengubah alamat asal ke 1.2.3.4
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4
Mengubah alamat asal ke 1.2.3.4, 1.2.3.5, or 1.2.3.6
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
Mengubah alamat asal ke 1.2.3.4, port 1-1023
# iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
# iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023
Masquerading
Terdapat kasus yang
khusus untuk Source NAT yang disebut masquerading, sebaiknya hanya digunakan
untuk alamat IP yang dinamik, seperti menggunakan dialup secara standar (untuk
alamat IP yang statis, gunakan SNAT si atas). Anda tidak perlu menempatkan
alamat asal apabila anda menggunakan masquerading, dikarenakan alamat asal akan
memakai alamat dari interface tempat paket itu keluar. Hal ini akan memudahkan
apabila ada penggantian alamat IP dari interface tersebut, sehingga keslaahan
da[at dihindari.
Masquerade semua paket yang keluar dari ppp0
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Destination NAT
Destination NAT
dilakukan pada chain PREROUTING, pas ketika paket masuk, hal ini berarti semua
tools di dalam router akan melihat paket akn pergi ke tujuan yang sebenarnya .
Hal ini juga berarti bahwa opsi '-i' (incoming interface) bisa digunakan.
Destination NAT
dispesifikasikan dengan menggunakan '-j DNAT' dan opsi '--to-destination'
menspesifikasikan sebuah alamat IP, range alamat IP dan range dari port (hanya
untuk protokol UDP dan TCP) yang sifatnya optional.
Merubah alamat tujuan ke 5.6.7.8
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8
Merubah alamat tujuan ke 5.6.7.8, 5.6.7.9, or 5.6.7.10
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10
Merubah alamat tujuan dari lalu lintas web ke 5.6.7.8
port 8080
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080
# iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080
Redirection
Terdapat kasus khusus
dari Destination NAT yang disebut redirection. Redirection adalah pengarahan
dari paket yang masuk dari posrt tertentu diarahkan ke port lain, dimana setiap
port menandakan aplikasi jaringan yang berbeda.
Mengirim dari port 80 lalu lintas web ke squid
(transparent) proxy
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
# iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128
Dalam hal ini squid harus
dikonfigurasi sehingga dia tahu paket yang masuk adalah transparent proxy.
Comments
Post a Comment