Linux VPN via PPTP dari Terminal


linux

Sebagai salah satu cara untuk terhubung dengan resource yang ada di kantor ketika kita berada diluar (remote) adalah dengan menggunakan VPN. Ada beberapa jenis VPN, seperti openvpn dan pptp. Kali ini saya akan membahas proses koneksi VPN menggunakan PPTP di linux melalui command line.

Langkahnya adalah :

  1. Memeriksa file yang dibutuhkan
  2. Membuat file konfigurasi
  3. Membuat koneksi
  4. Set default routing

1. Requirements

Untuk dapat terhubung melalui VPN PPTP, ada 3 hal yang harus dimiliki, yakni:

  1. gateway (atau ip) dari servernya (contoh 123.123.123.123)
  2. username (contoh: USER),
  3. password (contoh: rahasia123)

Install pptp-client, pastikan perintah pon dan poff tersedia. Pada beberapa kasus, kedua perintah ini telah terinstall, namun tidak di lokasi yang terekspose oleh environment, seperti pada lokasi /usr/share/doc/ppp/scripts.

2. Konfigurasi

Terdapat dua file yang harus di buat/edit.

Pertama, membuat konfigurasi PPTP. Buat file pada folder /etc/ppp/peers/mypptp, dengan penamaan bebas (contoh disini: mypptp). Isi file tersebut adalah:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
pty "pptp *GATEWAY* --nolaunchpppd"
lock
noauth
nobsdcomp
nodeflate
name *USERNAME*
remotename *PPTP_NAME*
ipparam *PPTP_NAME*
usepeerdns
defaultroute
persist 

Isikan GATEWAY dan USERNAME sesuai dengan konfig yang diberikan, sedangkan isi PPTP_NAME dengan nama filenya. Nama file ini nantinya akan menjadi nama koneksi PPTPnya.

Kedua, edit file /etc/ppp/chap-secrets, tambahkan baris sesuai dengan konfigurasi yang diberikan:

1
2
3
# Secrets for authentication using CHAP
# client    server    secret            IP addresses
*USERNAME* *PPTP_NAME* *PASSWORD* * 

Isikan USERNAME, PPTP_NAME dan PASSWORD dengan nilanya masing-masing. Ingat tanda * pada kolom IP adresses.

3. Koneksi

Untuk melakukan koneksi: pon PPTP_NAME. Atau jika ingin melakukan debugging: pon PPTP_NAME debug dump nodetach Untuk menutup koneksi gunakan: poff PPTP_NAME

Gunakan perintah ip addr untuk melihat apakan interface koneksi sudah (ppp0) sudah up. Jika ppp0 selalu DOWN, bisa jadi dikarenakan ada module kernel yang belum di load. Solusinya adalah jalankan: sudo modprobe nf_conntrack_pptp Jika status interface menjadi UNKNOWN, tandanya koneksi bisa dilakukan.

4. Routing

Agar menggunakan VPN ini sebagai ruting default:

  1. Cek ruting default mengunakan ip route
  2. Hapus ruting default, menggunakan ip route delete default
  3. Jadikan VPN ruting default, menggunakan: ip route add default via *IP_ADDR* dev ppp0 dimana IP_ADDR adalah ip address yang dari route vpn (BUKAN ip server/gateway)