OPEN MIND FOR THE BETTER LIFE

Insya Alloh bermanfaat…

  • Kicauan

  • RSS ARSIP PRIBADI

    • Sebuah galat telah terjadi; umpan tersebut kemungkinan sedang anjlok. Coba lagi nanti.
  • Arsip

  • Blog Stats

    • 217,639 hits
  • maping visitor

  • save our future

  • indonesia sekarang

  • bandwidth test

    Test your Internet connection speed at Speedtest.net

  • Top Rank

OpenVPN Server & OpenVPN Client Konfigurasi (Linux)

Posted by zulqarnain pada November 24, 2010


vpn-buying
OpenVPN adalah aplikasi open source untuk Virtual Private Networking (VPN), dimana aplikasi tersebut dapat membuat koneksi point-to-point tunnel yang telah terenkripsi.OpenVPN menggunakan private keys, certificate, atau username/password untuk melakukan authentikasi dalam membangun koneksi. Dimana untuk enkripsi menggunakan OpenSSL. OpenVPN adalah aplikasi open source untuk Virtual Private Networking (VPN), dimana aplikasi tersebut dapat membuat koneksi point-to-point tunnel yang telah terenkripsi. OpenVPN menggunakan private keys, certificate, atau username/password untuk melakukan authentikasi dalam membangun koneksi. Dimana untuk enkripsi menggunakan OpenSSL. Bagi kebutuhan personal biasanya sebagai jalur untuk mengakses data yang bersifat pribadi misal dari server lokal untuk bisa di akses dimanapun selama masih bisa terhubung internet & untuk corporate biasanya banyak sekali manfaatnya diantaranya domain server, mail server , ftp server, share bandwidth & masih banyak lagi yang tidak dapat saya sebutkan satu persatu silahkan untuk mencari sendiri pada search engine andalan anda. Untuk melengkapi penjelasan di atas berikut saya illustrasikan gambar cara kerja VPN.
Itulah beberapa penjelasan apa sebenarnya VPN & untuk apa manfaat maupun kegunaan OpenVPN itu bagi personal maupun sebuah corporate. Mudahan pembaca lebih sedikit tahu tentang apa itu OpenVPN yang awal mulanya awam menjadi lebih sedikit tahu & yang sedikit ngerti menjadi lebih tahu :d, setelah tahu apa itu OpenVPN saatnya untuk melakukan cara konfigurasi VPN server & konfigurasi pada client untuk terhubung pada server VPN.

Di sisi Server :

