catatanlepas.com

  • Increase font size
  • Default font size
  • Decrease font size
  • default color
  • black color
Home Komputer Security Tutorial Untuk Membuat Port Forwarding Dalam IPTables

Tutorial Untuk Membuat Port Forwarding Dalam IPTables

Email Cetak PDF

I. Pendahuluan

Dalam artikel sebelumnya, kita sudah mempelajari tentang dasar-dasar iptables. Artikel kali ini akan menjelaskan tentang pengunaan iptables lebih lanjut yaitu bagaimana cara membuat port forwarding dengan menggunakan iptables. Port forwarding merupakan sebuah konsep untuk meneruskan paket yang datang dari ip dan port tertentu ke ip dan port tertentu. Konsep ini mengijinkan seorang user untuk mengakses sebuah layanan seperti telnet atau ssh di jaringan lokal dari jaringan publik. Misalnya seseorang sedang menggunakan IP publik a.b.c.d ingin mengakses layanan ssh yang ada di jaringan lokal w.x.y.z. Maka dengan menggunakan port forwarding orang tersebut bisa melaksanakan hal tersebut. Kelemahan dari port forwarding adalah jika kita menggunakan sebuah port untuk forwarding maka port tersebut tidak dapat digunakan lagi. Port forwarding sering disebut juga PAT (Port Address Translation) atau NAPT (Network Address and Port Translation). Di artikel ini, penulis menggunakan Centos 5.4 sebagai distronya dan menggunakan iptables versi 1.3.5 dan seharusnya artikel ini dapat digunakan oleh berbagai macam distro dan berbagai versi iptables.

II. CARA KERJA

Port forwarding merupakan kebalikan dari proses masquerading (NAT). Jika pada proses NAT yang terjadi adalah beberapa komputer lokal LAN terhubung ke internet melalui IP Publik, maka pada port forwarding yang terjadi adalah koneksi dari internet masuk ke dalam komputer yang ada di dalam LAN kita. Untuk lebih memudahkan bagaimana port forwarding itu bekerja bayangkanlah seorang resepsionis kantor yang hanya mempunyai satu nomor publik untuk menghubungi nomor telepon luar. Jika misalnya ada orang dari luar menelpon ke kantor tersebut untuk berbicara dengan seseorang yang bernama badu misalnya, maka resepsionis akan menghubung badu melalui nomor ekstensi si badu itu sendiri. Tetapi dari si badu tidak bisa menelpon ke luar. Berdasarkan analogi tersebut, dapat dianalogikan bahwa telepon si resepsionis merupakan sebuah server yang mempunyai 2 ethernet yaitu IP publik dan IP lokal. Sedangkan ekstensi si badu merupakan nomor port sebuah layanan di sebuah server lokal. Jika seseorang ingin menggunakan layanan ke dalam sebuah server lokal, maka dia harus menuliskan port dari layanan tersebut.

III. Langkah-langkah

Sebelum kita mengunakan Port forwarding, maka ada dua hal yang harus dikonfigurasi. Pertama adalah routing kernel. Routing kernel harus bernilai 1 agar port forwarding dapat berjalan. Ketikkan perintah berikut:
# vi /etc/sysctl.conf
Lalu cari pada file tersebut tulisan net.ipv4.ip_forward dan rubah nilainya menjadi 1, sehingga akan menjadi:
net.ipv4.ip_forward = 1
Yang kedua adalah file ip_forward. Ketikan perintah berikut:
# vi /proc/sys/net/ipv4/ip_forward
Ubah nilainya menjadi 1.

Setelah kedua hal tersebut dikonfigurasi, maka kita bersiap untuk melakukan port forwarding. Port forwarding mempunyai format seperti berikut:

iptables -t nat [-command] PREROUTING [-p protocol] --dport [port yang diinginkan] -d [IP publik] -j DNAT --to [ip_tujuan:port tujuan]

Setelah kita melakukan port forwarding, maka jangan lupa untuk melakukan hal berikut:
iptables -t nat -A POSTROUTING -o [ethernet lokal] -j MASQUERADE

Di bawah ini akan diberikan contoh-contoh agar kita dapat memahami implementasi port forwarding dengan lebih baik. Contoh-contoh ini berasumsi bahwa kita mempunyai 2 ethernet yaitu eth0 dengan IP 123.45.67.89 dan eth1 dengan IP lokal 192.168.0.2. Dan seluruh rantai semuanya berpolicy ACCEPT. Begitu juga dengan komputer lokal dengan IP 192.168.0.13 yang seluruh rantai iptables-nya berpolicy ACCEPT. Jika memang iptables kita mempunyai rantai yang berpolicy DROP, maka hanya tinggal membuka saja port-port tersebut.

1. Memforward web Server
Misalnya kita mempunyai sebuah aplikasi MRTG untuk melihat traffik jaringan di lokal kita. Kita ingin agar ketika pulang dari kantor kita bisa memantau kondisi jaringan kantor kita. Maka dari itu kita akan menggunakan konsep port forwarding ini untuk melaksanaakn maksud tersebut. Untuk melaksanakan hal tersebut kita akan membuka port 23456 dari server gateway kita. Tuliskan perintah-perintah berikut:

# iptables -t nat -A PREROUTING -p tcp --dport 23456  -d 123.45.67.89 -j DNAT --to-destination 192.168.0.2:80
# iptables -I INPUT -p tcp -d 123.45.67.89 --dport 80 -j DROP
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Perintah iptables pertama memberikan perintah agar setiap protokol tcp yang menuju IP 123.45.67.89 dengan port 23456 akan diteruskan ke IP 192.168.0.2 dengan port 80. Perintah kedua memberikan perintah agar setiap protokol tcp yang menuju IP 123.45.67.89 dengan port 80 akan di drop. Sedangkan perintah terakhir memberikan perintah Masquerade untuk ethernet lokal dalam hal ini eth1.
Sekarang cobalah ke browser dan ketikkan
http://123.45.67.89:23456/mymrtg
Maka seharusnya kita sudah bisa melihat aplikasi MRTG kita dari IP publik. Bandingkan dengan kita hanya mengetikkan browser seperti berikut:
http://123.45.67.89/mymrtg
Maka akan terjadi error.

2. Memforward layanan telnet
Misalnya kita ingin melakukan telnet kepada sebuah server yang ada di dalam jaringan lokal kita dan kita berada di luar kantor serta menggunakan IP publik. Maka dari itu kita mengetikkan di iptables perintah sebagai berikut:
# iptables -t nat -A PREROUTING -p tcp --dport 12345  -d 123.45.67.89 -j DNAT --to-destination 192.168.0.13:23
# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

Perintah iptables pertama memberikan perintah agar setiap protokol tcp yang menuju IP 123.45.67.89 dengan port 12345 akan diteruskan ke IP 192.168.0.13 dengan port 23. Sedangkan perintah terakhir memberikan perintah Masquerade untuk ethernet lokal dalam hal ini eth1.
Untuk melakukan telnet, maka kita mengertikkan formatnya sebagai berikut:
# telnet [ip publik] [port layanan]
Dalam kasus ini, kita mengetikkan sebagai berikut:
# telnet 123.45.67.89 12345
Dan seharusnya kita akan masuk ke server dengan IP 192.168.0.13 melalui mode telnet.

3. Memforward layanan ssh
Misalnya kita ingin melakukan ssh kepada sebuah server yang ada di dalam jaringan lokal kita dan kita berada di luar kantor serta menggunakan IP publik. Maka dari itu kita mengetikkan di iptables perintah sebagai berikut:
# iptables -t nat -A PREROUTING -p tcp --dport 34567  -d 123.45.67.89 -j DNAT --to-destination 192.168.0.13:22
#  iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Perintah iptables pertama memberikan perintah agar setiap protokol tcp yang menuju IP 123.45.67.89 dengan port 34567 akan diteruskan ke IP 192.168.0.13 dengan port 22. Sedangkan perintah terakhir memberikan perintah Masquerade untuk ethernet lokal dalam hal ini eth1.
Untuk melakukan ssh, maka kita mengertikkan formatnya sebagai berikut:
 # ssh nama_user@ip_publik -p [port layanan]
Dalam kasus ini, kita mengetikkan sebagai berikut:
 # ssh 
 This e-mail address is being protected from spambots, you need JavaScript enabled to view it
  -p 34567
Dan seharusnya kita akan masuk ke server dengan IP 192.168.0.13 melalui mode ssh.

IV. Catatan Penting

Perlu diketahui bahwa jika kita menggunakan sebuah port untuk port forwarding maka port tersebut tidak dapat dipakai lagi. Maka dari itu, sebelum kita menggunakan port, cek terlebih dahulu apakah port tersebut masih tersedia atau tidak. Dan sebaiknya jangan menggunakan port-port yang sudah familiar penggunaannya seperti port 22, port 23, dan sebagainya jika ingin digunakan untuk port forwarding karena dikhawatirkan kita belum mensetting ulang service-service yang menggunaka port-port tersebut sehingga akan terjadi bentrok. Dan juga untuk melihat port-port mana saja yang digunakan oleh linux, lihat saja di file /etc/services. Sebaiknya gunakan port di atas port 10000 jika ingin digunakan untuk port forwarding dan perlu diketahui bahwa batas port hanya sampai port 65563. Jadi masih banyak puluhan ribu port yang masih lowong untuk dipergunakan sebagai port forwarding.

Referensi:

20 Muharram 1431 H
6 Januari 2010 M

+ 3
+ 3
Comments
Add New Search
rebaii  - keren     |125.165.136.xxx |2010-02-08 23:57:47
infonya keren" banget pak .
sangat bermanfaat buat saya yang ingin mempeljari networking dan sys admin .
mohon terima aku jadi muridmu

akan saya coba dlu deh tutornya satu" .
ditunggu tutor" kerennya y .
catatan   |SAdministrator |2010-02-09 10:12:47

saya jadi gurumu?

