Tuesday, 18 February 2014

Mengatasi Blocking Firewall dengan HTTP Tunnel (Dani Firmansyah)

Kita tahu bahwa firewall di pasang di tujukan untuk meningkatkan sekuriti di internal LAN agar tidak di serang dari luar. Meminimalkan port yang terbuka, melakukan allow dan deny access yang lewat serta memasang proxy server agar semua data yang di akses melalui browser bisa terkontrol dengan baik. That is good idea dan tidak salah jika seorang Admin bertindak demikian dan anda yang bukan Admin pun juga tidak perlu menyesali hal itu karena masih banyak jalan menuju ke Roma. Syaratnya cuman satu, kreatifitas.
Kebanyakan Admin yang mengetatkan rule access di LAN dengan menggunakan firewall biasanya menjalankan aplikasi Proxy Server agar semua client yang berada di jaringan tersebut ketika mengakses suatu halaman web dari komputernya selalu termonitor dan memang itu salah satu jalan yang di gunakan oleh Admin untuk mengatasi blocking port yang hanya memperbolehkan akses browsing dan email karena biasanya ketika browsing kita juga tidak hanya melakukan koneksi ke port 80 (www) tapi juga https (443) atau port-port yang lain (tergantung aplikasinya). Sebagai contoh ketika Anda mengakses Webmin manager atau Enzim (hosting manager), ketika login ke admin menu kita harus berkoneksi ke port 9143 atau port lain (tergantung konfigurasi aplikasinya), tentu dengan blocking port seperti yang di terapkan di jaringan kita sangatlah tidak mungkin dan imposible untuk mengakses aplikasi seperti Webmin atau Enzim maka pemecahannya adalah dengan menjalankan Proxy Server. Biasanya proxy server memiliki akses port lebih luas di bandingkan client side.

Lalu apakah HTTP Tunnel itu?
HTTP Tunnel merupakan aplikasi yang menginjinkan Anda mengakses aplikasi seperti telnet, chat, ftp dan aplikasi internet lain melalui port yang di ijinkan yaitu melalui port 80, 8080 atau 3128 yang biasanya menggunakan protokol HTTP dalam melakukan komunikasi data di dalam jaringan komputer dan internet. HTTP Tunnel terdiri dari dua sisi aplikasi yaitu aplikasi client dan aplikasi server. Perlu di ketahui juga ketika Anda melakukan komunikasi data melalui protokol HTTP saat data yang di request telah di kirimkan complete ke browser Anda secara otomatis webserver atau proxy server akan memutuskan koneksi dengan browser Anda. Tentu untuk aplikasi chat seperti Mirc atau telnet hal ini tentu tidak menguntungkan, bisa Anda bayangkan ketika Anda baru mau masuk Dalnet tiba-tiba koneksi Anda terputus.
HTTP Tunnel memang sengaja di buat dalam dua sisi yaitu client dan server yang tujuannya adalah agar koneksi kita tetap Stay Alive dan menjamin koneksi Anda tetap tersambung dengan server tujuan dengan menggunakan keterbatasan yang ada pada protokol HTTP.
Sebagai contoh begini, misal si A ingin chatting di LAN yang berfirewall dengan menggunakan HTTP Tunnel maka pertama dia harus memasang HTTP Tunnel Server di komputer lain dan komputer lain itu tidak di restrict akses koneksinya. Kedua, si A harus menjalankan HTTP Tunnel Client di PC-nya atau di komputer lain yang satu LAN dengan PC si A. Dari LAN si A di peroleh data IP sebagai berikut:
IP PC A                     = 192.168.0.45
Proxy Server di LAN = 192.168.0.1 port 8080
Untuk kemudahan si A menjalankan HTTP Tunnel Client di PC-nya sendiri dan dia juga telah menginstall HTTP Tunnel Server di Server/PC lain yang terkoneksi ke Internet yang IP = 204.13.27.189, kebetulan si A ingin chat di server Dalnet maka pola koneksi yang terjadi adalah:
192.168.0.45 à localhost à 192.168.0.1 port 8080 à 204.13.27.189 à Dalnet
Arus koneksinya adalah dua arah. Oke sekarang kita langsung menuju proses instalasi HTTP Tunnel. 
Untuk HTTP Tunnel for win32, ada tiga file di dalamnya yaitu:
  1. hts.exe (Server Tunnel)  
  2. htc.exe (Client Tunnel)
  3. Cygwin1.dll (required for both)
Bagi Anda  yang ingin menginstall HTTP Tunnel Server di unix/linux bisa menginstallnya dengan cara sebagai berikut:
[xnuxer@lab]$ tar –zxvf httptunnel-3.0.tar.gz
[xnuxer@lab]$ cd httptunnel-3.0   
[xnuxer@lab httptunnel-3.0]$  ./configure
[xnuxer@lab httptunnel-3.0]$  make         

Sampai sini Anda sudah bisa menggunakan HTTP Tunnel dari local directory. Kalau Anda ingin menginstall  HTTP Tunnel dan meletakan di /bin directory ketikkan saja perintah di bawah ini:
   
