Ini merupakan tutorial bagaimana set up OpenVPN di server Ubuntu Feisty. Sebelum melakukan set up pastikan Ubuntu Server sudah terinstal dan berjalan dengan baik. Untuk melakukan instalasi OpenVPN pastikan beberapa dependency package sudah terinstall. Biasanya sih ubuntu akan otomatis menginstall package lain yang dibutuhkan. Namun bila paket yang dibutuhkan tidak terinstall secara otomatis maka bisa dilakukan installasi manual. Paket yang dibutuhkan adalah openssl, lzo, pam. OpenSSL untuk kebutuhan enkripsi data yang dikirim melalui jaringan, LZO merupakan kompressor untuk mengkompress paket data yang dikirim sehingga ukuran paket yang dikirim lebih kecil dan lebih cepat. Sedangkan PAM biasanya sudah diinstall, merupakan paket untuk fungsi otentikasi lokal ke server Linux. Untuk installasi OpenVPN setelah semua siap lakukan langkah sebagai berikut:
- Install OpenVPN server, caranya ketik di terminal “sudo apt-get install openvpn”. Installasi akan mencari paket pada repository, bila tidak tersedia secara lokal atau pada CD installer maka harus terhubung ke internet agar installer dapat mendownload paket yang dibutuhkan. Installasi akan berjalan tunggu hingga selesai.
- Copy file contoh dari folder document OpenVPN ke folder konfigurasi OpenVPN. Caranya ketik di terminal
sudo cp -R /usr/share/doc/openvpn/example /etc/openvpn/ - Masuk ke folder example yang telah di copy ke folder konfigurasi OpenVPN. Caranya ketik di terminal
cd /etc/openvpn/example - Setup Certificate Authority dan server key dimana sertifikat ini harus dimiliki oleh tiap client. Sertifikat merupakan file yang berfungsi sebagai kunci. tanpa file ini maka client tidak akan bisa terhubung. Cara setup sertifikat dan public key sebagai berikut:
sudo ./vars
sudo ./clean-all
sudo ./build-ca
Perintah-perintah diatas akan mengenerate sertifikat dan key yang dibutuhkan. - Selain sertifikat dan public key diatas kita juga perlu menggenerate private key yang akan digunakan oleh server. Ketikkan perintah berikut di terminal
sudo ./build-key-server server.
Jawab yes dengan menekan tombol Ypada pertanyaan
Sign the certificate? [y/n]
dan
1 out of 1 certificate requests certified, commit? [y/n]. - Generate Diffie Hellman dengan perintah
sudo ./build-dh. - Perintah-perintah diatas akan membuat folder keys pada folder saat ini yaitu
/etc/openvpn/examples/keys/
folder ini dimiliki oleh root karena perintah dijalankan dengan sudo. Untuk itu kita perlu mengubah hak akses folder dengan perintah
sudo chmod -R 644 /etc/openvpn/example/keys - Copy file yang dibutuhkan ke folder utama konfigurasi openvpn yaitu dengan perintah
cd keys
sudo cp ca.* /etc/openvpn
sudo cp server.* /etc/openvpn
sudo cp dh1024.pem /etc/openvpn
- Buat file konfigurasi dengan nama server.conf di folder OpenVPN. Berikut contoh dengan menggunakan vim editor. Pada terminal ketik “sudo vim /etc/openvpn/server.conf”. Bila muncul screen baru kosong tekan “A” untuk mode edit masukkan teks konfigurasi berikut:
#plugin untuk membuat OpenVPN client login terlebih dahulu pada server sebelum terhubung
plugin /usr/lib/openvpn/openvpn-auth-pam.so login
#client private key tidak diperlukan karena menggunakan login local
client-cert-not-required
username-as-common-name
#port yang digunakan server Openvpn, secara default berisi port 1194
port 1194
#Settingan protokol yang digunakan. Defaultnya adalah UDP
#namun sebagian besar ISP memblok paket UDP
#sehingga OpenVPN terkadang tidak bisa berjalan pada protokol UDP.
#Ganti tcp-server dengan UDP bila hendak menggunakan protokol UDP.
proto tcp-server
#tipe virtual network yang digunakan, tun untuk tunnel, dan tap untuk bridge mode.
dev tun
#Settingan certificate dan key untuk server
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
#Settingan untuk berjalan sebagai server
#Secara otomatis server akan memiliki IP 10.131.1.1 dan sisanya untuk client
server 10.22.1.0 255.255.255.0
#Agar client yang terputus memperoleh ip yang sama maka data koneksi disimpan pd file
ifconfig-pool-persist ipp.txt
#memberikan routing ke client agar network di routing melalui vpn
#sehingga client dapat mengakses network di belakan vpnserver
push "route 10.22.1.0 255.255.255.0"
#Settingan apakah client dapat saling terhubung atau tidak
client-to-client
keepalive 10 120
#Setting agar koneksi dikompress dan algoritma LZO
comp-lzo
#Untuk keamanan maka aplikasi diubah running user & groupnya
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
Setelah selesai tekan “escape” untuk kembali ke mode normal, lalu tekan “:wq” agar keluar dari vim editor dan menyimpan file. - Jalankan openvpn dengan perintah
sudo /etc/init.d/openvpn start.
Konfigurasi server sudah selesai. Kita sisa melakukan konfigurasi klien. Saya membahas client windows karena sebagian besar client masih menggunakan windows. Berikut langkah konfigurasi klien VPN:
- Download OpenVPN GUI dari http://openvpn.se/download.html
- Install hingga selesai.
- Buat file konfigurasi klien di folder default OpenVPN di “C:\Program Files\OpenVPN\config\”. Caranya buka notepad dan masukkan teks konfigurasi seperti contoh berikut:
#Setting agar user memasukkan user dan password
auth-user-pass
#Setting agar bertindak sebagai client
client
#Tipe device dan protokol yang digunakan
dev tun
proto tcp-client
#Alamat & port remote server OpenVPN yang akan diakses
#Ganti x.x.x.x dengan alamat publik server OpenVPN
remote x.x.x.x 1194
resolv-retry infinite
nobind
persist-key
persist-tun
#Settingan agar menggunakan sertifikat CA
#yang akan dibandingkan dengan server
ca ca.crt
ns-cert-type server
#Settingan untuk kompresi data
comp-lzo
verb 3
Simpan dengan nama client.ovpn di folder config Openvpn. - Jalankan openvpn GUI lalu pada icon OpenVPN Gui di tray klik kanan->Connect. Masukkan username dan password user lokal pada server OpenVPN.
- Bila tidak ada masalah maka client akan terhubung dengan server.
Demikian tutorial set up OpenVPN. Untuk lebih jelas sebaiknya menggunakan manual openvpn dan howto openvpn. Tutorial ini cuma memberi langkah praktis. Saya memilih settingan tidak menggunakan private key untuk tiap klien. Tapi menggunakan autentikasi ke server OpenVPN menggunakan account local pada server. Tiap klien yang terhubung harus memiliki user name local yang berbeda agar tidak terjadi bentrok saat terhubung dengan server. Semoga tutorial ini bisa membantu.
Popularity: 6% [?]








Ryan
http://ahriyan.vavai.net
terima kasih sekali atas artikelnya, ternyata membuat vpn seperti ini tidak terlalu sulit dan cukup bermanfaat.
saya minta ijin untuk mengutip sebagian artikel ini untuk di cantumkan pada blog saya.
tyohan
http://www.thinkrooms.com
Untuk mengkutip artikel silakan saja, selama anda mencantumkan asal artikel ini saya tidak keberatan. Terima kasih.
syamsu
http://syamsu86.blogspot.com
terima kasih ya, i’m trying it now,
syamsu
http://syamsu86.blogspot.com
oh ya, mas kalo seting di blankon lontara apa juga sama caranya ..???
maaf, masih newbie di linux,
soalnya saya mau migrasi ke linux
tyohan
http://www.thinkrooms.com
Harusnya sih sama, tapi perlu diperhatikan untuk penggunaan versi openvpn dan ubuntu yang menjadi basis blankon. Ada kemungkinan perbedaan sedikit bila versi yang digunakan berbeda.
kidnap
http://kidnap.wordpress.com
mas… saya mau tanya kalau auth vpn melalui LDAP server gmn caranya?bisa kasih tutorialnya…karena waktu saya coba pakai openvpn-auth-ldap selalu gagal..
terima kasih
tyohan
http://www.thinkrooms.com
Wah.. saya blm pernah nyobain auth ke LDAP. Tapi sepertinya ada plugin tambahan untuk OpenVPN tapi mungkin juga tidak. Tinggal menambahkan konfigurasi auth ke LDAP di server.conf. tapi syntax yang ditambahkan saya blm tau. Maaf ya. Mungkin anda bisa menemukan dokumentasinya di openvpn.net. Saya sudah lama ga berkutat dengan OpenVPN jadi rada lupa deh. Hehehehe..
arry
mas, gimana caranya agar server dapat mengakses network dibelakang client? trus gimana setingannya kalo kita mau menghubungkan banyak client dengan satu server dan semua client dapat mengakses network dibelakang server, begitu juga server bisa mengakses network dibelakang semua client?
thx, sory kalo banyak nanya . .
hehe . .
tyohan
http://www.thinkrooms.com
agar bisa mengakses network dibelakang client syaratnya ada 2 yaitu client bisa berfungsi sebagai router atau ip forwarding diaktifkan dan client mendapat ip statis bukan dinamis. Hal ini bisa diset dengan mengubah setting server openvpn agar untuk user yang sama diberikan ip address yang sama. Caranya bisa dilihat di openvpn.net. Jangan lupa aturan firewall agar membolehkan akses dari server ke belakang client.
settingan diatas memang untuk server yang dapat menangani banyak client. namun agar client dapat mengakses network dibelakang server prinsipnya sama dengan diatas. Server harus dapat berfungsi sebagai router dan settingan firewall membolehkan client untuk mengakses network di belakang server.
Simple-nya sih seperti itu. Semoga membantu.
Lieur-Euy
Om
pada bagian ini gemana :
Copy file yang dibutuhkan ke folder utama konfigurasi openvpn yaitu dengan perintah
cd keys
sudo cp ca.* server.* dh1024.pem
————————————–
# cp ca.* server.* dh1024.pem
cp: target `dh1024.pem’ is not a directory
————————————–
muncul itu om kenapa yah ?
thanks
tyohan
http://www.thinkrooms.com
sorii.. jangan lieur atuh.. ini mah cuma salah nulis. Kan pesan errornya not directory. Maksudnya ngopi file ca.*, server.*,dan dh1024.pem ke folder konfigurasi openvpn yaitu di /etc/openvpn. Udah saya benerin kok. Sok.. dicoba lagi..
Lieur-Euy
Maksih Kang ! Ganti ach om na pake akang ! btw kalo gak salah itu example itu ada yang :
/1.0 dan
/2.0
Akang Pake na yang mana neh ?
kayakna ada penambahan plugin neh .. ?
Lieur-Euy
Nambih :
sudo cp /usr/share/doc/openvpn/example /etc/openvpn/
apa
sudo cp -Rf /usr/share/doc/openvpn/* /etc/openvpn/
Mohon bimbingan na om eh Kang !
tyohan
http://www.thinkrooms.com
Pake yang versi 2.0 alias versi terbaru. Trus ngopinya pake
sudo cp -R /usr/share/doc/example/ /etc/openvpn/Copy pake option -R maksudnya ngopi rekursif atau kopi folder beserta isinya.
Pokoknya gimana caranya supaya folder example bisa masuk ke /etc/openvpn/
Lieur-Euy
weh masih onlen toh om !
eh kang !
caca
Mas, setingan diatas udah saya coba. Saya ping antar client dengan menggunakan IP virtual mau, tapi kok ping ke server gak mau ya? Dari server juga gak mau ping ke client, gimana thu?
tyohan
http://www.thinkrooms.com
coba cek servernya pake firewall atau tidak, apakah server membolehkan menerima ping. Trus pastiin server ip forwarding sudah diaktifkan. Caranya bisa lihat di
sini atau coba cari di google bagaimana untuk mengaktifkan ip forwarding untuk distro Linux anda.
Kalau sudah semua dan masih gagal coba trace route dari client ke server. Caranya di linux
traceroute ip-serveratau di windowstracert ip-serverPeriksa hasil trace route mati dimana apakah di client atau di server. Jadi bisa ketahuan masalah dimana.
nina
mas, kalo jaringan pake openvpn berarti kan ada header yg ditambahin yg artinya bandwidth juga harus ditambah. kira2 berapa besar tambahan headernya? misalnya kalo ngirim data 64 byte, berapa totalnya kalo pake openvpn? apa ada rumusnya? thx ya!
tyohan
http://www.thinkrooms.com
Kalau header tambahan memang pasti ada, tapi besar tambahannya saya tidak tau juga. Tapi adanya beban tambahan tidak terlalu berarti karena jumlahnya sangat kecil. Bahkan dengan mengaktifkan kompressi pada openvpn saya pernah membuktikan ping antar komputer yang sama dengan openvpn dan tidak hasilnya latencynya lebih kecil pake openvpn. Mungkin karena kompresi tapi saya tidak bisa memastikan.
Lieur-Euy
http://blomada
btw, seru juga neh udah kayak di forum . heheheheh .. oiya tanya lagi donk semua nya dech .. !!
model jaringan yang di pake seperti ini
http://geocities.com/erahman2001/question_openvpn.txt
include pertanyaann disana .. !! sebelumnya terima kasih !!
tyohan
http://www.thinkrooms.com
Kalau lihat dari gambaran kasusnya kayaknya bagusnya nginstall openvpn server di router B dan instal openvpn juga di router A tapi bertindak sebagai client. Settingan clientnya bisa sama dengan tutorial diatas cuma modifikasi ip address nembak ke ip router B.
Jadi nanti kerjanya router A akan terhubung ke router B melalui openvpn network. Jangan lupa di tiap router ditambahin route dari office A ke B dan sebaliknya. Nantinya semua komputer di office A dan B bisa terhubung.
jangan lupa untuk bisa menggunakan remote desktop pastikan di firewall dibukakan port yang dibutuhkan. Kemungkinan firewall aktif di router A dan B. Semoga berhasil.
Lieur-Euy
http://blomada
om i have this error :
—————————
thunderbox:/etc/openvpn# openvpn –config /etc/openvpn/client.conf
Thu Jul 24 22:15:56 2008 OpenVPN 2.0.9 i486-pc-linux-gnu [SSL] [LZO] [EPOLL] built on Sep 20 2007
Enter Auth Username:redwhite
Enter Auth Password:
Thu Jul 24 22:16:08 2008 IMPORTANT: OpenVPN’s default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Thu Jul 24 22:16:08 2008 Cannot load CA certificate file ca.crt (SSL_CTX_load_verify_locations): error:02001002:system library:fopen:No such file or directory: error:2006D080:BIO routines:BIO_new_file:no such file: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
Thu Jul 24 22:16:08 2008 Exiting
thunderbox:/etc/openvpn#
—————————–
plase advs ! thanks
tyohan
http://www.thinkrooms.com
file ca.crt ga ketemu. Pastiin file ca.crt dikopi dari server openvpn-nya trus masukin ke /etc/openvpn/
Yogie
http://www.ple-q.com
Itu gimana maksudnya?
tyohan
http://www.thinkrooms.com
Maksudnya virtual private network yang dibuat akan memiliki IP range 10.22.1.1 - 10.22.1.254.
Jadi Ip pertama 10.22.1.1 itu akan dimiliki server dan sisanya akan diberikan kepada client yang terhubung. Semoga membantu
Yogie
http://www.ple-q.com
Oohh.. soalnya antara command dan comment beda tuh