Senin, 18 Juli 2011

connecting pptp client (VPN) on Debian

Okay, setelah sekitar 3 hari ini saya sedang melakukan percobaan mengutak-atik VPN, tentu saja mesin VPN ini bukan dari pabrik, tapi dari hasil ngoprek sendiri, karena satu alsan, TIDAK MENGELUARKAN BIAYA! hehehe....Sempat kerepotan juga sih, tapi akhirnya terpecahkan juga, dengan bantuan serach engine tentunya :D. Setelah searching sana-sini akhirnya ketemu juga jurusnya, dan kini saatnya saya bagikan untuk anda :D.
Jadi begini kasusnya, ada dua buah network yang berbeda (sesuai konsep VPN). Misal network A dan Network B. Masing-masing network tersebut mempunyai Router sendiri (tentu saja) :D. Tujuan dari VPN
tersebut adalah bagaimana klien di Network B bisa konek dengan klien Network A seolah-olah klien Network tersebut satu network dengan klien di Network A. Permasalahan tersebut selesai dengan membuat VPN server pada Server Network A, dan klien Network B tinggal men-Dial ke server VPN tersebut. Dengan konfigurasi tersebut klien pada Network B dapat "lokal-an" dengan klien Network A. Dan konfigurasi VPN dapat dengan sederhana menggunakan PPTP dengan OS Linux (Debian) seperti pada postingan saya yang sebelumnya Install VPN server PPTP Debian .


Okay, sekarang permasalahannya adalah alangkah baiknya jika Server Network B tersebut yang men-dial ke Server VPN Network A, jadi klien pada Network B tidak usah susah-susah men-dial ke Server VPN Netwrok A. Jadi si klien ini tidak tau menahu soal koneksi VPN, pokoknya ketika dia mau "lokal-an" dengan klien Network A, itu akan dengan mudah, seperti dia meng-akses klien sesama lokal Network nya. Disini server-server tersebut menggunakan Debian Linux dan untuk VPN nya menggunakan PPTP. Langsung saja ya, terlalu berbelit-belit :D.

Jadi Skenarionya Server Network B (Debian) akan men-dial Server VPN Network A (yang berfungsi juga sebagai Gateway Server Network A). Saya anggap Server VPN Network A sudah terkonfigurasi, dan tinggal mengkonfigurasi PPTP Client pada Server Debian Network B. Jadi Intinya adalah Install PPTP Client pada Linux (dalam hal ini menggunakan Debian). Oiya, konfigurasi ini saya gunakan untuk Debian Linux via Command Line, jadi bukan via GUI

Langakah pertama adalah menginstall paket pptp

$ sudo apt-get install pptp-linux

Contoh Konfigurasi saya sebagai berikut:
  1. PPTP server name: hanoman.wavepluz.net # kalau tidak mempunyai domain langsung menggunakan IP public nya
  2. VPN User Name : micko #username yang sudah didefinisikan pada Server VPN (Network A)
  3. VPN Password: micko #password yang juga sudah dibuat pada Server VPN (Network A)
  4. Connection name: vpn
Berikutnya buka file /etc/ppp/chap-secrets :

# vi /etc/ppp/chap-secrets

atau

$ sudo vi /etc/ppp/chap-secrets
tambahkan baris berikut:

micko pptpd micko * #server menggunakan nama pptpd

sehingga akan nampak seperti dibawah ini:

# Secrets for authentication using CHAP
# client          server    secret                  IP addresses
   micko         pptpd   micko                    *

Buat file koneksi dengan nama vpn pada /etc/ppp/peers/

# vi /etc/ppp/peers/vpn 

dan tambahkan baris berikut:

pty "pptp hanoman.wavepluz.net --nolaunchpppd" #sesuaikan dengan nama server vpn anda
name micko #username pada VPN server
remotename pptpd #nama server VPN
require-mppe-128
file /etc/ppp/options.pptp
ipparam vpn #nama koneksi

Routing traffic via ppp0

Untuk routing trafik via ppp0 (interface vpn) tambahkan file route-traffic pada /etc/ppp/ip-up.d/:

# vi /etc/ppp/ip-up.d/route-traffic

tambahkan baris berikut:

#!/bin/bash
NET="192.168.1.0/24"
#network lokal pada  Network A
IFACE="ppp0"
#IFACE=$1
route add -net ${NET} dev ${IFACE}

kemudian ubah permision gfile tersebut:

# chmod +x /etc/ppp/ip-up.d/route-traffic

Konfigurasi sudah selesai, langkah berikutnya adalah test koneksi:

# pppd call vpn #nama koneksi di atas tadi

Jika semua konfigurasi sudah benar seharusnya interface ppp0 akan nampak UP dan Remote Server akan memberikan IP Address (bisa dilihat pada VPN Server). Atau bisa juga dengan melihat log:

# tail -f /var/log/messages

hasilnya:

Jun 11 23:38:00 server-B pppd[30088]: pppd 2.4.4 started by root, uid 0
Jun 11 23:38:00 server-B pppd[30088]: Using interface ppp0
Jun 11 23:38:00 server-B pppd[30088]: Connect: ppp0 <--> /dev/pts/4
Jun 11 23:38:03 server-B pppd[30088]: CHAP authentication succeeded
Jun 11 23:38:03 server-B kernel: [37415.524398] PPP MPPE Compression module registered
Jun 11 23:38:03 server-B pppd[30088]: MPPE 128-bit stateless compression enabled
Jun 11 23:38:05 server-B pppd[30088]: local  IP address 192.168.1.2
Jun 11 23:38:05 server-B pppd[30088]: remote IP address 192.168.1.1

Untuk menghentikan koneksi:

# killall pppd

dan untuk membuat semua klien lokal Network B agar bisa mengakses klien Network A tambahkan konfigurasi:

iptables -t nat -A POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 192.168.1/24 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT

Its Done! Nah sekarang anda bisa mengakses klien Network A

VPN PPTP Client pada Debian sudah selesai dikonfigurasi :)

semoga bermanfaat :)   

Tidak ada komentar:

Posting Komentar