twitter
    Find out what I'm doing, Follow Me :)

Virtual Private Network (vpn)

Mudah2an artikel ini berguna buat yang baca walaupun gue ambil dari sebelah...

VIRTUAL PRIVATE NETWORK

Suatu Wide Area Network, menghubungkan beberapa LAN pada berbagai lokasi menjadi seakan-akan menjadi satu network. Untuk menghubungkan beberapa lokasi membutuhkan dedicated line, router, dan beberapa protokol khusus. Hal ini membutuhkan SDM dan biaya untuk menjaga link tetap beroperasi. Pada beberapa lokasi situasi juga berbeda sehingga dapat membuat pendisaian menjadi lebih sulit. Artikel ini membahas kemungkinan penggunaan Internet dan Linux, sebagai komponen pembangun suatu Virtual Private Network (VPN).

Pengantar
Integrasi Network
Proxy Tranparant
Penggunaan Real Tunnel
Konfigurasi Tunnel
Privasi
Konfigurasi Secure Shell (SSH)
Konfigurasi SSH dan tunneling
Penutup

Pengantar.
Membangun suatu VPN membutuhkan pertimbangan dan pekerjaan yang cukup banyak, termasuk pemorgraman dan lain sebagainya. Suatu VPN berdasarkan dua prinsip, sesuai dengan namanya. Istilah virtual, berarti tak adanya represtasi fisik sebenarnya antara link ke dua site tersebut. Hal ini berarti tak adanya dedicated link antar ke dua lokasi yang diinterkoneksi tersebut. Sehingga tak perlu menarik kabel khusus antara ke dua lokasi. Tetapi dengan menggunakan jaringan yang telah ada yang juga digunakan oleh banyak perusahaan yang lainnya. Sehingga term virtual ini timbul dari kenyataan bahwa network ini dibangun di suatu environment yang tak hanya digunakan untuk keperluan VPN ini.
Istilah private berkatitan dengan istilah virtual. Membangun virtual network di atas infrastruktur yang dapat diakses oleh publik memberikan beberapa implikasi sekuriti. Informasi sensitif tidak ingin dibaca oleh pengguna lainnya yang tak berhak, atau misal oleh kompetitor. Sehingga harus diciptakan suatu mekanisme untuk menjaga informasi tetap bersifat terbatas. Cara satu satunya untuk mencapai ini adalah dengan menggunakan enkripsi, sehingga hanya pihak yang dipercaya saja, yang dapat mengakses informasi. Bagaimanapun juga ini memiliki beberapa implikasi hukum.

Aspek lainnya adalah otentikasi atau identifikasi bila diinginkan. Sehingga harus ditentukan cara untuk mengidentifikasikan pihak di seberang VPN yang berkomunikasi. Untuk ini dapat pula digunakan perangkat lunak enkripsi.


top

Integrasi Network
Langkah pertama yang dilakukan untuk melakukan ini adalah dengan mengintegrasikan jaringan lokal dari remote site ke dalam suatu jaringan yang besar. Integrasi ini harus menciptakan suatu situasi yang memungkinkan pengaksesan ke berbagai bagian dari jaringan yang terintegrasi secara transparan. Untuk mencapai hal ini, harus diatasi beberapa masalah, antara lain :
Menentukan alamat IP
Melakukan routing traffic dari A ke B
Setiap alamat IP di Internet haruslah unik. Karena hanya itulah cara untuk mengidentifikasi suatu host. Menggunakan alamat yang sama untuk beberapa mesin akan menghasilkan hasil yang tak dapat diperkirakan. Prinsip address yang harus unik ini hanya berlaku bagi host yang dapat diakses secara langsung dari Internet.
Sebagian alamat yang dimiliki oleh mesin pengguna ditentukan oleh ISP (Internet Service Provider). ISP akan melakukan koneksi ke Internet dan melakukan routing seluruh trafiic dari dan ke alamat IP pengguna. Sehingga alamat IP ini bersifat tetap, dan pengguna dapat menggunakannya alamat yang sama selalu, sehingga hal ini mempermudah konfigurasi. Alamat IP yang tetap biasanya digunakan oleh koneksi Internet dedicated, yaitu koneksi yang hidup 24 jam sehari. Jika suatu address bersifat dinamis, maka akan selalu berubah setiap kali user melakukan koneksi dengan Internet. Address dinamis ini biasanya digunakan untuk koneksi dial-up. Pengguna akan diberikan alamat address IP yang tersedia ketika melakukan koneksi.