[xnuxer@lab httptunnel-3.0]#  make check
[xnuxer@lab httptunnel-3.0]#  make install

Tidak ada perbedaan command untuk HTTP Tunnel for linux dengan yang for windows.
Coba Anda perhatikan command helpnya dengan mengetikan hts –h atau htc –h.

Usage: HTS [OPTION]... [PORT]
Listen for incoming httptunnel connections at PORT (default port is 8888).
When a connection is made, I/O is redirected to the destination specified
by the --device, --forward-port or --stdin-stdout switch.

  -c, --content-length BYTES     use HTTP PUT requests of BYTES size
                                 (k, M, and G postfixes recognized)
  -d, --device DEVICE            use DEVICE for input and output
  -F, --forward-port HOST:PORT   connect to PORT at HOST and use it for
                                 input and output
  -h, --help                     display this help and exit
  -k, --keep-alive SECONDS       send keepalive bytes every SECONDS seconds
                                 (default is 5)
  -M, --max-connection-age SEC   maximum time a connection will stay
                                 open is SEC seconds (default is 300)
  -s, --stdin-stdout             use stdin/stdout for communication
                                 (implies --no-daemon)
  -S, --strict-content-length    always write Content-Length bytes in requests
  -V, --version                  output version information and exit
  -w, --no-daemon                don't fork into the background
  -p, --pid-file LOCATION        write a PID file to LOCATION

Report bugs to bug-httptunnel@gnu.org.

Di bawah help command untuk HTTP Tunnel Client:

Usage: HTC [OPTION]... HOST[:PORT]
Set up a httptunnel connection to PORT at HOST (default port is 8888).
When a connection is made, I/O is redirected from the source specified
by the --device, --forward-port or --stdin-stdout switch to the tunnel.

  -A, --proxy-authorization USER:PASSWORD  proxy authorization
  -z, --proxy-authorization-file FILE      proxy authorization file
  -B, --proxy-buffer-size BYTES  assume a proxy buffer size of BYTES bytes
                                 (k, M, and G postfixes recognized)
  -c, --content-length BYTES     use HTTP PUT requests of BYTES size
                                 (k, M, and G postfixes recognized)
  -d, --device DEVICE            use DEVICE for input and output
  -F, --forward-port PORT        use TCP port PORT for input and output
  -h, --help                     display this help and exit
  -k, --keep-alive SECONDS       send keepalive bytes every SECONDS seconds
                                 (default is 5)
  -M, --max-connection-age SEC   maximum time a connection will stay
                                 open is SEC seconds (default is 300)
  -P, --proxy HOSTNAME[:PORT]    use a HTTP proxy (default port is 8080)
  -s, --stdin-stdout             use stdin/stdout for communication
                                 (implies --no-daemon)
  -S, --strict-content-length    always write Content-Length bytes in requests
  -T, --timeout TIME             timeout, in milliseconds, before sending
                                 padding to a buffering proxy
  -U, --user-agent STRING        specify User-Agent value in HTTP requests
  -V, --version                  output version information and exit
  -w, --no-daemon                don't fork into the background

Report bugs to bug-httptunnel@gnu.org.

Setelah semua aplikasi tunnel sudah di install, sekarang Anda siap untuk menggunakannya. Sekarang pelajari cara menggunakan aplikasi server dan clientnya.

HTTP Tunnel Server:

[xnuxer@lab httptunnel-3.0]$ ./hts -F mesra.kl.my.dal.net:7000 8034
[xnuxer@lab httptunnel-3.0]$ ps -ax|grep hts
21910 ?        S      0:00 ./hts -F mesra.kl.my.dal.net:7000 8034
[xnuxer@lab httptunnel-3.0]$

Maksud dari command hts di atas adalah HTTP Tunnel Server akan melakukan koneksi dan mem-forward setiap data yang di kirimkan HTTP Tunnel Client melalui proxy server ke server mesra.kl.my.dal.net dan akan melayani setiap data dari tunnel client melalui port 8034. Untuk pemakai windows, commandnya sama dan tidak ada perbedaan.

HTTP Tunnel Client :
Dengan asumsi kita menjalankan HTTP Tunnel Client di PC kita sendiri. Untuk pemakai windows Anda harus menjalankan tunnel client dari DOS Prompt. Commandnya adalah:

htc –P 192.168.0.1:8080 –F 1080 202.145.0.89:8034

Maksud dari command di atas adalah menjalankan tunnel client dan mem-forward setiap data yang di koneksikan melalui port 1080 dan mengirimkan data tersebut ke HTTP Tunnel Server yang ber-IP 202.145.0.89 port 8034 melalui proxy server local yang ber-IP 192.168.0.1 port 8080.
Ada kalanya proxy server menggunakan autentifikasi user dan password, maka Anda bisa menambahkan option –A ke htc seperti contoh berikut :

htc –P 192.168.0.1:8080 –A user:password –F 1080 202.145.0.89:8034

Mudah bukan? Aplikasi ini juga telah saya coba dan berhasil dengan baik
Oke sukses :) dan Anda telah berhasil menjalankan aplikasi tunnel. Selamat Mencoba!

No comments:

Post a Comment