Saya sendiri masih belajar mas.
Silahkan saja dicoba satu-satu tutorial saya.
Setelah itu, kita bisa sharing, OK?
age  - mantaaaap   |117.102.106.xxx |2010-03-26 09:12:01
tulisan yg sangat bagus gan... untuk pemula memang diperlukan... terimakasih banyak untuk tulisannya
catatan   |SAdministrator |2010-03-26 10:24:29
Terima Kasih gan atas komentarnya.
tedjo     |222.165.255.xxx |2010-09-24 14:42:00
tulisannya sangat membantu saya dalam belajar linux dasar.... semoga amal ibadahnya mendapat ganjaran setimpal.
catatan   |SAdministrator |2010-09-26 11:04:33
Amien.
likers  - error   |182.255.2.xxx |2010-09-29 15:15:00
pak...mo nanya
setelah saya ganti :
0 ---> 1
ketika di save muncul pesan error ini knapa ya?

"/proc/sys/net/ipv4/ip_forward" E667: Fsync failed
catatan   |SAdministrator |2010-09-29 17:25:44
ini errornya pada saat kapan ya?
Apakah kamu menggantinya dengan menggunakan vi?
likers  - error   |182.255.2.xxx |2010-09-30 20:13:39
saya edit file pake vim ;

vim /proc/sys/net/ipv4/ip_forward

0 ----> saya ubah jd 1

kmudian

:wq!

lalu muncul error diatas
catatan   |SAdministrator |2010-10-04 11:41:42
Oh begitu.
Sebaiknya pake echo aja. Seperti begini:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Semoga Membantu
sutarman  - tanya     |123.108.97.xxx |2010-10-22 10:28:30
selamat pagi

saya ingin menanyakan tentang gateway
apa bisa
kalau client mengetikkan di browser 172.162.1.2/web maka diarahkan ke gateway 192.168.66.1 sedangkan di dhcp default gatewaynya 192.168.66.11

mohon pencerahannya

trims
sutarman
catatan   |SAdministrator |2010-10-22 11:12:55
Pagi juga,

Maaf mas, saya tidak mengerti pertanyaan mas.
Tio  - VPN SERVER for secure browsing   |222.124.198.xxx |2010-12-16 22:33:41
Selamat Malam Mas

Saya browsing nemu:
http://www.jamesgibbard.co.uk/computers/creatingavpnserverforsecurebrowsing

Saya sudah coba ikuti untuk akses vpnserver dari IP local sudah berhasil....

Masalah...
Akses via internet (flexinet) agar tunel VPN secure browsing berlangsung, belum berhasil...masage error:...conection time out..., padahal dyndns service (www.dyndns.com) sudah diinstall mungkin masalahnya ada di portforwading linux ubuntu tempat openvpns server, tapi saya masih awam linux, jadi mohon pencerahannya.

System yg saya pake:
1. ISP Flexi dynamic IP sharing
2. XP + ICS service + openvpn client + dyndns updater (www.dyndns.com), router (IP forwarding) bawaan XP registry sudah enable =1
3. Tidak pake hardware router
4. VMWARE Ubuntu + openvpn-as dari www.openvpn.net
5. dari server ubutnu sudah bisa akses ke internet tapi dari intenet ke ubuntu vpnsserver yang belum berhasil

Terima Kasih
Tio
catatan   |SAdministrator |2011-07-05 10:46:20
Maaf Mas,
Saya tidak bisa menjawab pertanyaan mas karena saya sendiri belum pernah mencoba menggunakan VPN server di linux.
Nelson Rikardo   |202.69.99.xxx |2011-07-04 10:37:57
Halo mas saya mau nanya dikit :p

kalau misal saya mau memforward semua traffic dari 1 ip public ke ip lokal tanpa melihat destination port bagaimana caranya ya?

Misal saya mau memforward traffic tujuan ke ip publik 202.69.100.100 ke ip lokal saya 172.168.100.100 tanpa melihat destination portnya.

Makasih banyak mas buat tutorial-nya
catatan   |SAdministrator |2011-07-05 10:57:29
Halo mas nelson,
Saya memang belum mencoba untuk memforward semua traffic dari 1 ip publik ke ip lokal tanpa melihat port tujuannya. Namun berdasarkan artikel yang saya buat di atas, port forwarding disebut juga dengan PAT (Port Address Translation) atau NAPT (Network Address and Port Translation) yang kira-kira berarti merubah alamat PORT.

Jadi sepertinya tidak bisa memforward seluruh trafik dari 1 ip publik ke ip lokal tanpa harus melihat port destination-nya. Kita harus memilih port-port mana saja yang harus di forward. Namun, jika mas berhasil membuatnya sharing-sharing ya mas .
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Terakhir Diperbaharui ( Kamis, 07 Januari 2010 09:09 )  

Tanggal dan Jam


Ulti Clocks content

Browse this website in:


Mutiara Hari Ini

Seorang muslim adalah orang yang Kaum Muslimin selamat dari lisan dan tangannya, dan seorang Muhajir adalah orang yang meninggalkan apa yang dilarang oleh Allah. (Bukhari No. 9)

Poling

Apakah artikel-artikel di situs ini bermanfaat untuk anda?

(283 votes)

7.8%
92.2%

Waktu Shalat