Jika memiliki suatu jangkauan alamat IP (misal klas B, atau klas C), keadaan menjadi sedikit berbeda. Jangkauan ini bersifat unik, dan pengguna dapat dengan bebas menggunakan untuk membangun koneksi ini. Tetapi pada beberapa kondisi, tidak mungkin menggunakan 1 alamat IP untuk menghubungkan kantor satu ke alamat IP lainnya di kantor lainnya dengan menggukanan jangkauan address yang sama untuk keduanya. Keterbatasan ini disebabkan oleh mekanisme paket IP dirouting di Internet. Mekanisme routing ini biasanya tidak berdasarkan alamat IP sebenarnya, tetapi berdasarkan jangkauan (range) alamat IP. Jadi seluruh paket pada jangkauan tertentu akan dikirim ke satu router, dan alamat IP untuk range tertentu dikirim ke router yang lainnya.

Adanya keterbatasan penggunaan alamat IP ini, menjadikan beberapa perusahaan melakukan strategi dengan cara memilih secara bebas alamat IP untuk penggunaan Internal, dan hal ini diperbolehkan selama diyakinkan bahwa paket dengan alamat internal ini tak pernah keluar ke jaringan Interet. Range internal ini dipilih sehingga dengan mudah sejumlah kelompok yang berbeda dapat diberikan IP sendiri sendiri. Pembagian ini bertujuan untuk mempermudah untuk melakukan route antar kantor yang berbeda, atau dengan kata lain mempermudah proses saling mengelompokkan satu grup dengan grup yang lainnya.

Jika suatu kantor dengan kantor lainnya dikoneksikan dengan menggunakan dedicated line, alamat IP ini dapat digunakan tanpa masalah yang berarti. Traffic tak akan pernah dapat mencapai Internet, sehingga dapat dipilih alamat IP yang manapun. Tetapi bila koneksi antar kantor ini dilakukan via Internet, maka akan timbul permasalahan dalam pemilihan alamat IP ini. Alamat yang digunakan tak boleh telah digunakan di Internet, sebab bisa saja alamat IP yang dipilih untuk keperluan internal, ternyata telah digunakan oleh salah satu site di Internet, sehingga routing di Internet akan mengirimkan paket ke alamat yang tidak tepat tak sesuai dengan keinginan yang dituju.

Untuk mengatasi masalah ini, digunaakan teknik yang disebut tunneling. Ini berarti paket IP lengkap yang akan dikirim akan dipaketkan lagi ke paket IP lainnya yang memiliki alamat IP sah. Prinsip tunneling tak hanya terbatas untuk protokol TCP/IP. Tetapi dapat dilakukan tunneling beragam jenis protokol ke dalam suatu paket IP (misal Netware dapat dilakukan tunneling, menggunakan paket IP, sehingga dapat diciptakan hubungan link Netware antara client dan serrver melewati Internet). Tetapi dalam bahasan ini hanya akan dibahas tunneling paket IP ke dalam paket IP atau yang disebut IPIP tunneling.




Gambar 1 Prinsip tunneling
Suatu message dari host A akan dikirim ke host B. Alamat A dan B adalah hanya alamat internal, dan setiap koneksi antar keduanya menggunakan alamat X, dan Y (alamat IP yang sah). Pada prinsip tunneling, paket IP pertama akan dimasukkan sebagai pay load area, dari message yang akan dikirimkan via Internet. Dan dikirimkan menggunakan address X dan Y pada header information. Ketika message diterima oleh tunneling server di sisi lain, alamat IP sebenarnya dapat diketahui dari pay load area ini, dan barulan dikirimkan ke lokal network, ke alamat sesungguhnya (dengan menggunakan alamat IP internal). Pengiriman message ini tak terbatas pada message dari A dan ke B saja, tetapi dari satu jaringan lokal, ke jaringan lokal lainnya. Di Internet message ini hanya tampak seperti paket antara host X dan Y saja (yaitu host dengan alamat terdaftar).

