Instalasi dan Konfigurasi Server OpenVPN di GNU/Linux Ubuntu
Langkah-langkah untuk instalasi dan konfigurasi OpenVPN di komputer server adalah sebagai berikut:
Untuk menginstal server VPN dengan OpenVPN dibutuhkan beberapa paket-paket ekstra pendukung diantaranya: liblzo1, liblzo-dev, libssl-dev, vtun dan opnnssl.
# apt-get install liblzo1 liblzo-dev libssl-dev vtun and openssl
Download OpenVPN dari source code di alamat http://openvpn.net/. Pada tulisan ini dibuat menggunakan OpenVPN versi 2.0.9. Salin hasil download ke folder /usr/local/src
# cp openvpn-2.0.9.tar.gz /usr/local/src/
Buka dan ekstrak file source code
# cd /usr/local/src
- tar zxvf openvpn-2.0.9.tar.gz
Kompilasi dan instalasi OpenVPN
# cd /usr/local/src/openvpn-2.0.9
- ./configure
- make
- make install
Menggunakan Menuconfig untuk mengaktifkan TUN/TAP Support
# cd /usr/src/linux-headers 2.6.22-14-generic
- make menuconfig
- Pilih Device Drivers dan tekan Enter
- Pilih Network device support dan tekan Enter,
- Pada pilihan Network Device Support aktifkan Universal TUN/TAP device driver support dengan menggunakan spacebar dengan memberikan pilihan module. Dimana pemilihan ke mode module akan mengakibatkan TUN/TAP hanya akan bekerja apabila dibutuhkan
Konfigurasi Server OpenVPN
Mempersiapkan key pada OpenVPN dapat dilakukan dengan bantuan tools easy-rsa, dimana tools tersebut terdapat di /usr/share/doc/openvpn/examples. Salin tools tersebut ke direktori /etc/openvpn/
# cp –Rf /usr/share/doc/openvpn/examples/easy-rsa/* /etc/openvpn/
Edit file vars di /etc/openvpn
# mcedit /etc/openvpn/vars
Tambahkan parameter berikut:
export D=”/etc/openvpn”
export KEY_CONFIG=”$D/openssl.cnf”
export KEY_DIR=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY=ID
export KEY_PROVINCE=JT
export KEY_CITY=Surabaya
export KEY_ORG=”UBAYA”
Keterangan:
- export D=”/etc/openvpn” adalah direktori utama yang digunakan oleh semua file konfigurasi server VPN ditentukan berada pada /etc/openvpn.
- export KEY_CONFIG=”$D/openssl.cnf ” adalah file yang akan digunakan sebagai pembuat kunci sertifikat keamanan pada server dan client yaitu openssl.cnf dan file tersebut ditentukan berada pada direktori /etc/openvpn.
- export KEY_DIR=”$D/keys” adalah semua file yang berupa sertifikat atau kunci keamanan yang dibuat oleh openssl.cnf yaitu ca.crt, ca.key, server.crt, server.c.r, server.key, client1.crt, client1.csr, client1.key, dh1024.pem diletakkan pada folder keys dalam /etc/openvpn.
- export KEY_SIZE=1024 adalah panjang kunci keamanan pada server yang dibuat sebesar 1024 bit dan maksimum adalah 2048 bit. (semakin besar jumlah bit untuk kunci dibuat, maka semakin lama waktu yang dibutuhkan untuk memproses pembuatan kunci tersebut). Panjang kunci tersebut akan digunakan untuk membuat Diffie-Hellman key atau yang dikenal dengan dhxxxx.pem (xxxx = panjang kunci)
- export KEY_COUNTRY=”ID” adalah identitas client berada atau berasal dari negara mana. Dituliskan inisial ”ID” adalah Indonesia.
- export KEY_PROVINCE=”JT” adalah identitas client berada atau berasal dari popinsi mana. Dituliskan inisial ” JT ” adalah Jawa Timur.
- export KEY_CITY=”Surabaya” adalah identitas client berada atau berasal dari kota mana. Dituliskan ” Surabaya”.
- export KEY_ORG=”UBAYA” adalah identitas client berada atau berasal dari organisasi mana. Dituliskan ”UBAYA”.
- export KEY_EMAIL=”die_xy@yahoo.co.id” adalah identitas client berupa email.
Pembuatan Certificate Authority (CA)
# cd /etc/openvpn/
# . ./vars
# ./clean-all
# ./build-ca
Generating a 1024 bit RSA private key
..++++++
…..++++++
writing new private key to ‘ca.key’
—–
You are about to be asked to enter information that will be
Incorporated into your certificate request.
What you are about to enter is what is called a Distinguished
Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [ID]:
State or Province Name (full name) [JT]:
Locality Name (eg, city) [Surabaya]:
Organization Name (eg, company) [UBAYA]:
Organizational Unit Name (eg, section) []:Elektro
Common Name (eg, your name or your server’s hostname)[]:Server
Email Address [die_xy@yahoo.co.id]:
Pembuatan Diffie-Hellman Key
# ./build-dh
Generating DH parameters, 1024 bit long safe prime, generator 2
This is going to take a long time
……………………………………………..+…………….++*++*++*
Pembuatan Certificate dan Key untuk server OpenVPN
# cd /etc/openvpn/
# ./build-key-server server
Generating a 1024 bit RSA private key
……………………………………++++++
……++++++
writing new private key to ‘server.key’
—–
You are about to be asked to enter information that will be incorporated into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [ID]:
State or Province Name (full name) [JT]:
Locality Name (eg, city) [Surabaya]:
Organization Name (eg, company) [UBAYA]:
Organizational Unit Name (eg, section) []:Elektro
Common Name (eg, your name or your server’s hostname) []:Server
Email Address [die_xy@yahoo.co.id]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:Ubaya
Using configuration from /etc/openvpn/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName : PRINTABLE:’ID’
stateOrProvinceName : PRINTABLE:’JT’
localityName : PRINTABLE:’Surabaya’
organizationName : PRINTABLE:’UBAYA’
organizationalUnitName: PRINTABLE:’Elektro’
commonName : PRINTABLE:’Server’
emailAddress :IA5STRING:’die_xy@yahoo.co.id’
Certificate is to be certified until May 21 21:27:40 2018 GM
(3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Pembuatan Certificate dan Key untuk client OpenVPN
# cd /etc/openvpn/
# ./build-key client1
Generating a 1024 bit RSA private key
……………++++++
………..++++++
writing new private key to ‘client1.key’
—–
You are about to be asked to enter information that will be
incorporated into your certificate request.
What you are about to enter is what is called a Distinguished
Name
or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
—–
Country Name (2 letter code) [ID]:
State or Province Name (full name) [JT]:
Locality Name (eg, city) [Surabaya]:
Organization Name (eg, company) [UBAYA]:
Organizational Unit Name (eg, section) []:Elektro
Common Name (eg, your name or your server’s hostname) []:Server
Email Address [die_xy@yahoo.co.id]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:Ubaya
Using configuration from /etc/openvpn/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName : PRINTABLE:’ID’
stateOrProvinceName : PRINTABLE:’JT’
localityName : PRINTABLE:’Surabaya’
organizationName : PRINTABLE:’UBAYA’
organizationalUnitName: PRINTABLE:’Elektro’
commonName : PRINTABLE:’client1′
emailAddress :IA5STRING:’die_xy@yahoo.co.id’
Certificate is to be certified until May 21 21:30:53 2018 GMT
(3650 days)
Sign the certificate? [y/n]:y
1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated
Pembuatan certificate dan key untuk client2 dan client3 pada server OpenVPN menggunakan cara yang sama dengan pembuatan certificate dan key untuk client1, hanya saja untuk commonName-nya harus menggunakan nama yang berbeda antar client.
Pemindahan Keys dan Certificate untuk Server dan Client OpenVPN
Setelah membuat key dan certificate, diperoleh key dan certificate yang disimpan di direktori “keys”. Pindahkan key dan certificate tersebut pada direktori /etc/openvpn. Untuk lebih jelasnya dapat dilihat tabel berikut ini.
| Nama File | Lokasi Pemindahan | Kegunaan | Rahasia |
| ca.crt | server + client | Sertifikat root CA | Tidak |
| ca.key | Server | Key root CA | Ya |
| Dh{n}.pem | Server | Parameter DH | Tidak |
| Server.crt | Server | Sertifikat server | Tidak |
| server.key | Server | Key server | Ya |
| client1.crt | Client | Sertifikat client1 | Tidak |
| client1.key | Client | Key client1 | Ya |
| client2.crt | Client | Sertifikat client2 | Tidak |
| client2.key | Client | Key client2 | Ya |
| client3.crt | Client | Sertifikat client3 | Tidak |
| client3.key | Client | Key client3 | Ya |
Untuk server OpenVPN dibutuhkan file dh1024.pem, ca.* dan server.* yang akan dipindahkan ke folder /etc/openvpn dari /etc/openvpn/keys dengan cara:
# cd /etc/openvpn/keys
# cp dh1024.pem /etc/openvpn
# cp ca.* /etc/openvpn
# cp server.* /etc/openvpn
Salin konfigurasi server.conf OpenVPN yang terdapat di folder /usr/share/doc/openvpn/examples/sample-config-files dengan cara:
# gunzip –c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz > /etc/openvpn/server.conf
Edit server.conf OpenVPN menggunakan editor mc:
# mcedit /etc/openvpn/server.conf
mode server
tls-server
port 5000
proto udp
dev tap
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig 10.8.0.1 255.255.255.0
ifconfig-pool 10.8.0.2 10.8.0.11 255.255.255.0
keepalive 10 120
cipher AES-128-CBC
comp-lzo
status openvpn-status.log
verb 3
Keterangan :
- mode server dan tls-server adalah menandakan bahwa komputer ini bertindak sebagai server pada jaringan OpenVPN.
- port 5000 adalah port yang digunakan oleh jaringan adalah port 5000 (ini bisa diubah sesuai kebutuhan).
- proto udp adalah protokol yang digunakan dan diproteksi adalah UDP karena digunakan untuk aplikasi VoIP. Sedangkan pada protokol TCP pada komunikasi VoIP hanya digunakan sebagai proses signaling saja jadi tidak perlu diproteksi secara khusus. Oleh karena itu digunakan protokol UDP dan digunakan port 5000. Untuk menggunakan protokol TCP tinggal mengganti proto UDP dengan proto TCP. (Keterangan: OpenVPN ini saya implementasikan ke jaringan VoIP)
- dev tap adalah perangkat jaringan virtual yang dibuat pada saat terjadinya koneksi secara peer-to-peer pada VPN tunnel menggunakan OpenVPN. Modul yang digunakan adalah modul interface tap dan diberikan nama tap, karena model jaringan yang digunakan adalah model jaringan Ad-Hoc sehingga tidak memerlukan fasilitas routing. Sedangkan modul interface TUN digunakan apabila jaringan menggunakan model infrastruktur karena dibutuhkan fasilitas routing yang merupakan implementasi modul interface TUN.
- ca ca.crt adalah tempat penyimpanan file CA umum (ca.crt) pada komputer server berada pada direktori /etc/openvpn/.
- cert server.crt adalah tempat penyimpanan file sertifikat server (server.crt) pada server berada pada direktori /etc/openvpn/
- key server.key adalah tempat penyimpanan file Key server (server.key) pada komputer server berada pada direktori /etc/openvpn/.
- dh dh1024.pem adalah tempat penyimpanan file alogaritma Diffie-Hellman (dh1024.pem) pada komputer server berada pada direktori /etc/openvpn/.
- cipher AES-128-CBC adalah adalah mode enkripsi yang digunakan pada jaringan Openvpn yaitu cipher AES-128-CBC.
- ifconfig-pool 10.8.0.2 10.8.0.11 255.255.255 adalah ip pool atau range ip yang disediakan oleh server OpenVPN yaitu mulai 10.8.0.2 sampai 10.8.0.11 dengan subnet 255.255.255.0
- keepalive 10 120 adalah memeriksa koneksi dengan cara mengirimkan data (seperti perintah ping) dengan durasi setiap 10 detik dan apabila server OpenVPN tidak merespon selama 120 detik dinyatakan client down (mati).
- comp-lzo adalah metode kompresi data pada tunnel yang digunakan yaitu LZO ( Lempel Ziv Oberhumer). LZO sudah ter-install secara otomatis pada saat meng-install software OpenVPN.
- status openvpn-status.log adalah file tempat menyimpan semua log hasil koneksi dari client ke server OpenVPN.
- verb 3 adalah jenis tampilan log yang akan digunakan pada saat koneksi.








gilangbro 9:39 am on 16 February 2010 Permalink |
konfigure untuk client di windows gmn gan???
dikmansn 12:37 pm on 16 February 2010 Permalink |
windows? hehehe… belum nyoba :9 tapi ada e-booknya cara instal, setting dan kerjanya? berminat? alamat e-mail? thx
henry 8:50 pm on 9 January 2011 Permalink |
Minta tolong kirimin ebooknya juga dunk. untuk Server dan Client Ubuntu
Thanks
dikmansn 9:49 am on 22 February 2011 Permalink |
Ada alamat e-mail?
witdiarta 2:45 pm on 31 January 2011 Permalink |
minat donk mas,,,, tutorial e-booknya
dikmansn 9:50 am on 22 February 2011 Permalink |
Ada alamat e-mail?
faniuncu 12:24 am on 14 March 2011 Permalink |
mas boleh mnta ebook yang server dan client buat ubuntu ga???terima kasih
emailnya panjulidris.07@gmail.com
dikmansn 9:21 am on 24 March 2011 Permalink |
Mohon maaf baru balas, silahkan menuju link berikut :
http://www.eazyupload.net/s12JJ4L0
artikel dewasa 2:09 am on 15 March 2011 Permalink |
mau dong e-book utk server ubuntu dan client windows jayadi.hendra@yahoo.co.id
dikmansn 9:19 am on 24 March 2011 Permalink |
Mohon maaf baru balas, silahkan menuju link berikut :
http://www.eazyupload.net/download/s12JJ4L0/190481185X.zip.htm
ikhwan 11:11 am on 9 April 2011 Permalink |
ane juga minat dung ebooknya…
kirim ke 1khw4n55@gmail.com
tq..
indrihadi 11:35 am on 8 July 2011 Permalink |
boss, ane kebingungan neh, udah insatll openvpn server di ubuntu server tapi kok client masih ngk bisa konek ya, saya pake openvpn client di windows mohon pencerahan
registery 11:56 pm on 5 November 2011 Permalink |
Masih bingung nerapinnya
yuda 6:45 am on 6 December 2011 Permalink |
gan minat ebooknya, boleh donk dikirim makasih y
derry adhi 9:19 pm on 22 December 2011 Permalink |
mas, punya konfigurasi buat clientnya sekalian gak ? biar bs langsung connect ke settingan server yang mas kasih di atas ? saya buth banget neh
terima kasih sebelumnya yaaa
Dikmansn 10:12 am on 26 December 2011 Permalink |
Dear mas Derry, Untuk settingan client openVPN sudah ada. Silahkan dicari dihalaman blog saya dan dicoba. Terima kasih
dedik dafiyanto 9:41 am on 7 January 2012 Permalink |
minta tutornya juga donk gan…. yang untuk ubuntu.
email ane d.messanger@yahoo.com