IP Tunneling
IP tunnel adalah
kanal jaringan komunikasi Protokol Internet (IP) antara dua jaringan komputer
yang digunakan untuk transportasi menuju jaringan lain dengan mengkapsulkan
paket ini. IP Tunnel sering kali digunakan untuk menghubungkan dua jaringan IP
tidak bergabung yang tidak memiliki alamat penjaluran asali (native routing path) ke lainnya,
melalui protokol penjaluran utma melewati jaringan transportasi tingkat
menegah. Bersama dengan protokol IPsecurity keduanya kemungkinan digunakan untuk
membuat jaringan maya pribadi (Virtual
Private Network) antara dua atau lebih jaringan pribadi melewati
jaringan umum misalnya internet. Penggunaan umum lainya adalah untuk
menghubungkan antara instalsi IPv6 dan IPv4 internet.
Dalam melakukan IP tunel, setiap paket IP, termasuk
informasi pengalamatan dari sumber dan tujuan jaringan IP, dikapsulasi dengan
format paket asali lainnya ke jaringan antara (transit network).
Di batas antara jaringan sumber ke jaringan antara serta
antara jaringan antara ke jaringan tujuan, gerbang jaringan (Gateways) digunakan untuk membangun
titik akhir IP tunnel antar jaringan. Kemudian, titik akhir IP tunnel menjadi
penjalur IP asali (native IP routers)
yang membuat standar penjalur IP antara jaringan sumber dan jaringan tujuan.
Tunneling IPv4 dan IPv6
IP
address yang lebih dikenal secara umum dan digunakan saat ini adalah IP versi 4
atau IPv4. Alamat IPv4 merupakan
salah satu jenis pengalamatan jaringan yang digunakan di dalam protokol jaringan
TCP/IP menggunakan protokol
IPv4. Pada dasarnya, Alamat IPv4 terdiri dari
32-bit yang di bagi menjadi empat octet dan setiap octet terdiri dari 8-bit.
IPv4 sendiri terbagi menjadi beberapa kelas, yaitu kelas A, B, C, D dan E.
Berikut format header dari IPv4:
Gambar 2.1 Header IPv4
Secara
teori IPv4 ini mampu mencakup hingga 4 miliar host komputer yang di
alamatkannya. Sehingga bila suatu saat batas kuota tersebut melebihi host yang
ada diseluruh dunia maka akan terjadi kekurangan pengalamatan untuk host-host
baru yang bermunculan, sehingga dikembangkanlah pengalamatan jenis baru yang
sekarang dikenal dengan IP versi 6 atau IPv6.
Berikut format header dari IPv6:
Gambar 2.2 Format header IPv6.
Alamat IPv6
atau di kenal dengan Next Generation Internet Protocol atau IPng. Pengalamatan
jenis ini mulai dikenalkan pada pertengahan tahun 1994 oleh Ipng Area Detector
dari Internet Engineering Task Force (IETF). IPv6 adalah
salah satu jenis pengalamatan jaringan yang juga di pergunakan dalam lingkup
protokol jaringan TCP/IP yang
menggunakan protokol IP
versi 6. IP address ini memiliki ukuran 128-bit
(16-byte), dan secara teoritis dapat mengalamati hingga 2128=3,4 x
1038 host komputer
di seluruh dunia. Sehingga begitu besar jumlah pengalamatan host yang dapat
dicakup oleh IP jenis ini. Contoh alamat IP versi 6 adalah 2002:c0a8:b1::/64.
IPV6 sendiri merupakan suatu langkah baru untuk meminimalisir
permasalahan kekurangan pengalamatan host yang terjadi. Versi IP baru ini
dirancang untuk suatu tindakan evolusiner dari IPV4. Secara langsung
IPv4 dengan IPv6 tidak dapat dihubungkan, dibutuh kan suatu sistem tunneling
untuk mengintergrasiakan keduanya. Tunnel di dalam dunia jaringan komputer
diartikan sebagai suatu cara untuk mengenkapsulasikan atau membungkus paket IP
didalam paket IP yang lain.
Tunneling merupakan suatu metode yang digunakan untuk proses
peng-engkapsulisasian IP address, baik peng-enkapsulasian IPv6 dalam paket IPv4
atau sebaliknya. Sistem tunneling ini digunakan untuk mengintegrasikan antara
komputer server dan client yang menggunakan jenis IP address berbeda, misalkan
komputer server menggunakan IPv6 dan komputer client menggunakan IPv4.
Di dalam sistem tunneilng terdapat suatu aspek yang paling
penting, yaitu payload atau biasa disebut dengan paket data asli yang bisa jadi
merupakan suatu unsupported protocol atau protokol yang tidak dikenal. Pada
tunneling terdapat header yang diperlukan sehingga paket data tersebut dapat
dikirim melalui infrastruktur jaringan dan diterima oleh tujuan.
Paket tunnel yang dikirim melalui jaringan dengan menggunakan
tunnel. Saat node tujuan menerima paket tunnel, maka paket tunnel tersebut akan
di enkapsulasikan kedalam paket data hasil.
Terdapat dua jenis tunneling, yaitu tunneling secara
terkonfigurasi (configured tunneling) dan tunneling secara otomatis (automatic
tunneling). Tunneling terkonfigurasi merupakan suatu sistem tunneling yang
terjadi pada router ke router dan komputer ke router. Router harus
mendekapsulasi paket IPv6 dan mengirimkannya ke tujuan akhirnya, jika alamat
IPv6 router berbeda dengan alamat tujuan paket yang paket tersebut tidak
menyediakan alamat IPv4 router, maka alamat dari router tersebut ditentukan
dari konfigurasi oleh komputer yang bertindak sebagai tunneling.
Tunneling otomatis merupakan suatu sistem tunneling yang berfungsi
untuk melewatkan paket IPv6 melalui jaringan IPv4 tanpa merubah infrastruktur
dari jaringan tersebut. Tunneling jenis ini memilki prinsip kerja yang
mengengkapsulasikan paket IPv6 ke header IPv4 yang kemudian langsung dikirim ke
jaringan IPv4. Fungsi dari enkapsulasi paket IPv6 tersebut adalah supaya paket
tersebut dapat di routing-kan oleh router IPv4 tersebut. Namun dengan adanya
penambahan header IPv4 ini, paket tersebut akan bertambah besar sesuai dengan
panjang dari header IPv4. Pertambahan panjang paket ini akan mengakibatkan
pertambahan waktu delay pada proses pengiriman paket tersebut. Berikut bentuk
dari sistem tunneling:
Gambar 2.3 Tunneling.
Server komputer adalah suatu
sistem komputer yang dibuat untuk menjalankan aplikasi server. Sebuah komputer
server yang di fungsikkan untuk menjalankan salah satu aplikasi server yang
spesifik sering kali komputer server tersebut dikenal dengan nama dari
aplikasinya. Sebagai contoh, misalkan pada komputer server digunakan software
Apache HTTP server biasanya di sebut Web Server saja. Pada dasarnya aplikasi
server adalah fleksibel, dalam artian aplikasi server dapat dibagi menjadi
beberapa komputer tergantung pada kebutuhan dan beban.
FTP atau File transfer protocol
merupakan suatu aplikasi yang digunakan untuk proses pentransferan file
(mengirim dan menerima file) dari suatu komputer ke komputer lain dalam suatu
jaringan. Aplikasi ftp ini bekerja pada port 21 sebuah jaringan.
Selain FTP server, aplikasi lain
yang digunakan pada server adalah web server. Web server merupakan suatu
aplikasi yang berfungsi untuk menproses permintaan dari client dalam bentuk web
atau world wide web (www). Web server bertugas menunggu permintaan dari client
yang menggunakan browser seperti Netscape Navigator, Internet Explorer,
Modzilla, dan program browser lainnya. Jika ada permintaan dari browser, maka
web server akan mengeksekusi permintaan tersebut dan kemudian memberikan hasil
dari proses yang dilakukan kepada browser. Data ini mempunyai format yang
standar, disebut dengan format SGML (Standar General Markup Language.
Pengujian terhadap performansi
jaringan yang menggunakan teknik tunneling meliputi cara-cara uji sebagai
berikut ini:
1.
Performance Test
Dilakukan
untuk melihat pengaruh dari teknik tunneling terhadap performansi pada jaringan
komputer yang digunakan, hal ini dilakukan untuk melihat optimasi ketika trafik
meningkat.
2.
Load Test
Dilakukan
dengan melihat pengaruh dari teknik tunneling tehadap pengujian webserver dan
ftpserver menggunakan estimasi trafik dari sebuah halaman web yang mampu
dilayani. Caranya yaitu mencatat berapa waktu maksimum yang dibutuhkan dari
proses penampilan sebuah halaman web yang diakses.
3. Stress
Test
Merupakan
suatu simulasi serangan “brute force” yang menjalankan muatan atau permintaan
secara berlebihan menuju webserver dan ftpserver dalam jaringan yang
menggunakan teknik tunneling. Tujuannya untuk estimasi muatan maksimum dari
sebuah webserver dan ftpserver.
Ada beberapa penelitain yang sebelumnya dilakukan
oleh mahasiswa elektro Unsyiah di CCE JTE Unsyiah. Rahmad melakukan riset
tentang Aplikasi Quality Of Service (QoS) Video Conference Pada
Trafik H.323 Menggunakan Metode Differentiated Service (Diffserv), penelitian
ini menggunakan parameter troughtput sebagai analisa berapa banyaknya data yang
dilewati setiap satuan detik. Penelitian tersebut berhasil mendesain suatu QoS
untuk mengatur prioritas paket video conference pada traffic padat dengan
menggunakan protocol H.323.
Protokol Tunneling
Tunneling adalah teknik mengenkapsulasi
seluruh paket data dari format protokol yang lain. Dengan kata lain, paket data
asli akan ditambahkan header dari tunneling protokol tersebut. Hasil
enkapsulasi tersebut kemudian akan dikirim melalui infrastruktur jaringan
menuju node tujuan.
Aspek yang paling penting dari tunneling
adalah paket data asli, atau disebut juga “payload” yang bisa jadi merupakan
unsupported protocol. Daripada mengirimkan paket data asli, yang mungkin tidak
routeable dalam infrastruktur jaringan, maka digunakanlah metode tunneling.
Header pada tunneling menyediakan informasi routing yang dibutuhkan sehingga
paket data tersebut dapat dikirim melewati infrastruktur jaringan dan diterima
dengan baik pada tujuan.
Tunneled packet dikirim melalui jaringan
dengan menggunakan path logical (Tunnel). Saat node tujuan menerima tunneled
packet, maka paket tersebut akan didecapsulasikan kedalam paket data asli.
Proses dari Tunneling dapat dilihat pada gambar berikut :
Beberapa kelebihan yang dimiliki Tunneling
:
- Sederhana dan kemudahan dalam
implementasi.Tidak perlu melakukan perubahan
pada infrastruktur jaringan existing untuk memasang teknologi tunneling.
- Aman. Tunnel intranet suatu organisasi tidak bisa
diakses oleh pihak luar, walaupun tunnel tersebut menggunakan
infrastruktur jaringan publik yang tidak aman seperti internet.
- Lebih hemat.Jika dibandingkan dengan menggelar infrastruktur
jaringan intranet private contohnya menggunakan dedicated clear channel
leased line untuk menghubungkan kantor-kantor cabang dengan kantor pusat.
Maka akan lebih efektif dengan membuat tunneling pada jaringan internet
existing.
- Dukungan terhadap unsupported
protocol.Contohnya seperti NetBIOS dan
NetBEUI yang merupakan protokol yang tidak kompatibel dengan protokol
internet (TCP/IP). Tunneling memungkinkan protokol seperti NetBIOS dan
NetBEUI untuk ditransmisikan melewati jaringan internet (TCP/IP).
- Menghemat IP Address. Seperti disebutkan sebelumnya, tunneling
mengijinkan protokol yang tidak bisa diroutingkan dan tidak mempunyai
pengalamatan IP untuk diencapsulasikan menjadi paket yang menggunakan IP
Address public yang unik. Daripada mengeluarkan biaya untuk membeli
alokasi IP Public untuk setiap node dalam jaringan,lebih baik membeli
sebuah blok kecil IP Public yang kemudian dihubungkan koneksi VPN (Tunneling)
maka kita akan dengan mudah mengatur dan memasang IP Address yang
diinginkan. Metode ini dapat mengurangi jumlah kebutuhan akan IP Public
dari suatu organisasi.
Secara
sederhana tunneling berarti mengirimkan data melalui koneksi lain yang sudah
terbentuk. Kalau anda buka situs internet banking, pasti anda akan membukanya
dengan URL berawalan “https”, yang sejatinya adalah data dalam protokol HTTP
yang dikirimkan melalui koneksi dengan protokol SSL, atau “HTTP over SSL”,
dalam bahasa gaulnya berarti HTTP digendong sama SSL.
SSH dan SSL
adalah dua contoh tunneling protocol, keduanya bisa dipakai untuk menggendong
data dalam protokol apa saja (tidak hanya http). Hanya bedanya adalah pada SSL
dibutuhkan public key certificate dalam format X.509 yang perlu diverifikasi
melalui Certificate Authority resmi. SSH tidak memerlukan public key
certificate, sehingga lebih sederhana dan lebih mudah dipakai.
Protocol Encapsulation
Dalam kasus
https, data dalam protokol HTTP di-enkapsulasi (dibungkus) dalam protokol SSL
sebagai payload. Enkapsulasi juga terjadi dalam layer model TCP/IP, yaitu data
pada layer yang lebih atas menjadi payload dan di-enkapsulasi dengan protokol
pada layer di bawahnya.
Anda tentu
tahu boneka lucu terbuat dari kayu dari Rusia bernama Matryoshka. Keunikan
boneka ini adalah boneka yang berukuran kecil bisa dimasukkan ke dalam boneka
yang lebih besar, dan boneka yang lebih besar juga bisa dimasukkan ke dalam
boneka yang lebih besar lagi hingga pada akhirnya hanya ada satu boneka saja
yang paling besar. Bila boneka yang paling besar itu dibuka, maka di dalamnya
akan ada satu boneka yang lebih kecil, bila boneka tersebut dibuka, maka akan
ditemukan boneka lagi yang lebih kecil, demikian seterusnya hingga boneka yang
terkecil.
Gambar di
bawah ini sangat tepat menggambarkan apa itu protocol encapsulation.
Gambar di
atas menggambarkan bagaimana data ketika dikirim dienkapsulasi dan dikirimkan
melalui protokol yang berada pada layer di bawahnya. Pada gambar di atas bisa
dikatakan bahwa email message tersebut dikirimkan dalam bentuk paket SMTP over
TCP over IP over Ethernet. Jadi pada akhirnya semua data tersebut akan terkirim
dalam bentuk paket ethernet.
Dalam
ilustrasi boneka matryoshka, pesan email adalah boneka matryoshka terkecil.
Boneka ini dimasukkan dalam boneka matryoshka SMTP yang ukurannya lebih besar,
kemudian boneka matryoshka SMTP ini dimasukkan dalam boneka matryoshka TCP,
kemudian boneka matryoshka TCP ini dimasukkan dalam boneka matryoshka IP, dan
akhirnya dimasukkan ke dalam boneka matryoshka ethernet yang berukuran paling
besar.
Jadi boneka
matryoshka yang diterima lawan biacara adalah boneka matryoshka yang terbesar.
Bila boneka ini dibuka, di dalamnya ada boneka Matryoshka IP yang lebih kecil,
dan bila boneka ini juga dibuka, di dalamnya ada boneka matryoshka TCP yang
semakin kecil ukurannya. Bila boneka matryoshka TCP ini dibuka, di dalamnya ada
boneka matryoshka SMTP yang didalamnya ada matryoshka email message. Email
message adalah boneka matryoshka terkecil.
Port Forwarding
Port
forwarding atau port mapping pengalihan (redirection) koneksi dari suatu
IP:Port ke IP:Port yang lain. Ini artinya adalah semua koneksi yang
ditujukan ke IP:Port asal akan dialihkan ke IP:Port tujuan seolah-olah client
sedang menghubungi IP:Port tujuan secara langsung.
Contoh: bila
kita definisikan port forwarding 127.0.0.1:8080 dipetakan ke 192.168.10.10:80,
artinya bila browser di arahkan ke url http://127.0.0.1:8080, maka request HTTP
tersebut akan diteruskan ke 192.168.10.10:80. Jadi walaupun pada localhost
(127.0.0.1) port 8080 tidak ada web server, namun web browser bisa membuka web
pada url http://localhost:8080.
Gambar di bawah ini adalah contoh port
forwarding dari web nakahara-informatics.com.
Pada port forwarding
tersebut, didefinisikan sehingga klien dari dunia luar bisa mengakses service
yang ada pada jaringan internal. Port forwarding yang didefinisikan adalah:
§ 64.130.31.59:10004
–> 192.168.1.103:22
Artinya
untuk SSH ke host 192.168.1.103, maka client harus ssh ke IP 64.130.31.59 port
10004.
§ 64.130.31.59:10001
–> 192.168.1.100:22
Artinya
untuk SSH ke host 192.168.1.100, maka client harus ssh ke IP 64.130.31.59 port
10001.
§ 64.130.31.59:8080
–> 192.168.1.102:80
Artinya
untuk mengakses halaman web di host 192.168.1.102, maka url yang harus dibuka
di browser adalah http://64.130.31.59:8080
Port forwarding pada
ssh, mirip dengan port forwarding pada gambar di atas, namun ada sedikit
perbedaan. Pada port forward gambar di atas, titik koneksi masuk dan keluar
sama, artinya koneksi masuk ke IP dan port tertentu, dan koneksi tersebut akan
diforward ke tempat lain dari titik yang sama juga. Sedangkan port forwarding
pada ssh, titik keluarnya berbeda dengan titik masuknya. Agar lebih jelas,
silakan lihat gambar di bawah ini.
Pada gambar
di atas pada bagian atas, koneksi yang masuk di titik masuk, diforward ke
tujuan dari titik itu juga. Ini adalah tipikal port forwarding di router/proxy.
Sedangkan pada gambar di bawahnya, koneksi yang masuk di titik masuk, diforward
ke tujuan dari titik lain di ujung sebelah kanan. Kotak panjang yang
menghubungkan dua titik berwarna oranye tersebut menggambarkan koneksi ssh.
Koneksi yang masuk akan diforward dari ujung koneksi ssh, bukan dari titik
masuknya.
Konsep SSH Tunneling
SSH adalah
protokol yang multiguna, selain untuk menggantikan telnet, SSH juga mendukung
fitur tunneling, port forwarding, download/upload file (Secure FTP), SOCKS
proxy dsb. Semua fitur tersebut dibungkus dengan enkripsi sehingga data yang
lewat melalui protokol ini aman dari jangkauan hacker.
Dalam ssh
tunneling, data yang dikirimkan melalui koneksi ssh akan di-enkapsulasi
(dibungkus) dalam paket SSH seperti pada gambar di bawah ini.
Selain enkapsulasi
paket, dalam ssh tunnel juga dibutuhkan port forwarding. Port forwarding dalam
SSH tunnel ada 3 jenis:
§ Local
Port Forwarding
§ Remote
Port Forwarding
§ Dynamic
Port Forwarding
Perhatikan gambar di
bawah ini untuk memahami perbedaan antara local port forwarding dan remote port
forwarding.
Dari gambar di atas
jelas terlihat bahwa perbedaan antara local dan remote port forwarding.
§ Pada
local port forwarding, komputer yang bertindak sebagai ssh client akan menjadi
titik masuk koneksi yang akan diforward dan komputer yang bertindak sebagai ssh
server menjadi titik keluar. Jadi koneksi yang masuk ke titik masuk di komputer
ssh client akan diforward ke tujuan dari komputer ssh server. Gambar di bawah
ini ilustrasi lain dari ssh local port forwarding.
Pada
remote port forwarding, komputer yang bertindak sebagai ssh server akan menjadi
titik masuk koneksi yang akan diforward dan komputer yang bertindak sebagai ssh
client menjadi titik keluar. Jadi koneksi yang masuk ke titik masuk di komputer
ssh server akan diforward ke tujuan dari komputer ssh client. Gambar di bawah
ini ilustrasi lain dari ssh remote port forwarding.
Jadi yang
perlu diingat dalam perbedaan antara local dan remote port forwarding adalah
posisi titik masuk koneksi yang akan diforward. Bila titik masuknya ada di
komputer yang berperan sebagai ssh client, maka itu adalah local port
forwarding, namun bila titik masuknya di komputer ssh server, maka itu adalah
remote port forwarding.
Dalam bahasa
sederhananya, disebut local karena dari sudut pandang ssh client, titik
masuknya ada di localhost, dan disebut remote karena titik masuknya bukan di
localhost, tapi di komputer ujung sana.
Static vs Dynamic Port Forwarding
Sebenarnya
dynamic port forwarding termasuk local port forwarding juga karena pada dynamic
port forwarding, titik masuk koneksi yang akan diforward berada di komputer
yang berperan sebagai ssh client. Namun pada local dan remote port forwarding
biasa (static), IP address dan port asal dan tujuan harus disetting dulu
sebelum bisa dipakai, jadi sifatnya statis.
Gambar di
atas adalah (static) local port forwarding biasa. Pada local port forwarding
biasa (static), setiap pemetaan port asal dan IP:port tujuannya harus disetting
satu per satu. Jadi terlihat pada gambar di atas, bila ada 3 tujuan yang ingin
dihubungi, maka 3 pemetaan port asal dan IP:port tujuan harus disetting semua
sebelum bisa dipakai.
Pada gambar
di atas terlihat di ssh client ada 3 port yang LISTEN (3 bulatan merah di sisi
ssh client) untuk 3 tujuan yang berbeda. Perlu dicatat juga bahwa ketiga
pemetaan port forwarding tersebut dilakukan di atas satu koneksi ssh yang sama
(multiple port forwarding on single ssh conection).
Sedangkan
pada dynamic (local) port forwarding, kita tidak perlu menentukan
pemetaan port asal dan IP:tujuan untuk setiap tujuan. Kita hanya perlu
menentukan port berapa yang akan LISTEN di localhost (di komputer ssh client),
dan semua aplikasi bisa memanfaatkan port tersebut sebagai proxy ke tujuan
manapun dengan protokol SOCKS (SOCKS proxy). Berbeda dengan gambar sebelumnya,
pada dynamic port forwarding di sisi ssh client hanya ada satu port yang LISTEN
(hanya ada satu bulatan merah).
Multiple Port Forwarding on Single SSH
Connection
Walaupun
jarang dipakai, namun sebenarnya ssh mendukung banyak port forwarding dalam
satu koneksi ssh. Kalau kita membutuhkan 3 local port forwarding dan 4 remote
port forwarding, kita tidak perlu membuat 7 koneksi ssh, cukup satu koneksi ssh
saja.
Gambar di atas
memperlihatkan ilustrasi multi port forwarding pada satu koneksi ssh yang sama.
Dalam satu koneksi ssh tersebut port forwarding yang dibuat adalah:
§ Panah
berwarna hitam paling atas adalah local port forwarding.
§ Panah
berwarna biru dan biru gelap di tengah adalah dynamic port forwarding.
§ Panah
berwarna hijau paling bawah adalah remote port forwarding.
Daripada membuat 3
koneksi ssh untuk masing-masing port forwarding, jauh lebih sederhana dan
praktis membuat multi port forwarding pada satu koneksi ssh.
Membuat
Local Port Forwarding
Sekarang setelah
memahami konseptualnya, kita langsung praktek bagaimana membuat ssh tunnel
dengan putty di Windows dan command line ssh di Linux.Command untuk membuat
local port forwarding secara umum adalah:
ssh -L
localport:servertujuan:porttujuan user@ssh_server
Contohnya adalah:
ssh -L
8888:www.kompas.com:80 admin@serverku.com
Perintah di atas akan
membuat semua koneksi ke port 8888 di localhost, dialihkan ke www.kompas.com
port 80 melalui serverku.com. Titik masuknya adalah localhost:8888 dan titik
keluarnya adalah serverku.com. Bila kita membuka browser ke URL
http://localhost:8888, request HTTP tersebut akan sampai di www.kompas.com:80 melalui
serverku.com, artinya dari sudut pandang www.kompas.com koneksi berasal dari
serverku.com, bukan dari komputer yang menjalankan perintah tersebut. Dalam log
web server www.kompas.com, IP address visitor adalah ip address serverku.com,
bukan ip address komputer yang menjalankan perintah tersebut.
Kalau
dalam windows, kita bisa gunakan putty.exe untuk membuat local port forwarding
tunnel. Gambar di bawah ini adalah setting untuk forward koneksi localhost:8888
ke www.kompas.com:80. Caranya adalah dengan memasukkan 8888 ke dalam field
“Source port”, dan memasukkan www.kompas.com:80 ke dalam field “Destination”.
Setelah itu klik “Add”. Anda bisa menambahkan port forwarding yang lain
sebanyak yang anda butuhkan dengan mengulang cara yang sama lalu klik “Add”
lagi.
Membuat Remote Port Forwarding
Command
untuk membuat remote port forwarding di Linux secara umum adalah:
ssh -R remoteport:servertujuan:porttujuan user@ssh_server
Contohnya
adalah:
ssh -R 8080:192.168.1.1:80 admin@serverku.com
Perintah di
atas akan membuat setiap koneksi ke serverku.com:8080 akan dialihkan ke
192.168.1.1 melalui komputer yang menjalankan perintah tersebut. Pada log
server tujuan (192.168.1.1:80) yang terlihat dari koneksi yang masuk bukan ip
address serverku.com. Server 192.168.1.1:80 akan melihat koneksi berasal dari
komputer yang menjalankan perintah di tersebut (komputer ssh client).
Kalau dengan
putty caranya masukkan 9999 ke dalam kolom “Source port”, kemudian masukkan
192.168.1.1:80 sebagai kolom “Destination”, lalu klik Add. Anda bisa
menambahkan banyak port forwarding dalam satu koneksi ssh, dengan cara yang
sama, lalu klik Add sebanyak yang anda butuhkan.
Remote
port forwarding ini sangat cocok dipakai sebagai backdoor. Bila seorang hacker
telah berhasil menyusup hingga “behind enemy lines”, dia bisa membuat remote
port forwarding tunnel dari “behind enemy lines” ke server di luar milik
hacker. Ini artinya hacker telah membuat terowongan, dengan pintu masuk di
luar, dan pintu keluar di “behind enemy lines”. Ingat pada Remote port
forwarding, titik/pintu masuk adalah di sisi ssh server, dan titik/pintu keluar
di ssh sisi client. Dengan memakai terowongan ini, hacker bisa masuk melalui
pintu di servernya sendiri yang berada di luar, dan secara otomatis hacker
tersebut masuk ke “behind enemy lines” karena pintu keluar dari terowongan ini
ada di “behind enemy lines”.
Chaining Tunnel
Terkadang
ketika melakukan penetrasi, di dunia nyata keadaan tidaklah semulus dan seindah
teori atau dalam lab. Firewall seringkali membuat kita tidak bisa bebas membuat
koneksi ke server yang kita inginkan. Dalam situasi seperti ini kita harus
berputar-putar melalu beberapa server, sampai kita bisa mencapai server target.
Perhatikan
gambar di atas, target yang akan diserang hacker adalah server D.D.D.D port
3389, yaitu Remote Desktop connection, hacker ingin melakukan remote desktop
komputer tersebut. Namun server D hanya bisa diakses oleh server C, dan server
C hanya bisa diakses dari A. Hacker sudah menguasai penuh server A dan C,
bagaimana caranya hacker tersebut bisa remote desktop ke D ?
Tujuan
akhirnya adalah hacker ingin koneksi ke localhost:9999 di laptop backtracknya,
akan diforward ke D.D.D.D:3389. Jadi nanti dia tinggal menjalankan RDP client
dengan memasukkan localhost:9999, dan dia otomatis akan terkoneksi ke RDP di
server D. Sebagai info tambahan, komputer A dan C adalah linux dengan ssh
service diaktifkan.
Mari kita
coba membuat semua tunnel ini purely hanya dengan ssh.
1. Buat port
forwarding localhost:9999 –> C.C.C.C:8888 via A.A.A.A.
Hacker menjalankan ssh client di backtracknya untuk membuat
koneksi ke ssh server A.A.A.A. Dalam koneksi ssh ini, dia membuat local port
forwarding 9999:C.C.C.C:8888, yang artinya adalah koneksi ke port 9999 di
backtrack si hacker akan diforward ke C.C.C.C:8888 via A.A.A.A.
2. Buat port
forwarding C.C.C.C:8888 –> D.D.D.D:3389 via C.C.C.C
Di komputer
C, hacker membuat koneksi ssh ke localhost (ke C itu sendiri). Dalam koneksi
ssh ke diri sendiri ini dia membuat local port forwarding 8888:D.D.D.D:3389.
Artinya adalah koneksi ke C.C.C.C:8888 akan diforward ke D.D.D.D:3389 (via
C.C.C.C itu sendiri).
Kita membuat
2 tunnel, yang pertama adalah tunnel dengan pintu masuk di backtrack hacker dan
pintu keluar di A.A.A.A. Tunnel kedua adalah denngan pintu masuk dan pintu
keluar di C juga.
Pada tunnel
pertama, koneksi ke pintu masuk di backtrack hacker (localhost:9999), akan
diforward ke C.C.C.C:8888 via A.A.A.A Sedangkan pada server C.C.C.C sudah
dibuat port forwarding sehingga semua koneksi yang masuk ke C.C.C.C:8888 akan
diforward menuju D.D.D.D:3389.
Jadi
akhirnya nanti alurnya adalah:
localhost:9999
–> C.C.C.C:8888 –> D.D.D.D:3389
Gambar di atas menunjukkan chain tunnel yang dibuat. Koneksi ke
localhost:9999 akan diteruskan ke C.C.C.C:888 dan koneksi ke C.C.C.C:8888 akan
diteruskan ke D.D.D.D:3389. Jadi sama artinya dengan koneksi ke localhost:9999
diteruskan ke D.D.D.D:3389.
VPN ( VIRTUAL PRIVATE NETWORK )
Variasi lain
dari skema jaringan yang dibangun sebagai jaringan khusus dengan menggunakan
jaringan internet umum. Karena menggunakan jaringan internet, sebuah perusahaan
yang membuat WAN (Wide Area Network) berbasis VPN ini mampu menjangkau area
yang sangat luas dan lintas geografi. VPN menyediakan koneksi poin-to-poin baik
kepada kantor cabang maupun kepada seorang karyawan yang sedang bertugas
ditempat lain.
Menghubungkan antar kantor pusat/cabang dengan menggunakan VPN jauh lebih ekonomis dengan keamanan yang dapat diandalkan daripada menyewa jaringan khusus (leased lines) atau dengan panggilan jarak jauh melalui modem.
VPN dapat menjadi jaringan khusus yang besar dan tidak terbatas. Sebuah WAN khusus yang jauh lebih efisien, aman dan berbiaya ekonomis dari WAN atau LAN tradisional. Sehingga telah banyak perusahaan-perusahaan yang menggunakan VPN sebagai infrastruktur jaringanya yang menghubungkan antara kantor pusat dengan kantor cabang dan dengan agen serta client nya.
Menghubungkan antar kantor pusat/cabang dengan menggunakan VPN jauh lebih ekonomis dengan keamanan yang dapat diandalkan daripada menyewa jaringan khusus (leased lines) atau dengan panggilan jarak jauh melalui modem.
VPN dapat menjadi jaringan khusus yang besar dan tidak terbatas. Sebuah WAN khusus yang jauh lebih efisien, aman dan berbiaya ekonomis dari WAN atau LAN tradisional. Sehingga telah banyak perusahaan-perusahaan yang menggunakan VPN sebagai infrastruktur jaringanya yang menghubungkan antara kantor pusat dengan kantor cabang dan dengan agen serta client nya.
MPLS ( MULTI-PROTOCOL LABEL SWITCHING )
Konsep dasar
MPLS adalah teknik peletakan label dalam setiap paket yang dikirim dalam
jaringan ini. MPLS bekerja dengan cara memberi label paketpaket data yang
memuat rute dan prioritas pengiriman (treatment) paket tersebut. Label tersebut
akan memuat informasi penting yang berhubungan dengan informasi routing suatu
paket. Teknik pelabelan ini biasa disebut dengan label switching.
Network MPLS terdiri atas sirkuit yang disebut Label-Switched Path (LSP), yang menghubungkan titik-titik yang disebut Label-Switched Router (LSR). LSR pertama dan terakhir disebut ingress dan egress. Setiap LSP dikaitkan dengan sebuah Forwarding Equivalence Class (FEC). FEC merupakan kumpulan paket yang menerima perlakuan forwarding yang sama di sebuah LSR dan diidentifikasikan dengan pemasangan label.
Network MPLS terdiri atas sirkuit yang disebut Label-Switched Path (LSP), yang menghubungkan titik-titik yang disebut Label-Switched Router (LSR). LSR pertama dan terakhir disebut ingress dan egress. Setiap LSP dikaitkan dengan sebuah Forwarding Equivalence Class (FEC). FEC merupakan kumpulan paket yang menerima perlakuan forwarding yang sama di sebuah LSR dan diidentifikasikan dengan pemasangan label.
Tunneling
adalah sebuah cara melakukan koneksi point-to-point
dimana paket IPv6 ditumpangkan dalam header paket IPv4 melalui
infrastruktur routing IPv4.
Pada praktiknya
kedua hal tersebut bisa dilakukan secara bersama atau masing-masing tergantung
situasi setempat. Contohnya adalah bisa sebuah universitas belum mempunyai
jaringan yang mendukung IPv6 ke internet maka universitas tersebut harus
melakukan tunneling dahulu
ke penyedia jaringan IPv6, baru kemudian menjalankan teknik Dual IP Layer.
Beberapa
teknik yang biasa digunakan untuk tunneling
adalah 6over4 dan 6to4.
Gambar 3. Dual IP layer
Gambar 4. Enkapsulasi IPv6 – IPv4
Screenshot uji coba tunneling dengan aplikasi http-tunnel di lab internet 2 IT
| Tampilan http-tunnel |
| Setting di browser |
| Setting di browser cont'd |
| Membuka halaman Youtube |
| Tampilan status di Http-tunnel |
| Memutar video |
| Jika tidak melalui proses tunneling |
| Tampilan Halaman Mediafire setelah di tunnel |
file pdf : http://www.mediafire.com/?s19wepc7d39exe2
file docx : http://www.mediafire.com/?a92e43vtfvjm7pr