Banyak metoda untuk mengimplementasikan suatu mesin Linux sebagai mesin tunneling/detunelling. Berikut ini akan dibahas kemungkinan tersebut

Ada beberapa pertimbangan dalam membentuk sistem tunnelinng ini antara alain :

Di manakah harus diletakkan program tunneling
Apakah tunneling dijalankan di firewall atau di mesin terpisah.
Menjalankan tunneling di firewall memiliki beberapa kerugian.
Seluruh kode tunneling biasanya khusus untuk platform tertentu, sehingga biasanya juga untuk produk firewall tertentu pula. Sehingga bila ingin digunakan tunneling yang bersamaan dengan firewall, maka harus digunakan platform dan software firewall yang sama di kedua sisi jaringan yang dihubungkan. Persyaratan ini menjadikan solusi menjadi mahal.
Dengan menambahkan kode program ke firewall, maka firewall menjadi lebih kompleks, sehingga lebih besar kemungkinan terjadinya error. Sering kali suatu error akan membuka celah untuk dapat digunakan oleh pihak tertentu sehingga memperoleh hak akses yang tak sah
Sebaiknya harus dipasang mesin khusus yang hanya akan menangani tunneling. Bagi client dari jaringan, mesin tunneling ini dianggap tak ubahyna hanya sebagai suatu router ke tujuan (dalam hal ini jaringan lainnya). Hal ini akan menyederhanakan kerja firewall. Akan dibutuhkan aturan filtering yang lebih sedikit, karena pada kasus minimal hanya akan ada mesin tunneling yang akan berhubungan melalui firewall. Sehingga dapat dengan mudah diblok akses dari jaringan internal langsung ke jaringan eksternal, hal ini untuk mencegah kebocoran informasi.
Dengan menggunakan mesin tunneling yang terpisah, maka akan lebih besar pilihan yang dapat dilakukan, misal dapat digunakan firewall , dan mesin tunneling dengan menggunakan Linux.

top

Proxy tranparant
Kernel Linux terbaru (paling tidak versi 2.0 ke atas) memiliki banyak kemampuan memfilter paket. Paket kernel yang terbaru telah mendukung suatu kemampuan yang disebut transparency proxying, yang dapat membantu penyusunan suatu sistem tunneling.
Suatu proxy, adalah suatu program jaringan khusus yang akan merelay data, dari sisi satu ke sisi lainnya, dan sebaliknya. Proses merelay ini dilakukan oleh program proxy, yang terjadi di user space. Ini berarti proxy akan menerima data pada salah satu buffer yang dimilikinya, dan mungkin meng-copy nya ke buffer lainnya selain melakukan hal yang intelligence, dan mengirimkan ke buffer lainnya di interface jaringan yang lainnya (sisi luar) untuk menuju tujuan paket tersebut. Karena paket keluaran di kirim secara manual, dari interface sisi luar, maka paket akan memiliki alamat IP sama dengan external interface tersebut sebagai source address. Suatu paket yang telah diforwardkan olehj kernel biasanya memiliki soruce address sama dengan original source address. Dengan cara ini (menggunakan proyxy), alamat IP internal telah ditransformasikan menjadi alamat IP eksternal. Ditambah lagi beberapa hal dapat ditambahkan di program proxy ini, misal otentikasi pengguna, dan kompressi.

Salah satu masalah dengan menggunakan proxy adalah menyalurkan data dari internal network ke proxy. Tak ada cara yang portabel untuk melakukan hal ini. Bila diinginkan melakukan telnet, melewati suatu proxy. Maka :

Harus telnet ke mesin proxy tersebut
Mungkin melakukan otentikasi
Barulah melakukan koneksi ke alamat sesungguhnya yang dituju
Suatu Web Browser dapat dikonfifgurasikan secara otomatis untuk menggunakan suatu proxy (awalnya bertujuan untuk caching), tetapi sebagian besar aplikasi yang menggunakan TCP/IP tak dapat secara mudah diubah.
Tetapi pada kernel Linux yang baru dapat dikonfigurasi sehingga dapat mendrop seluruh traffic untuk port tertentu atau untuk alamat IP teretentu pada port network di mesin yang sama. Hal ini dapat dilakukan dengan menggunakan command ipfwadm.