1. Diasumsikan anda berada pada mode akses root (#)
root@zulqarnain# cd /usr/local/src/ (pindah direktori untuk proses penginstallan source)
root@zulqarnain-laptop:/usr/local/src#

2. Download paket pendukung OpenVPN yakni file LZO (Lempel-Ziv-Oberhumer) yang diperuntukkan sebagai kompresi data. Instalasi untuk artikel saat ini saya menggunakan versi 2.0 silahkan di unduh atau bisa menggunakan wget :

root@zulqarnain-laptop:/usr/local/src# wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.00.tar.gz

3. Setelah itu kompile source, terlebih dahulu download source  di sini : http://www.openvpn.net/release/openvpn-2.0.9.tar.gz atau bisa menggunakan perintah wget kemudian di lanjutkan untuk mengekstrak file.
root@zulqarnain-laptop:/usr/local/src# wget http://www.openvpn.net/release/openvpn-2.0.9.tar.gz
root@zulqarnain-laptop:/usr/local/src# tar zxvf openvpn-2.0.9.tar.gz
root@zulqarnain-laptop:/usr/local/src# cd openvpn-2.0.9
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9# ./confgiure && make && make install
Bagi pengguna Ubuntu:
Untuk pengguna di lingkungan Ubuntu dapat langsung melakukan perintah berikut ini :
root@zulqarnain-laptop:/usr/local/src# apt-get install openvpn
tunggu sampai source berhasil di install atau di kompile terhadap system operasi kita. Apabila tidak ada pesan error pada proses instalasi source atau melalui apt-get, maka selanjutnya adalah mulai konfigurasi openvpn tersebut terutama untuk generate key autentikasi buat koneksi VPN. Cari folder easy-rsa di dalam file source yang tadi kita download atau bisa juga menggunakan perintah :
root@zulqarnain-laptop:/usr/local/src# locate easy-rsa
atau
root@zulqarnain-laptop:/usr/local/src#whereis easy-rsa
4. Dikarenakan pada folder tesebut terdapat file-file konfigurasi untuk membuat key VPN, setelah menumakannya segera anda masuk ke dalam folder tersebut versi 2.0.9 terdapat dua versi yakni 1.0 & 2.0 tinggal anda sesuaikan saja atau bisa dibaca-baca pada official webnya sebagai bahan pertimbangan. Dalam pembahasan kali ini saya menggunakan 2.0 untuk openvpn 2.0.9 tersebut.
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0/#
edit file vars
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0/# vi vars  atau nano vars
sesuaikan konfigurasi anda :
==========cut======================

 

export KEY_COUNTRY=

export KEY_PROVINCE=

export KEY_CITY=

export KEY_ORG=

export KEY_EMAIL=

Misal bisa diisi dengan parameter seperti ini:

================ cut ==========================

export KEY_COUNTRY=”INDONESIA”

export KEY_PROVINCE=”KALTIM”

export KEY_CITY=”BALIKPAPAN”

export KEY_ORG=”CYBER”

export KEY_EMAIL=”zulqarnain.04@gmail.com”

5.Selanjutnya kita akan membuat diffie-hellman key yang akan digunakan untuk enkripsi, autentikasi dan key exchange. Proses ini akan memakan waktu beberapa saat tergantung berapa bit enkripsi yang digunakan. Standardnya kita akan menggunakan 1024 bit enkripsi.
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# ./build-dh
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# ./build-ca
6.Untuk mensetting environment sesuai dengan konfigurasi yang ada di /usr/local/src/openvpn-2.0.9/easy-rsa/vars, kita jalankan perintah:
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# source vars
NOTE: when you run ./clean-all, I will be doing a rm -rf on /usr/local/src/openvpn-2.0.9/easy-rsa/easy-rsa/keys
Proses di atas akan menghasilkan file ca.crt, ca.key , dan file df1024.pem.
Pada saat proses perintah ./buil-ca kita akan diminta untuk mengisikan beberapa parameter seperti di bawah ini:
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) [INDONESIA]:
State or Province Name (full name) [KALTIM]:
Locality Name (eg, city) [BALIKPAPAN]:
Organization Name (eg, company) [CYBER]:
Organizational Unit Name (eg, section) [ ]: PROJECTVPN
Common Name (eg, your name or your server’s hostname) [ ]: UBUNTU
Email Address [zulqarnain.04@gmail.com]:
(Perlu di  ingat apabila kita ingin beberapa parameter di atas ingin disamakan dengan beberapa konfigurasi pada vars maka cukup memberikan tanda/karakter “.” tanpa tanda kutip)
Jika kita lihat, parameter defaultnya sama persis dengan yang sudah kita edit di dalam file /usr/local/src/openvpn/easy-rsa/vars. Setelah langkah-langkah di atas,  sekarang kia bisa membuat certificate/key pair. Yang pertama akan kita buat adalah certificate untuk server yang kita beri nama VPN-Server: Oh, ya, sampai titik ini kita belum meninggalkan direktori /usr/local/src/openvpn-2.0.9/easy-rsa/. Jadi pastikan bahwa kita masih berada di direktori tersebut dengan perintah pwd. Jika belum, ganti segera ke direktori tersebut.
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# ./build-key-server VPN-Server
Generating a 1024 bit RSA private key
………..++++++
………………++++++
writing new private key to ‘VPN-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) [INDONESIA]:
State or Province Name (full name) [KALTIM]:
Locality Name (eg, city) [BALIKPAPAN]:
Organization Name (eg, company) [CYBER]:
Organizational Unit Name (eg, section) [ ]:PROJECTVPN
Common Name (eg, your name or your server’s hostname) [ ]:VPN-Server
Email Address [zulqarnain.04@gmail.com]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password [ ]: <—- password untuk authentikasi
An optional company name [ ]: <— optional untuk nama personal atau perusahaan
Using configuration from /usr/local/src/openvpn-2.0.9/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’INDONESIA’
stateOrProvinceName :PRINTABLE:’KALTIM’
localityName :PRINTABLE:’BALIKPAPAN’
organizationName :PRINTABLE:’PROJECTVPN’
commonName :PRINTABLE:’VPN-Server’
emailAddress :IA5STRING:’zulqarnain.04@gmail.com’
Certificate is to be certified until Oct 9 14:06:48 2019 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
Sedangkan untuk membuat certificate/key pair untuk client, menggunakan tool berbeda, misal kita beri nama dengan VPN-Client:
root# ./build-key VPN-Client
Generating a 1024 bit RSA private key
………..++++++
………………++++++
writing new private key to ‘VPN-Client.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) [INDONESIA]:
State or Province Name (full name) [KALTIM]:
Locality Name (eg, city) [BALIKPAPAN]:
Organization Name (eg, company) [CYBER]:
Organizational Unit Name (eg, section) [ ]: PROJECTVPN
Common Name (eg, your name or your server’s hostname) [ ]:VPN-Client
Email Address [zulqarnain.04@gmail.com]:
Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password [ ]: <——- isikan password anda
An optional company name [ ]: <——– isikan dengan nama company/identitas perusahaan anda
Using configuration from /usr/local/src/openvpn-2.0.9/easy-rsa/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName :PRINTABLE:’INDONESIA’
stateOrProvinceName :PRINTABLE:’KALTIM’
localityName :PRINTABLE:’BALIKPAPAN’
organizationName :PRINTABLE:’PROJECTVPN’
commonName :PRINTABLE:’VPN-Client’
emailAddress :IA5STRING:’zulqarnain.04@gmail.com’
Certificate is to be certified until Oct 9 14:06:48 2019 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
7. Pada pembuatan dua key di atas, kita perhatikan pada bagian commonName, di sini kita bisa berikan dua nama yang berbeda agar server bisa mengenali client yang mengautentikasi diri ke server. Jadi di sini kita menggunakan dua nama berbeda untuk server dan client. Sampai di sini kita sudah membuat semua key yang kita butuhkan untuk keperluan instalasi VPN. Lalu pindah semua key yang dibutuhkan ke direktori baru yang akan kita buat untuk mempermudah manajemen file.
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0 # cp -Rf /usr/local/src/openvpn-2.0.9/easy-rsa /etc/openvpn/
Buat file konfigurasi untuk server dengan nama server.conf dan simpan di dalam direktori /etc/openvpn. Isi file konfigurasi tersebut seperti:
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# nano /etc/openvpn/server.conf
ifconfig 10.4.0.1 255.255.255.0
dev tap
tls-server
ifconfig-pool 10.4.0.100 10.4.0.120 255.255.255.0
mode server
max-clients 20
push “route 10.0.40.0 255.255.0.0 10.4.0.1”
keepalive 120 600
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/VPN-Server.crt
key /etc/openvpn/easy-rsa/2.0/keys/VPN-Server.key
dh /etc/openvpn/easy-rsa/2.0/keysdh1024.pem
Pada konfigurasi di atas, ip address untuk tunnel VPN di sisi server adalah 10.4.0.1, sedangkan untuk client akan dialokasikan sebanyak 20 ip address mulai range 10.4.0.100 sampai dengan 10.4.0.120. Lalu client mengambil setting routing ke network 10.0.0.40/24 (network wireless – lihat gambar bagan di awal) sehingga clientbisa mengakses semua device di range ip address 10.0.40.0/24 melalui VPN server 11.22.33.44. Setelah itu jalankan daemon server OpenVPN agar berjalan di background process.
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# openvpn –config /etc/openvpn/server.conf &
Setelah itu cek settingan TAP/TUN kita sudah terbuat atau belum pada network interfaces seperti di bawah ini :
root@zulqarnain-laptop:/usr/local/src/openvpn-2.0.9/easy-rsa/2.0# ifconfig
=====================cut====================================

 

