Install OpenVPN di Linux Debian Wheezy

Sesuai dengan salah satu janji saya sebelumnya ke seorang teman, kali ini saya akan membahas cara Install OpenVPN di Linux Debian Wheezy, bisa di server sendiri atau di vps sewaan, yang penting bukan punya orang tanpa ijin 😛

Pertama download OpenVPN di sini.

Ekstrak file openvpn-version.tar.gz kemudian jalankan ini di dalam foldernya:

./configure
make
sudo make install

Jika ada error seperti ini:
“configure: error: no acceptable C compiler found in $PATH”
Install compiler di Debian dengan cara:

sudo apt-get install build-essential

Sebelum mengulang perintah ./configure, biasanya ketika melakukan compile source selalu ada dependency yang dibutuhkan agar prosesnya bisa selesai. Untuk OpenVPN di Ubuntu diperlukan beberapa library yang harus diinstall, diantaranya:
1. sudo apt-get install libssl-dev
2. sudo apt-get install liblzo2-dev
3. sudo apt-get install libpam0g-dev

Setelah install library di atas lanjutkan ./configure kembali, kemudian make dan sudo make install.

Oke, OpenVPN telah terinstall di server.

Agar OpenVPN dapat berjalan ada beberapa hal yang kita perlukan, diantaranya:
  1. File konfigurasi server (server.conf)
  2. File konfigurasi klien (klien.conf)
  3. CA cert
  4. Private key dan Public key untuk server dan klien
Lanjut...

Di sisi server.

I. Pertama, bikin dulu file server.conf. contohnya dapat dilihat di sini. dibawah ini adalah file server.conf di server saya:
port 1194                            #listening port
proto udp                            #protokol yang digunakan
dev tun                              #ip tunneling
server 10.80.0.0 255.255.255.0       #ip subnet untuk server dan klien
ifconfig-pool-persist ipp.txt        #reconnect akan membuat ip klien tidak berubah
push "redirect-gateway"              #routing semua trafik data klien ke server
push "dhcp-option DNS 10.80.0.1"     #routing DNS klien ke server
client-to-client                     #antara klien satu dgn yang lain bisa berkomunikasi
duplicate-cn                         #satu public key bisa digunakan banyak klien
keepalive 10 120                     #ping tiap 10 detik sekali, maks 120 detik akan disconnect
cipher AES-128-CBC                   #enkripsi yang digunakan
comp-lzo                             #trafik data yang lewat akan dikompres
user nobody                          #drop privilege
group nogroup                        #drop privilege
persist-key                          #agar klien dapat reconnect setelah restart
persist-tun                          #agar klien dapat reconnect setelah restart
status openvpn-status.log            #log status openvpn server
log    openvpn.log                   #log openvpn server
verb 3                               #log level (verbose)
ca ca.crt                            #CA cert
cert ikons-server.crt                #Public key server
key ikons-server.key                 #Private key server
dh dh.pem                            #parameter Diffie-Helman
tls-auth ta.key 0                    #mengamankan koneksi openvpn dari dos dan flooding

simpan dengan nama file server.conf (atau terserah selera masing2)

II. Kedua, yang perlu dilakukan adalah membuat CA cert, Private dan Public key server.
Download dulu Easy RSA di sini. atau download langsung di terminal:

git clone https://github.com/OpenVPN/easy-rsa
buka saja folder /easy-rsa/easyrsa3/, di dalamnya ada file executable ./easyrsa
Setelah itu inisialisai PKI dengan CA cert-nya dengan cara:
./easyrsa init-pki
./easyrsa build-ca
masukkan password dan nama/domain server.
setelah selesai maka file ca.crt dapat dilihat di folder /easy-rsa/easyrsa3/pki/
buat parameter Diffie-Helman:
./easyrsa gen-dh
tunggu sampai selesai, file dh.pem dapat dilihat di folder /easy-rsa/easyrsa3/pki/
lalu buat Private key dan Public key server dengan cara:
./easyrsa build-server-full ikons-server nopass
perintah diatas menghilangkan password sehingga ketika server reboot maka openvpn dapat langsung berjalan.
masukkan password yang telah dimasukkan ketika membuat ca.crt diatas. 
file ikons-server.key dapat dilihat di folder /easy-rsa/easyrsa3/pki/private/
file ikons-server.crt dapat dilihat di folder /easy-rsa/easyrsa3/pki/issued/

buat file ta.key dengan cara:
openvpn --genkey --secret ta.key

Setelah itu setting ip forwarding  di server dengan cara:
nano /etc/sysctl.conf
dan ubah salah satu parameter didalamnya seperti berikut:
net.ipv4.ip_forward=1
kemudian lakukan:
sudo sysctl -p /etc/sysctl.conf
dan untuk koneksi di server yang sedang berjalan lakukan juga:
echo 1 > /proc/sys/net/ipv4/ip_forward

lakukan juga iptables terhadap koneksi yang sedang berjalan, lakukan satu persatu:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT   
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

masukkan iptables dan ip forwarding diatas ke dalam file rc.local agar ketika server reboot, iptables dapat langsung berjalan. caranya:
nano /etc/rc.local
 
#!/bin/sh -e
......

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT   
iptables -A FORWARD -j REJECT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

exit 0

kemudian agar DNS request para klien dapat dilakukan oleh server, maka harus diinstall DNSmasq di server.

apt-get install dnsmasq resolvconf
rubah file konfigurasinya dengan cara:
nano /etc/dnsmasq.conf
dan ubah parameter berikut:
listen-address=127.0.0.1,10.8.0.1
bind-interfaces
jangan lupa juga di server di setting DNS server yang digunakan di file /etc/network/interfaces.
nano /etc/network/interfaces
ubah menjadi seperti:
 
# The primary network interface
auto eth0
iface eth0 inet static
        address xxx.xxx.xxx.xxx
        netmask 255.255.255.0
        gateway xxx.xxx.xxx.xxx
        dns-nameservers 208.67.222.222 8.8.4.4 8.8.8.8

DNS yang saya gunakan adalah dari OpenDNS dan Google DNS.
oh iya masukkan juga DNSmasq di rc.local, caranya:

nano /etc/rc.local
masukkan ini persis diatas parameter exit 0:
/etc/init.d/dnsmasq restart

setting di sisi server telah selesai, reboot server.
copy semua file mulai dari server.conf, ca.crt, ikons-server.crt, ikons-server.key, dh.pem dan ta.key ke dalam satu folder, saran saya taruh saja di folder /etc/openvpn/.

jalankan openvpn di server dengan cara:
sudo openvpn /etc/openvpn/server.conf
setelah openvpn jalan, akan ada file openvpn.log, openvpn-status.log dan ipp.txt sesuai dengan file konfigurasi server.conf.

klo mau, masukkan juga ke file rc.local agar openvpn dapat berjalan setelah server reboot.

setelah ini lanjut ke sisi hatiku, eh maksud saya sisi klien.

Di sisi klien

I. Pertama, buat dulu file konfigurasinya, contohnya dapat dilihat di sini. berikut adalah file konfigurasi di pc saya sebagai klien:
client                   #bilang ke server, ini adalah klien       
dev tun                  #ip tunneling
proto udp                #protokol yang digunakan udp
remote ip-server 1194    #ganti ip-server dan port sesuai dengan ip/domain server
resolv-retry infinite    #agar klien selalu ping server
nobind                   #agar klien tidak binding ke port server
user nobody              #drop privilege klien
group nogroup            #drop privilege klien
persist-key              #agar koneksi tersambung kembali ketika reconnect
persist-tun              #agar koneksi tersambung kembali ketika reconnect 
tls-auth ta.key 1        #mengamankan koneksi openvpn dari dos dan flooding
cipher AES-128-CBC       #enkripsi yang digunakan koneksi openvpn
comp-lzo                 #kompresi data trafik 
ca ca.crt                #CA cert
cert ikons-klien01.crt   #public key klien
key ikons-klien01.key    #private key klien

simpan dengan nama klien.conf (atau terserah selera masing2).

II. Kedua,
buat Private key dan Public key untuk klien dengan cara:

./easyrsa build-client-full ikons-klien01 nopass
masukkan password sesuai dengan file ca.crt diatas.
setelah selesai file ikons-klien01.key dapat dilihat di folder /easy-rsa/easyrsa3/pki/private/
dan file ikons-klien01.crt dapat dilihat di folder /easy-rsa/easyrsa3/pki/issued/

setelah selesai copy file klien.conf, ca.crt, ikons-klien01.key, ikons-klien01.crt dan ta.key ke komputer/gadget klien.

biasanya saya menggunakan openvpn klien di OS Windows dan di hp android, sedangkan linux install dari source. semuanya bisa didapatkan di sini.

cara koneksi openvpn di linux:

sudo openvpn klien.conf

seperti ini hasilnya jika sudah terkoneksi:
OpenVPN koneksi klien

coba saja lihat ip publik anda, jika sudah berubah menjadi ip publik server OpenVPN berarti sudah berhasil.

semoga bermanfaat,

salam hangat.
iKONs

4
Leave a Reply

2 Comment threads
2 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
newest oldest most voted
Notify of

Terimakasih min sudah memberikan tutorial openvpn di wheezy. Akan saya praktekkan, kira-kira untuk settingan di virtualbox apakah sama min ? Mohon dibales ya ?

 

For printer review, please your read in <a href=”http://poskowarna.blogspot.com”>Indonesian Printer Review</a>

bravo masbrroo… tutorialnya ajiiibb bgt …pas lg ane juga perlu tutorial yg beginian…mangtabs…trims bg…