ipfwadm 2.3.0 1996/07/30 Usage : /sbin/ipfwadm -A [direction] command [options] (accounting) /sbin/ipfwadm -F command [options] (forwarding firewall) /sbin/ipfwadm -I command [options] (input firewall) /sbin/ipfwadm -O command [options] (output firewall) /sbin/ipfwadm -M [-s | -l] [options] (masquerading entries) /sbin/ipfwadm -h (print this help information) Command : -i [policy] insert rule (no policy for accounting rule) -a [policy] append rule (no policy for accounting rule) -d [policy] delete rule (no policy for accounting rule) -l list all rules of this category -z reset packet/byte counters of all rules of this cateogry -f remove all rules of this category -p policy change default policy (accept/deny/reject) -s tcp tcpfin udp set measuring timeout values -c check acceptance of IP packet Options : -P protocol (either tcp, udp, icmp, or all) -S address[/mask][port ... ] source specification -D address[/mask][port ... ] destination specification -V address network interface address -W name network interface name -b bidirectional match -e extended output mode -k match TCP packets only when ACK set -m masquerade packets as coming from local host -o turn on kerjel logginf for matching packets -r [port] redirect packets to local port (transparent proxying) -t and xor and/xor TOS field -v verbose mode -x expand numbers (display exact value) -y match TCP packets only when SYN set and ACK cleared

ipfwadm digunakan untuk mendefinisikan aturan pemfilteran pada code firewall di kernel Linux. Jika dikombinasikan denngan suatu INPUT rule dengan option -r (transparent proxying), kernel akan mengirimkan seluruh traffic network yang sesuai dengan rule ke network port di mesin. Sehingga bila telah ada proxy yang mendengar (listening) ke port tersebut, secara otomatis akan merelay traffic network tersebut. Sebagai contoh aturan berikut ini akan melewatkan seluruh traffic outgoing telnet, ke suatu transparent proxy yang berjalan pada firewall dan melakukan listen, pada port telnet

ipfwadm -l -a accept -P tcp -r -S localnet/24 -D 0.0.0.0/0 telnet

Bila destination address (yang ditunjukkan setelah option -D, dalam hal ini 0.0.0.0) diubah, maka dapat dilakukan redirek hanya koneksi tertentu melalui proxy.

Untuk menjalankan transpararet proxy (pada kernel 2.0 ke atas), harus dispesifikasikan beberapa option ketika membangun kernel. Harus dibuat agar code IP firewall menjadi enable, begitu juga option transparent proxy harus enable juga. Walaupun sepintas solusi ini cocok dengan kebutuhan VPN, ada juga kekurangan yaitu :