tap0      Link encap:Ethernet  HWaddr 86:97:77:c7:78:f3
inet addr:10.4.0.1  Bcast:10.4.0.255  Mask:255.255.255.0
inet6 addr: fe80::8497:77ff:fec7:78f3/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:6285 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B)  TX bytes:587225 (587.2 KB)
Bila tap0 seperti di atas muncul maka konfigurasi anda sudah benar & bisa melakukan koenksi VPN dari client.

Di sisi Client (menggunakan Windows XP) :

Seperti yang disebutkan di awal, untuk client saya menggunakan laptop dengan OS Windows XP. Untuk instalasi OpenVPN209 GUI 1.0.3 cukup mudah. Cukup dengan mendownload file http://openvpn.se/files/install_packages/openvpn-2.0.9-gui-1.0.3-install.exe.
Setelah selesai instal program OpenVPN tersebut, download beberapa file yang dibutuhkan yang berada di server & masukkan ke dalam direktori C:\Program Files\OpenVPN\config melalui tranfer file FTP,  File-file tersebut adalah:
/etc/openvpn/easy-rsa/2.0/keys/VPN-Client.crt
/etc/openvpn/easy-rsa/2.0/keys/VPN-Client.key
/etc/openvpn/easy-rsa/2.0/keys/ca.crt
/etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
Kemudian buat file dengan nama client.ovpn dan simpan di C:\Program Files\OpenVPN\config. Isinya adalah sebagai berikut:
remote 10.0.2.2 1194
tls-client
pull
float
dev tap
resolv-retry infinite
nobind
dh “C:\\Program Files\\OpenVPN\\config\\dh1024.pem”
ca “C:\\Program Files\\OpenVPN\\config\\ca.crt”
cert “C:\\Program Files\\OpenVPN\\config\\VPN-Client.crt”
key “C:\\Program Files\\OpenVPN\\config\\VPN-Client.key”
10.0.2.2 pada konfigurasi di atas adalah ip address server VPN (lihat kembali bagan pada gambar di awal).
tls-client mendeklrasikan bahwa client ini akan mengautentikasi dengan menggunakan TLS.
pull konfigurasi ini akan mengambil semua konfigurasi yang dideklarasikan di server untuk client dengan opsi push.
float memperbolehkan partner VPN mengubah remote ip address.
dev tap di sini mendeklarasikan interface tunneling yang akan digunakan yaitu TAP.
resolv-retry parameter ini digunakan jika OpenVPN tidak berhasil meresolve nama domain, maka akan melakukan request ulang dalam sekian detik sesuai konfigurasinya. Pada konfigurasi ini kita setting untuk tidak terbatas dengan parameter infinite.
nobind memungkinkan client untuk menggunakan sembarang port (hanya untuk client).
Sebenarnya masih banyak parameter untuk konfigurasi client, tetapi nanti akan saya bahas kapan-kapan jika ada waktu luang.
Jalankan OpenVPN GUI dengan klick Start -> All Programs -> OpenVPN -> OpenVPN GUI :
klik kanan pada icon bergambar openvpn seperti pada gambar berikut :
setelah itu klik tanda panah, sampai muncul tampilan proses authentikasi seperti di bawah ini.
setelah proses semua itu selesai saatnya untuk melakukan ping ke ip tunnel / tap0 pada server openvpn yang beralamatkan IP 10.4.0.1
Apabila muncul ip client & reply dari server seperti gambar di atas maka konfigurasi server & client anda sudah benar, silahkan menikmati jalur private melaui jalur publik.
moga bermanfaat…
refrensi :

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: