Tuesday, 30 October 2012

ssh via proxy


Skenario yg dilakukan disini adalah bahwa komputer anda berada dibelakang firewall yang membatasi semua akses keluar kecuali via proxy. Jika anda adalah admin proxy tsb, anda bisa menambahkan baris berikut ini pada /etc/squid/squid.conf.
lqman@proxy:~$ sudo mcedit /etc/squid/squid.conf
acl sshviaproxy port 22
http_access allow CONNECT sshviaproxy
Untuk lebih jelasnya mengenai acl pada proxy, sebaiknya anda membaca tulisan saya yang inidulu.
Setelah itu baru kita bisa menggunakan software bantuan bernama corkscrew untuk melakukan tunnel koneksi TCP melalui proxy dengan menggunakan methode CONNECT. Sama seperti netcat, Corkscrew membaca inputan dari stdin (yaitu keybord) dan kemudian menuliskannya pada stdout (dalam hal ini adalah stream) pada waktu terjadi koneksi.
Asumsi model network yg ada adalah sbb :


Sistem ini di-Implementasi-kan dg cara sbb :
  1. Install corkscrew
  2. root@constantine:~# apt-get install corkscrew
  3. Setting corkscrew
  4. Jika proxy yang anda gunakan menggukanan authentifikasi, maka anda harus membuat file tambahan (dlm contoh ini nama filenya adalah auth) yg berisi username dan password yg anda miliki. 
    lqman@blackbox:~$ touch /home/useranda/.auth
    lqman@blackbox:~$ mcedit /home/useranda/.auth
    useranda:passwordanda
  5. Setting ssh-client untuk tunneling
  6. Pada Linux yang kita lakukan sekarang adalah memerintahkan ssh untuk melakukan koneksi ke sebagian host / seluruh host dengan melalui proxy. Caranya adalah dengan mengedit (atau membuat jika belum ada) file /home/useranda/.ssh/config, dan tambahkan baris-baris berikut ini.
    lqman@blackbox:~$ mcedit /home/yourusername/.ssh/config
    Host *
    ProxyCommand corkscrew proxyanda portproxyanda %h %p /home/useranda/.auth
    Keterangan :
    a. Gantilah proxyanda dan portproxyanda sesuai dengan setting proxy yg anda gunakan.
    b. Apabila proxy anda TIDAK menggunakan authentifikasi, maka hilangkan tulisan/home/useranda/.auth pada file diatas.
    Setting yang baru saja kita lakukan adalah menyuruh ssh untuk melakukan koneksi via proxy untuk semua host (Host *), apabila anda menginginkan settingan yang lebih spesifik, maka anda bisa meng-explore syntax corkscrew sbb :
    Host host-tujuan
    ProxyCommand corkscrew proxy proxyport %h %p [authfile]
    keterangan :
    host-tujuan : ip address host tujuan atau * untuk semua host tujuan.
    proxy : ip address komputer yang bertindak sbg HTTP proxy.
    proxyport : port HTTP proxy.
    %h : host tujuan, biarkan saja berisi %h.
    %p : port tujuan, biarkan saja berisi %p.
    [authfile] : file yg berisi username & password yg digunakan utk authentifikasi pd proxy – Optional.
    Pada Windows dengan menggunakan putty tinggal definisikan proxy pada settingan putty.
  7. Test koneksi SSH anda
  8. lqman@blackbox:~$ ssh lqman@mirror.ee.its.ac.id
    The authenticity of host 'mirror.ee.its.ac.id ()' can't be established.
    RSA key fingerprint is 65:5b:d0:f0:8c:c0:f7:97:d0:49:43:60:a8:43:5d:19.
    Are you sure you want to continue connecting (yes/no)?yes
    Warning: Permanently added 'mirror.ee.its.ac.id' (RSA) to the list of known hosts.
    Welcome [to] Debian GNU/Linux lenny/sid [at] eleanor.ee.its.ac.id
    lqman@mirror.ee.its.ac.id’s password:
    Jika sudah terlihat spt tulisan diatas, maka berarti anda berhasil melakukan tunneling koneksi ssh via proxy.

No comments:

Post a Comment