Harus ditulis code untuk transparant proxy ini, dan implementasi ini sangat khas Linux. Dan setiap protocol harus diproxy dnegan cara yang berbeda
Ketika menggunakan proxy, maka akan kehilangan alamat IP asli dari message, sehingga pengukuran seukirit pada sisi lainnya (misalnya ingin diketahui siapa sebenarnya (atau workstation mana yang mengirim packet) menjadi sia sia, karena hanya akan terlihat alamat IP proxy, dan bukannya alamt IP pengirim asli

top

Penggunaan Real Tunnel
Linux (setidaknya kernel 2.0 ke atas) telah menyediakan fasilitas real tunneling. Fasilitas ini dapat dioperasikan dengan merubah option. Yaitu :
Network firewalls (CONFIG_FIREWALL) [N/y/?] y
IP : Forwarding/gatewaying (CONFIG_IP_FORWARD) [N/y/?] y
IP : Firewalling (CONFIG_IP_FIREWALL) [N/y//?] (NEW) y
IP : tunneling (CONFIG_NET_IPIP) [N/y/m/?] (NEW) m

Ketika membangun fasilitas tunneling sebagai suatu modul (dtemtukan dengan m pada option terakhir), maka modul dapat dimasukkan atau dikelaurkan ketika sistem sedang berjalan. Ini mempermudah ketika melakukan konfigurasi dan uji coba.

Sekali telah dibangun kernel dan modul ini, maka akan ada satu modul untuk tunneling, new_tunnel.o. Modul ini perlu "berkomunikasi" dengan module tunneling pada mesin Linux di sisi jaringan lainnya. Modul yang mengirimkan data akan bertugas memultipleks, dan module penerima (di sisi seberang) akan menangani tugas demultipleks. Kemampuan inilah yang akan digunakan untuk membanguns suatu VPN.


top

Konfigurasi Tunnel
Setelah membangun kernel, dan modul yang bersangkutan, maka sistem harus di-reboot untuk mengaktifkan kernel yang baru ini. Setelah dilakukan hal tersebut, maka dapat digunakan perintah insmod, rmod, dan lsmod untuk memasukkan (insert), menghilangkan (remove), dan melihat modul yang ada (list)
Setelah memasukkan modul new_tunnel.o dengan perintah insmod, maka dapat diperiksa keberhasilan pemuatan modul tersebut dengan menggunakan perintah lsmod. Maka akan ditampilkan hasil sebagai berikut.

Module #pages : Used by:
new_tunnel 1 0

Dan ketika dilakukan perintah cat /proc/net/devm maka akan terlihat divais networking baru yang bernama tun10.

Inter-| Receive | Transmit
face | packets errs drop fifo frame|packets errs drop fifo colls carrier
lo: 18 0 0 0 0 18 0 0 0 0 0
eth0: 3347 0 0 0 0 4009 0 0 0 19 0
tun10: 0 0 0 0 0 0 0 0 0 0 0

top

Divais tun10 dapat digunakan sebagai divais networking normal, dan program ifconfig dapat digunakan untuk mengkonfigurasi dan mengaktifkan divais (interface) ini.

Gambar 2. Koneksi yang biasanya dilakukan untuk VPN
Misal, untuk keperluan percobaan, 2 network yang keduanya dihubungkan ke ISP masing masing. Dua network ini akan dikoneksikan secara tranparant. Misal network pada bagian kiri memiliki address 193.78.174.32 dengan subnetmask 255.255.255.224, dan network yang di sebelah kanan memiliki address 1293.78.174.64 dengan subnetmask yang sama pula 255.255.255.224. Setiap network menggunakan firewall T1 dan T2, yang digunakan untuk menghubungkan ke network, dengan address masing masing ditunjukkan pada gambar yaitu T1 adalah 194.21.134.23 dan T2 adalah 208.34.1.12. T1 memiliki address internal 193.78.174.33. dan firewall T2 memiliki address internal 193.78.174.65. Misal seluruh konfigurasi normal telah dilakukan untuk seluruh network dan akan ditunjukkan perubahan yang dilakukan agar tunneling dapat berjalan.

Pada T1, perlu dilakukan konfigurasi interface tun10, sudah barang tentu modul tunneling telah dimasukkan terlebih dahulu. Sehingga akan tampak

ifconfig tun10 193.78.174.33 netmask 255.255.255.224 up

Interface tunnel memiliki address IP yang sama dengan interface internal real (sebenarnya). Setelah interface dikonfigurasi, maka dapat ditambahkan static routing entry, yang akan memforward seluruh traffic untuk network 193.78.174.64. melalui tunnel :

route add -net 193.78.174.64 netmask 255.255.255.224 gw
208.34.1.12 tun10

Perintah di atas akan menambahkan static route untuk network 193.78.174.64. Seluruh traffic untuk address tersebut akan dikirim ke gateway 208.34.1.12 (IP address sisi luar sisi luar dari T2). Pada T2 dilakukan hal yang sama dengan dibalik

ifconfig tun10 193.78.174.65 netmask 255.255.255.224 up
route add -net 193.78.174.32 netmask 255.255.255.224 gw
194.21.134.23 tun10

Setelah mengkonfigurasi ke dua sisi tunnel seperti ini, seluruh traffic dari network satunya akan dimultipleks dan didemultipleks secara otomatis oleh modul tunneling. Dengan menambahkan static route ini, seluruh proses dilakukan secara transparansi tanpa perlu campur tangan user.

Ke dua network sudah dapat berkomunikasi. Tetapi seluruh data dikirim secara gamblang, sehingga dapat dibaca oleh siapapun yang memiliki akses ke paket yang dikirim (misal dengan tcpdump). Bagian selanjutnya akan dibahas bagaimana memecahkan masalah ini.

top

Privasi
Seperti telah disebutkan, data yang dikirim antar ke dua site tersebut tidak dienkripsi. Untuk keperluan ini dapat digunakan paket public domain, misal SSH. SSH adalah kepanjangan dari Secure Shell, dan program ini mampu melakukan otentikasi ke dua pihak yang melakukan komunikasi dan melakukan ekripsi data yang mengalir. Informasi mengenai SSH dapat ditemukan di

http://www.cs.hut.fi/ssh
Perlu diketahui SSH menggunakan algoritma RSA, yang dipatenkan di USA. Sehingga perlu diperiksa aspek legalitasnya sebelum digunakan.

Penggunaan enkripsi data dan mengirimnya melalui jaringan publik pada beberapa negara adalah ilegal. Sehingga sebaiknya perlu dilakukan klarifikasi dari segi hukum terlebih dahulu. Dengan semakin banyak dipakainya software ekripsi dan makin meluasnya jaringan Internet, maka jumlah negara yang melarang pemakaian enkripsi ini makin bertambah pula. Sebagai contoh, di kalangan negara Eropa para politisi mulai mendiskusikan tentang pemakaian teknologi ini. Kekhawatiran negara-negara ini disebabkan ketakutan akan digunakannya teknologi enkripsi ini untuk mengirimkan pesan rahasia antar teroris yang dapat membahayakan keamanan nasional. Sehingga ingin sekali negara negara tersebut dapat melakukan pengawasan dan dapat membaca seluruh message yang dikirim.

Permasalahan lainnya adalah berkaitan dengan peraturan ITAR di USA. Perangkat lunak enkripsi tergolong amunisi, sehingga terbatas untuk dapat dieksport. Ini berarti perangkat lunak enkripsi yang bermutu tinggi (ingat perangkat lunaknya, bukan algoritmanya), dilarang dieksport. Sehingga versi Netscape internasional hanya menggunakan model enkripsi 40 bit, sedangkan versi yang boleh beredar di USA menggunakan 128 bit.

Karena pelarangan hanya berlaku bagi perangkat lunaknya, dan bukan algoritmanya, maka banyak implementasi dengan enkripsi yang kuat yang dilakukan di luar USA telah beredar. Dan itu legal saja bila dieksport ke USA, walaupun begitu setelah dieksport ke USA, dari USA tak boleh di-reeksport ke negara lainnya lagi.

SSH awalnya ditulis oleh Tatu Yl??nen dari Finlandia. Kemampuan SSH yang penting untuk tunneling adalah :

Metoda otentikasi yang baik. Dengan menggunakan .rhosts bersama-sama dengan hots otentikasi berdasarkan RSA, dan otentikasi murni RSA.
Seluruh komunikasi secara otomatis, dan tranparansi dienkrip. Enkripsi juga bertujuan untuk melindungi dari spoofed packet dan hijacked connection.
Arbitrary port TCP/IP dapat di redirek melalui channel terenkripsi pada kedua arah.
Client RSA melakukan otentikasi mesin server pada awal setiap koneksi untuk melindungi dari trojan horse dan man in the middle attack. Server melakukan otentikasi mesin client dengan menggunakan RSA sebelum menerima otentikasi .rhosts atau /etc/hosts.equiv
Session X11 bahkan dapat diredirek dengan menggunakan SSH ini untuk melindungi dari orang yang mengambil alih suatu session X. Yang terpenting adalah, session dienkripsi di antara client dan server. Sehingga tunneling server tak perlu tahu enkripsi. SSH akan mengenkripsi pay load area pada paket IP yang asli, dan pada bagian penerima akan mendekripsi pay load area ini, dan memberikan pada program aplikasi.
SSH tersedia untuk sebagian besar variant UNIX, dan bekerja untuk platform yang berbeda. Dapat digunakan mesin LINUX pada salah satu ujung dan mesin SPARC atau HP pada sisi yang lainnya. Setelah mendownload dan menginstall SSH, maka akan ada beberapa program. Dua program yang terpenting adalah ssh dan sshd. Kedua paket ini dapat dibandingkan seperti rsh dan rshd yang awalnya ditemukan di UNIX versi BSD.

top

Konfigurasi Secure Shell (SSH)
sshd merupakan program server yang berjalan di background dan mendengar setiap koneksi yang datang (melalui port 22). Ketika suatu client melakukan koneksi, maka akan dilakukan otentikasi, dan jika dinyatakan lolos, maka sshd akan memulai program yang diminta oleh client tersebut. Input dan output program dienkripsi dengan menggunakan key yang telah saling ditukar pada saat negotiating phase, yaitu ketika penyusunan koneksi.
Program ssh adalah program client yang digunakan untuk mengeksekusi program pada remote host. ssh biasanya akan melakukan koneksi ke sshd pada mesin server, dan bertukar informasi otentikasi dan key enkripsi, dan kemudian sshd akan mengeksekusi perintah pada mesin remote. Ketika melakukan eksekusi seluruh pertukaran data antar ssh dan sshd, dienkripsi dengan menggunakan salah satu algoritma.

Untuk keperluan tunneling, ssh memberikan beberapa pilihan tambahan yang dapat digunakan untuk mengenkripsi traffic yang melalui tunnel. Option ini ditunjukkan di manual ssh (silahkan lihat ftp://ftp.mfi.com/pub/sysadmin) dengan option -L dan -R. Keduanya dapat digunakan untuk melakukan redireksi traffic untuk port tertentu ke port tertentu di mesin remote. Traffic yang diredirect ini dienkripsi sebelum dikirim. Option -L, digunakan jika ingin meredirek akses dari port lokal ke suatu port di sistem remote. Gambar 3 menunjukkan kemungkinan setup. Mesin client yang ingin berkomunikasi secara aman dengan mesin server. Untuk memungkinkan hal ini, satu mesin pada local network yang sama bertindak sebagai client (dapat juga mesin yaang sama dengan client), dan menjalankan ssh dengan option -L. Secara lengkap maka perintah akan tampak seperti :

ssh -L portx:server:porty [nama mesin yang menjalankan sshd]

Mesin yang menjalankan ssh akan menjalankan subshell yang akan mendengar ke port x, dan ketika terjadi koneksi pada port tersebut, program ssh akan mengenkripsi dan membelokkan data ke mesin yang menjalalankan sshd pada mesin remote. Mesin ini kemudian akan mendekripsi data dan merelaynya melalui port y pada server.

Dapat juga melakukan pembelokkan secara remote dengaan menggunakan option -R. Dengan option ini, maka dapat diperintahkan pada sshd pada mesin remote untuk memulai ssh dengan option -L yang sesuai. Sisi remote akan membelokkan seluruh traffic pada port tersebut melalui koneksi yang aman antara ssh dan sshd.

Gambar 3. Setup untuk pembelokan ssh.
Dapat juga membangun suatu tunnel, hanya dengan menggunakan SSH, akan tetapi hal ini hanya mungkin bila seluruh sistem dapat diakses secara langsung dari Internet. Bila tidak mungkin, maka dapat digunakan fasilitas tunelling pada Linux. Ketika melakukan instalasi SSH, secara otomatis akan dihasilkan host identification pairs untuk mesin tersebut. Sehingga tak perlu dilakukan hal yang khusus untuk menghasilkan kunci identifikasi mesin ini.

top

Kombinasi SSH dan Tunneling
Ketika mengkombinasikan SSH dan tunneling, terdapat bebeberapa pertimbangan. Ketika menggunakan SSH, maka transparansi akan sedikit hilang. Sehingga mungkin ssh dan sshd tak ingin dijalankan pada setiap mesin pada jaringan lokal. Karena akan menghabiskan waktu untuk memaintenance, dan ssh tak dapat jalan pada setiap plaform. Tempat terbaik untuk menginstall ssh dan sshd adalah pada mesin tunneling. Setelah dilakukan instalasi, maka dapat digunakan perintah ssh -R untuk membelokkan (redirect) port pada mesin di jaringan remote ke port pada mesin di jaringan lokal. Hal ini dilakukan pada tiap mesin tunneling di jaringan.. Bahkan dapat dilakukan mesin tunneling akan menjalankan ssh ketika pertama kali dihidupkan.
Ketika menspesifikasikan ssh -R, harus dispesifikasikan alamat IP (atau hostname, bila local name server memiliki copy dari name mapping pada network lainnya) yang digunakan pada jaringan lain. Dengan mengacu ke gambar 2, maka digunakan alamat IP di jangkauan 193.78.174.0, Dan tidak digunakan alamat IP di luar interface sisi luar dari firewall. Dengan menggunakan alamat ini, maka akan seluruh koneksi akan dipaksa melewati koneksi terenkripsi melalui module tunneling.

Ketika ingin menggunakan dari client suatu jaringan ke server di jaringan lain, maka harus dikoneksi melalui redirect port pada mesin tunneling seperti yang dispesifikasi pada perintah ssh -R. Jadi tak dapat dilakukan koneksi transparant langsung ke remote server untuk membangun koneksi terenkripsi, tetapi harus menggunakan sebuah port pada mesin tunneling lokal. Hal ini menjadi kurang begitu praktis, tetapi akan sebanding dengan hasilnya yaitu koneksi jaringan aman, yang mampu mencegah dilakukakannya snooping data.

Ada hal yang berkaitan dengan sisi sekuriti yang lainnya. Harus diperhatikan apakah resiko ini dapat diterima atau tidak. SSH hanyak akan mengenkrispi pay load area, dari paket IP asli, dan tidak mengenkripsi header information. Dan hal ini tak mungkin dilakukan karena header information berisi address IP, dan port dan hal lainnya. Jika dienkripsi, maka akan menghasikan packet IP yang tidak dideliver. Module tunneling akan mengenkapsulasi paket IP asli pada payload area. Header asli akan dimasukkan ke dalam message terenkapsulasi ini, dan header asli akan berisi alamat IP yang akan digunakan di bagian dalam firewall. Dengan tak tertutupnya informasi ini, maka jaringan dapat diserang dengan IP spoofing attack, karena si penyerang akan melihat jenis address IP manakah yang dipercaya oleh firewall. Hal inilah merupakan alasan lainnya, mengapa tunneling harus menggunakan mesin yang terpisah. Firewall sekarang hanya akan mempercayai satu mesin saja, yaitu satu mesin tunneling, dan akan menolak semua koneksi dari mesin lokal lainnya. Sehingga hal ini mengurangi resiko akan suatu serangan IP spoofing.

Sebetulnya masalah di atas dapat diatasi dengan membangun suatu otentikasi dan enkripsi dalam modul tunelling itu sendiri. Module tunneling seharusnya mengenkripsi payload area dari paket IP yang akan dikirim ke Internet. Dnegan mengenkripsi payload area, modul akan secara otomatis tak hanya mengenkripsi data asli, tetapi juga berikut informasi header, sehingga menyembunyikan address IP internal. Beberapa produk misal WriteProtect keluaran Le Resau, menggunakan modulke tunneling yang memecahkan masalah kedua ini, sehingga memungkinkan terjadinya tunnel yang terkenkrispsi secara benar benar transparan.

top

Penutup
Dengan menggunakan software yang saat ini tersedia di Internet, dapat dibangun suatu Virtual Private Network sendiri. Dengan menggunakan tunnel, dapat disembunyikan address IP internal dari Internet. Satu keuntungan adalah mampunya pemilihan jangkauan IP sendiri untuk penggunaan internal, dan memberikan satu jangkauan IP untuk setiap kantor. Seluruh kemampuan ini telah ada di Linux.
Dengan menggunakan paket lainnya, SSH, dapat dienkripsi data yang dipertukarkan antara 2 situs. Dengan menggunakan algoritma yang sesuai, dapat dibangun suatu komunikasi data yang aman dan otentikasi identitas pada pihak yang terlibat dalam proses komunikasi. Dengan menggunakan mesin tunneling terpisah, dapat mempertinggi otentikasi pada firewall dan membuat berbagai jaringan dapat saling berkomunikasi.

Author : kesepian aka vic

from : yf

semoga bermanfaat....:D:D:D:D

kalo repost dan ngak berguna silahkan dibuang....;);););)

0 comments: