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:

1. 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.
2. 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/
3. Masuk ke folder example yang telah di copy ke folder konfigurasi OpenVPN. Caranya ketik di terminal cd /etc/openvpn/example
4. 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.
5. 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].
6. Generate Diffie Hellman dengan perintah
sudo ./build-dh.
7. 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
8. 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
9. 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.
10. 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:

1. Download OpenVPN GUI dari http://openvpn.se/download.html
2. Install hingga selesai.
3. 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.
4. Jalankan openvpn GUI lalu pada icon OpenVPN Gui di tray klik kanan->Connect. Masukkan username dan password user lokal pada server OpenVPN.
5. 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.
Diposting oleh Hadi Yudhitia
Virtual Private Network merupakan teknologi yang memungkinkan dua komputer yang berada di belakang firewall dapat saling terhubung secara dua arah, bagaikan dalam sebuah LAN.
OpenVPN merupakan salah satu produk untuk tujuan ini yang dikenal karena kemudahan dalam instalasi dan konfigurasinya. Berikut ini petunjuk instalasinya:

Server
Sebuah server yang memiliki IP publik tetap diperlukan sebagai server VPN:

# apt-get install openvpn
# cd /etc/openvpn
# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 easy-rsa
# cd easy-rsa

Edit vars pada bagian

KEY_COUNTRY
KEY_PROVINCE
KEY_CITY
KEY_ORG
KEY_EMAIL

Kemudian jalankan

# source ./vars
# ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh
# cd keys
# cp ca.crt ca.key dh1024.pem server.crt server.key ../..
# cd ../..
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .
# gunzip server.conf.gz
# mv server.conf openvpn.conf

Atur konfigurasinya di /etc/openvpn/openvpn.conf

..
proto tcp
client-to-client
...

Restart daemonnya:

# /etc/init.d/openvpn start

Pantau aktifitasnya dengan cara:

# tail -f /var/log/daemon.log

Selanjutnya pembuatan file sertifikat untuk masing-masing klien VPN:

# cd /etc/openvpn/easy-rsa
# source ./vars
# ./build-key bogor

Kirim ca.crt, bogor.crt, dan bogor.key ke client, Anda bisa menggunakan email dengan melampirkan attachment. Lakukan hal serupa untuk klien VPN lainnya, misal untuk cabang bekasi, karawang, dst.

Client
Selanjutnya di komputer klien dipasang juga paket openvpn yang sama, hanya beda di konfigurasi.

# apt-get install openvpn
# cd /etc/openvpn

Letakkan ca.crt, bogor.crt, dan bogor.key di sini.

# mv bogor.crt client.crt
# mv bogor.key client.key
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf openvpn.conf

Edit openvpn.conf, sesuaikanlah dengan server VPN Anda, atau bisa juga langsung menyebutkan IP publik-nya:

..
proto tcp
remote vpn.rab.co.id 1194
..

Lalu restart daemon-nya:

# /etc/init.d/openvpn restart

Perhatikan prosesnya:

# tail -f /var/log/daemon.log

Nantinya akan muncul network device tun0:

# ifconfig tun0

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.54 P-t-P:10.8.0.53 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:123 errors:0 dropped:0 overruns:0 frame:0
TX packets:139 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:73514 (71.7 KB) TX bytes:20273 (19.7 KB)

Lakukanlah hal serupa untuk komputer klien lainnya, dan cobalah ping satu sama lain.

Selamat mencoba.
Diposting oleh Hadi Yudhitia
Pada Server

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/keys/VPN-Server.crt
key /etc/openvpn/keys/VPN-Server.key
dh /etc/openvpn/keys/dh1024.pem



Menjadi:

ifconfig 10.4.0.1 255.255.255.0
dev tap
server 10.4.0.0 255.255.255.0
float
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/keys/VPN-Server.crt
key /etc/openvpn/keys/VPN-Server.key
dh /etc/openvpn/keys/dh1024.pem



Di sini saya menghilangkan parameter tls-server, ifconfig-pool 10.4.0.100 10.4.0.120 255.255.255.0, dan mode server dan cukup saya gantikan dengan server 10.4.0.0 255.255.255.0. Karena parameter server akan secara otomatis diterjemahkan sebagai TLS server, dan block ip address yang dicantumkan adalah range ip address yang akan diberikan kepada OpenVPN client.


Pada Client

Konfigurasi sebelumnya:

remote 11.22.33.44 1194
tls-client
pull
float
dev tap
resolv-retry infinite
nobind
dh "C:\\Program Files\\OpenVPN\\dh1024.pem"
ca "C:\\Program Files\\OpenVPN\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\Client.crt"
key "C:\\Program Files\\OpenVPN\\Client.key"



Menjadi:

remote 11.22.33.44 1194
client
float
dev tap
resolv-retry infinite
nobind
dh "C:\\Program Files\\OpenVPN\\dh1024.pem"
ca "C:\\Program Files\\OpenVPN\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\Client.crt"
key "C:\\Program Files\\OpenVPN\\Client.key"



Untuk tls-client saya ubah menjadi cukup client karena secara otomatis akan berjalan di atas TLS. Dan untuk parameter pull juga bisa dihilangkan, karena otomatis routing yang saya butuhkan dari client akan di-push dari OpenVPN server.

Setelah itu restart OpenVPN server dan reconnect dari OpenVPN client.
Diposting oleh Hadi Yudhitia
Pertama-tama install gcc dan make terlebih dahulu.

[root@openvpn ~]# yum install gcc make

Setelah itu tambahkan repo dari dag sesuaikan dengan versi OS 32 bit atau 64bit untuk ceknya gunakan perintah :

[root@openvpn ~]#uname -a

untuk versi 32 bit

[root@openvpn ~]# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.i386.rpm

[root@openvpn ~]# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.i386.rpm

untuk versi 64 bit

[root@openvpn ~]# wget http://dag.wieers.com/rpm/packages/rpmforge-release/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

[root@openvpn ~]# rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm

Setelah itu baru install openvpnnya :

[root@openvpn ~]# yum install openvpn

[root@openvpn ~]# cp -r /usr/share/doc/openvpn-2.0.9/easy-rsa/ /etc/openvpn/

Kalau udah selesai tinggal buat kita buat sertifikat nya :

[root@openvpn ~]# cd /etc/openvpn/easy-rsa/2.0

[root@openvpn ~]# chmod 755 *

[root@openvpn ~]# source ./vars

[root@openvpn ~]# ./vars

[root@openvpn ~]# ./clean-all

[root@openvpn ~]# ./build-ca (pada common name isi aja sesuka hati)

[root@openvpn ~]# ./build-key-server server (pada common name di isi “server” tanpa tanda kutip)

[root@openvpn ~]# ./build-dh

Kemudian konfigurasi servernya :

[root@openvpn ~]# cd /etc/openvpn

[root@openvpn ~]# nano server.conf

isikan konfigurasi dengan contoh di bawah ip server dan port sesuaikan dengan server anda :

local 67.68.556.123 #- sesuaikan dengan IP anda
port 1234 #- ganti port sesuai dengan keinginan anda
proto udp #- bisa udp atau tcp
dev tun
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/server.crt
key /etc/openvpn/easy-rsa/2.0/keys/server.key
dh /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.1.0 255.255.255.0
#-ifconfig-pool-persist ipp.txt
push “redirect-gateway def1″
push “dhcp-option DNS 208.67.222.222″
push “dhcp-option DNS 4.2.2.1″
keepalive 5 30
comp-lzo
persist-key
persist-tun
status server-tcp.log
verb 3

kalau sudah coba jalankan openvpn (kalau konfigurasi bener maka status OK :

[root@openvpn ~]# service openvpn start

bila sudah jalan enable ip forward dan buat rules iptables NAT nya :

[root@openvpn ~]# echo 1 > /proc/sys/net/ipv4/ip_forward

[root@openvpn ~]# iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -j SNAT –to 67.68.556.123

[root@openvpn ~]# /etc/init.d/iptables save

Server udah ready sekarang tinggal buat sertifikat untuk kliennya :

[root@openvpn ~]# cd /etc/openvpn/easy-rsa/2.0

[root@openvpn ~]# source ./vars

[root@openvpn ~]# ./vars

[root@openvpn ~]# ./build-key masterklik (misalkan nama client masterklik pada common name di isi masterklik)

Semua file config ada di directory /etc/openvpn/easy-rsa/2.0/keys silahkan di download ke PC dan buatkan file config untuk client tersebut dijadikan dalam satu folder dan simpan ke C:\Program Files\OpenVPN\config

dan buat file dengan extention .ovpn pakai notepad yang isinya :

client
dev tun
proto udp
remote 67.68.556.123 1234#- sesuaikan dengan ip server dan port yang digunakan
resolv-retry infinite
nobind
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450
persist-key
persist-tun
ca ca.crt
cert masterklik.crt
key masterklik.key
;auth-user-pass
comp-lzo
verb 3
Diposting oleh Hadi Yudhitia
VPN (Virtual Private Network), perpanjangan dari VPN sepertinya mewakili seperti apa fungsinya, adanya jalur khusus (tunnel) untuk mengamankan/mengirimkan data/informasi dengan menggunakan media jaringan atau Internet. Dari perangkat lunak yang gratisan maupun sampai produk yang harganya cukup mahal yang sudah diembedded dengan perangkat keras, seperti Cisco, FortiNet dan lainnya menunjukkan teknologi ini benar-benar sampai sekarang dibutuhkan. Benar ngak sih? Baiklah.

OpenVPN salah satu perangkat lunak VPN berlisensi GNU/GPL, yang akan kita gunakan. Pemamfaatan pustaka (library) OpenSSL untuk mengengkripsi data yang ditransfer, dengan kata lain fitur cipher-cipher (SHA1+DES, 3DES, RC4, AES) OpenSSL lainnya bisa dimamfaatkan juga. Ups, silahkan cari info detil ya.

Shorewall, salah satu alat bantu untuk mengatur penseleksian keluar masuk paket, menggunakan iptables.

2. Instalasi Openvpn
Distro linux yang digunakan (CentOS), shorewall, openssl berjalan OK

$ sudo yum -y install openssl openvpn
{tunggu hingga 100 % komplit}

$ cp -r /usr/share/doc/openvpn/easy-rsa /etc/openvpn/
$ cd /etc/openvpn/easy-rsa
$ vim vars
[sunting berkas vars, sesuaikan parameter]
export D=`pwd`
export KEY_CONFIG=$D/openssl.cnf
export KEY=$D/keys
export KEY_SIZE=1024
export KEY_COUNTRY=ID
export KEY_PROVINCE=NS
export KEY_CITY=MEDAN
export KEY_ORG="Antar Media Network"
export KEY_EMAIL="deRegen@antarmedia.net"
export KEY_OU="RnD"
export KEY_COMMON="vpn.antarmedia.net"
--- end of file ---

$ source ./vars
$ ./build-ca
$ ./build-key-server amnet
$ ./build-key myclient1
$ ./build-key myclient2
$ ./build-dh

Setelah proses pembeharuan key selesai dilakukan, selanjutnya siapkan berkas konfigurasi yang dibutuhkan.

$ vim /etc/openvpn/amnet.conf
port 1194
dev tun
local dev.antarmedia.com
proto udp
verb 5
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/amnet.crt
key /etc/openvpn/easy-rsa/keys/amnet.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
server 172.16.1.0 255.255.255.0
persist-key
persist-tun
status /etc/openvpn/openvpn-status.log
keepalive 10 120
comp-lzo
user nobody
group nobody
max-clients 10
cipher AES-128-CBC
--- end of file ---

$ chown -R nobody:nobody /etc/openvn/
$ chwon nobody:nobody /etc/openvpn/openvpn-status.log

3. Shorewall Konfigurasi
$ vim /etc/shorewall/zones
vpn ipv4

$ vim /etc/shorewall/rules
ACCEPT loc $FW udp 1194
ACCEPT net $FW udp 1194
ACCEPT vpn loc tcp 25,80,110,3128
REDIRECT vpn 3128 tcp www - !172.16.1.0/24

$ vim /etc/shorewall/tunnels
openvpnserver:1194 net 0.0.0.0/0

$ vim /etc/shorewall/masq
eth0 tun0 72.232.21.251

Catatan:
Generate key untuk client sebaiknya dibeda-bedakan, hal ini juga akan menghasilkan pengalokasian ip yang berbeda. Client dapat menggunakan OpenVPN GUI (http://openvpn.se)

Berkas konfigurasi OpenVPN pada lingkungan Windows XP Profesional SP 2 diletakkan (C:/Program Files/OpenVPN/config/myclient1.ovpn)

client
dev tun
proto udp
remote dev.antarmedia.com 1194
resolv-retry infinite
nobind
persist-key
persist-tun
pull
ca ca.crt
cert myclient1.crt
key myclient1.key
comp-lzo
verb4
cipher AES-128-CBC
--- end of file ---

Clients yang terhubung melalui terowongan vpn, tetap bisa mengakses situs dan termonitor dalam berkas squid.log. Openvpn diinstall di mesin yang berfungsi sebagai firewall juga.
Diposting oleh Hadi Yudhitia
Ilustrasi VPN


Anggap network A adalah network tokoh utama dan network B adalah network departemen X. Network A ( kita asumsikan ) mempunyai lokal net ID 192.168.10.0/24 dan network B mempunyai lokal net ID 172.17.17.0/24. Komputer tokoh utama mempunyai alamat IP 10.10.10.103 untuk terhubung ke internal gateway network B dan internal gateway pada network B mempunyai alamat IP 10.10.10.104 yang terhubung dengan komputer tokoh utama. Untuk lebih memudakan pemahaman, anggap saja IP 10.10.10.103 dan 10.10.10.104 adalah alamat IP publik ( walau sebenarnya bukan ), sehingga seolah-olah komputer tokoh utama dengan internal gateway network B terhubung melalui jaringan internet.

Supaya tokoh utama bisa ‘masuk’ sebagai member network lokal B, maka sang tokoh utama perlu membuat suatu tunnel diantara posisinya dengan internal gateway network B. Tunnel inilah yang akan berkomunikasi dan menjembatani antara network A ( network lokal tokoh utama ) dan network B ( network lokal departemen X ). Fungsi tunneling inilah yang akan dilaksanakan oleh VPN. Bisa kita lihat, network tunneling antara network A dan network B hanyalah berupa network virtual ( yang tidak berwujud secara fisik dan bersifat virtual karena hanya untuk komunikasi dalam tunneling itu saja ). Disini net ID yang akan digunakan sebagai tunneling ( atau bisa kita katakan sebagai net ID virtual network yang akan dibuat oleh VPN ) adalah 10.3.0.0/24.

Sebagai informasi tambahan, internal gateway network B menggunakan sistem operasi Linux Fedora Core 6 dan PC yang digunakan oleh tokoh utama menggunakan sistem operasi Windows. Konfigurasi sistem ini tidak mutlak harus demikian dan hanya digunakan pada studi kasus ini saja. Konfigurasi pada sistem operasi lainnya bisa dibaca pada http://openvpn.net.

Nah, persiapan dan background cerita untuk kasus kali ini telah selesai dijelaskan. Kini sudah saatnya kita memasuki penerapan dan pemecahan masalah kasus ini.



Tahap pertama, yang kita butuhkan sudah jelas, yaitu melakukan instalasi VPN
1. Download source file openVPN untuk Linux Fedora Core 6 di http://openvpn.net/download.html. File ini mempunyai nama openvpn-2.0.9.tar.gz ( ketika naskah ini ditulis, rilis terakhir OpenVPN adalah versi 2.0.9 ).
2. Ekstrak source file OpenVPN ini menggunakan perintah :
# tar -zxvf openvpn-2.0.9.tar.gz

3. Masuk ke direktori hasil ekstraksi OpenVPN menggunakan perintah :
# cd openvpn-2.0.9

4. Jalankan perintah configure untuk melakukan pemeriksaan dan pengkonfigurasian installer OpenVPN sesuai dengan sistem yang Anda gunakan.
# ./configure

5. Jika ditemui kesalahan ketika menjalankan perintah configure yang disebabkan karena tidak ditemukannya modul LZO ( modul yang digunakan untuk melakukan kompresi data dalam transmisi data menggunakan OpenVPN ), ulangi proses configure dengan menambahkan opsi –disable-lzo sehingga perintahnya menjadi sebagai berikut :
# ./configure –disable-lzo

Jika Anda menggunakan opsi –disable-lzo, maka Anda tidak bisa menggunakan kemampuan kompresi LZO ketika Anda menggunakan OpenVPN nantinya. Jika Anda ingin menggunakan LZOketika menjalankan OpenVPN, Anda harus mendownload modul ini terlebih dahulu.
6. Jalankan perintah ‘make’ untuk mengkompilasi source code OpenVPN
# make

7. Jalankan perintah ‘make install’ untuk menginstalasi kode binary hasil kompilasi source code OpenVPN ke system Linux Anda.
# make install

Sampai disini tahapan instalasi OpenVPN telah selesai. Pastikan bahwa tidak ditemukan kesalahan selama proses instalasi berlangsung. Jika masih ditemui kesalahan, maka tugas Anda untuk menyelesaikan masalah-masalah tersebut, he he he

Tahap berikutnya adalah tahapan konfigurasi. Untuk melakukan konfigurasi, VPN perlu melakukan setting terhadap beberapa path variabelnya ( istilah Windows-nya environtment variable nya ). Setting ini bisa dilakukan manual atau dilakukan secara otomatis. Karena sudah tersedia mekanisme otomatisnya, kita nggak perlu susah-susah lagi melakukan setting manual. Kita cukup menjalankan file dengan nama ‘vars’. File ini berada di $direktori_ekstrak_source_openvpn/easy_rsa. Cara menjalankannya adalah sebagai berikut :
# cd easy_rsa
# . vars

Semua environment variables secara otomatis akan diset oleh OpenVPN.

Langkah berikutnya adalah membersihkan semua konfigurasi awal bawaan OpenVPN ( sebagai langkah antisipasi saja ) untuk menghindari crash dengan konfigurasi yang baru.
# ./clean-all

Tahap berikutnya adalah membuat certificate awal dari OpenVPN. Analoginya dengan ijasah SMA adalah membuat blanko ijasahnya, sehingga nantinya sertifikat tersebut bisa didelegasikan ke client yang akan menggunakan sambungan OpenVPN. Perintah ini dijalankan sebagai berikut :
# ./build-ca

Pada tahap ini, Anda bisa membiarkan semua isian dengan isian default, kecuali isian common name, ( disarankan ) isilah dengan nama server yang Anda gunakan.

Langkah berikutnya adalah membuat key untuk servernya sendiri terlebih dahulu. Sebagaimana client yang membutuhkan key untuk melakukan koneksi dengan server-nya, si server sendiri juga harus mempunyai key untuk OpenVPN nya sendiri. Untuk melakukan hal itu, perintah yang digunakan adalah :
# ./build-key-server

OpenVPN akan meng-generate key untuk server OpenVPN –nya sendiri. Sebagaimana langkah sebelumnya, isian yang lain bisa dibiarkan defalt dan isian common name diisi dengan nama server Anda.

Langkah berikutnya adalah melakukan build-dh. Perintah yang digunakan adalah sebagai berikut :
# ./build-dh

Setelah melakukan build-dh, langkah berikutnya adalah meng-generate beberapa key lainnya untuk klien. Untuk membedakan, Anda beri saja nama untuk key klien dengan nama klien. Misal saya disini ( di Unibraw ) menggunakan nama unibraw-client1
# ./build-key unibraw-client1

Anda bisa meng-generate beberapa key sesuai kebutuhan. Seperti langkah sebelumnya, common name-nya sebaiknya disamakan dengan nama clientnya ( atau disamakan dengan nama key nya ) menjadi common name : unibraw-client1.

Nah, sampai tahap ini, urusan bikin key dan tetek bengeknya udah beres. Fuuhhhh…..silahkan minum dulu dan tarik nafas panjang untuk merileks-kan pikiran Anda sesaat.

Udah…? Kalau udah, monggo dilanjutkan ke tahap konfigurasi server…

Pertama kali melakukan instalasi OpenVPN, saya juga nggak tau gimana isi konfigurasi OpenVPN tersebut. Mau nyonto siapa, juga belum ada yang punya. Syukurlah ternyata di source code OpenVPN sudah ada contoh konfigurasinya. So, tinggal di-kopi-paste, trus diutak-atik, he he he File konfigurasi ini berada pada direktori $ direktori_ekstrak_source_openvpn/sample-config-files
# cd sample-config-files

File konfigurasi server mempunyai nama server.conf. OpenVPN secara default akan mencari file ini pada direktori yang sama dengan lokasi file biner OpenVPN itu sendiri ( yang notabene berada di direktori /usr/local/sbin ). Jika Anda tidak mau susah-susah mengarahkan OpenVPN ke direktori baru ini, ya kopi aja file ini ke direktori /usr/local/sbin
# cp server.conf /usr/local/sbin
# cd /usr/local/sbin

Setelah server.conf disalin ke /usr/local/sbin, kini buka file tersebut kemudian lakukan konfigurasi untuk beberapa hal sebagai berikut :

port : 2222

Port digunakan sebagai port komunikasi OpenVPN. Anda bisa menggunakan sembarang port, asal tidak kres dengan port yang digunakan aplikasi lain dan port tersebut sudah aktif dan bisa digunakan untuk melakukan komunikasi.

proto : udp

Pengaturan ini digunakan untuk protokol komunikasinya. Secara default, OpenVPN menggunakan UDP, tapi Anda bisa saja menggunakan TCP, tergantung mana yang dibuka oleh administrator jaringan lokal Anda.

cert /usr/local/sbin/server.crt
key /usr/local/sbin/server.key

Dua isian di atas adalah isian default untuk certificate dan key nya. Namanya harus Anda sesuaikan dengan nama certificate dan key yang telah Anda buat sebelumnya. Karena sebelumnya nama certificate dan key saya samakan dengan nama server menjadi unibraw, maka di komputer saya konfigurasinya menjadi :

cert /usr/local/sbin/unibraw.crt
key /usr/local/sbin/unibraw.key

server 10.8.0.0 255.255.255.0

Isian ini digunakan sebagai NetID OpenVPN. Server OpenVPN sendiri secara otomatis akan mengambil alamat IP paling depan dari NetID ini dan semua kliennya akan diberikan IP secara dinamis berdasar range ini. Jika disesuaikan dengan kasus di awal, maka mestinya, isian disini menjadi :

server 10.3.0.0 255.255.255.0

Dan server OpenVPN secara otomatis akan mengambil IP 10.3.0.1 netmask 255.255.255.0

push “route [net_ID]“

Isian digunakan untuk melakukan routing dari jaringan lokal OpenVPN ( dalam kasus ini 10.3.0.0 ) ke jaringan tujuan ( dari kasus di awal, misal lokal NetID departemen X adalah 10.0.0.0 ), maka isian ini akan berubah menjadi :

push “route 10.0.0.0 255.255.255.0”

Sampai disini, konfigurasi sudah bisa dikatakan selesai. Konfigurasi lainnya bisa dibiarkan default dan apabila Anda pengen mencoba-cobanya sendiri, ya monggo

Sekarang, let’s try to run the OpenVPN…..

Sebelumnya jangan lupa, menyalin file ca.crt, ca.key, dh1024.pem, dan file crt serta file key untuk server ke /usr/local/sbin.

Jika sudah, coba jalankan OpenVPN dengan perintah :
# ./openvpn server.conf &

Tanda ampersand ( & ) di belakang menunjukkan kita menyuruh OpenVPN agar bekerja secara background. Jika tidak ada masalah, maka akan muncul pesan terakhir berupa pernyataan ‘Initialization sequence completed’. Jika masih ditemui kesalahan, coba lakukan pemeriksaan ulang pada konfigurasi sebelumnya.

Sampai disini, instalasi dan konfigurasi OpenVPN telah selesai. Kini tinggal sedikit sentuhan akhir supaya tunneling kita jadi lebih berdaya guna. Sentuhan akhir itu adalah pengaturan men-set PC yang digunakan untuk router dan setting NAT.

Untuk melakukan tunneling dengan lancar, kita perlu melakukan NAT terhadap network VPN-nya, jadi semua koneksi akan dianggap sebagai koneksi dari IP komputer yang ditanami OpenVPN. Karena memainkan NAT, maka komputer yang ditanani OpenVPN juga perlu diaktifkan kemampuan ‘ip_forward’ nya.
# echo 1 > /proc/sys/net/ipv4/ip_forward

Untuk menambahkan NAT ke network OpenVPN
# iptables –t nat -A POSTROUTING -s 10.3.0.0/24 -o [nama_interface_yang_digunakan_terhubung_ke_network_target] -j MASQUERADE

Untuk melakukan checking apakah setting ini sudah dikenali oleh IPTABLES, perintah yang digunakan adalah :
# iptables –t nat -L

Chain PREROUTING (policy ACCEPT)
target prot opt source destination

Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all — 10.3.0.0/24 anywhere
…..

Jika sudah demikian, supaya konfigurasi bisa secara otomatis kembali di-load ketika Linux mengalami restart, tambahkan kedua perintah tadi ke dalam file /etc/rc.local

Urusan di server kini uda beres. Sekarang kita ganti berurusan dengan kliennya.

Misalkan, klien yang kita gunakan adalah Windows, maka kita tinggal mendownload OpenVPN yang versi Windows di www.openvpn.net/download.html.

Cara instalasinya cukup mudah, kita tinggal membaca sekilas panduan-panduan yang ada ketika proses instalasi. Yang pasti, jika muncul prompt mengenai instalasi divais baru bernama TAP, Anda harus memilih Yes / Continue. Divais TAP ini yang akan digunakan sebagai media komunikasi OpenVPN dengan network nyata yang ada.

Seteleh OpenVPN klien selesai diinstal, maka kita tinggal mengkopi key, crt, ca, dan contoh file konfigurasi untuk klien dari server OpenVPN tadi ( berada di direktori $ direktori_ekstrak_source_openvpn/sample-config-files. Minimal, ada 5 file yang harus Anda salin ke klien OpenVPN Windows Anda yaitu clent.conf ( disalin dari direktori $ direktori_ekstrak_source_openvpn/sample-config-files ), dan file crt, csr, dan key untuk klien dan file ca.crt. File client.conf setelah disalin ke komputer klien harus diubah menjadi client.ovpn. Masukkan kelima file tersebut dalam 1 direktori ( supaya gampang dibedakan aja, he he he ), kemudian edit file client.ovpn terutama untuk bagian-bagian berikut :

remote [alamat_IP] [port]

Maksud dari bagian tersebut adalah menanyakan IP server komputer OpenVPN ( IP real nya, dan bukan IP OpenVPN-nya, so jangan bingung lho ya ….:) ) dan port yang digunakan. Dari contoh konfigurasi yang telah dijelaskan sebelumnya, maka isiannya menjadi

remote 10.10.10.103 2222

ca [nama_file_ca.ca]
crt [nama_file_crt.crt]
key [nama_file_key.key]

Ketiga isian di atas meminta isian mengenai nama file ca, crt, dan key yang kita gunakan. Dari contoh sebelumnya, maka isian di atas akan menjadi :

ca unibraw-client1.ca
crt unibraw-client1.crt
key unibraw-client1.key

Langkah terakhir ( sebagai langkah pamungkas ) adalah menjalankan OpenVPN di klien itu sendiri. Untuk menjalankannya, klik kanan file client.ovpn kemudian pilih ‘Start OpenVPN on this config file’. OpenVPN akan membuka layar konsol, kemudian jika OpenVPN Anda sudah bisa berjalan normal, pesan terakhirnya berbunyi ‘Initialization Sequence Completed’ dan ikon divais TAP yang muncul di taskbar di sebelah jam sistem akan menjadi aktif.

Untuk testing, coba lakukan ping ke IP lain di network lokal target. Jika Anda sudah bisa mem-ping komputer di network target, berarti konfigurasi dan OpenVPN sistem Anda sudah berjalan.

Sekarang tinggal bermain-main sesuai kebutuhan yang disyariatkan
Diposting oleh Hadi Yudhitia
Konfigurasi OpenVPN

Virtual Private Network merupakan teknologi yang memungkinkan dua komputer yang berada di belakang firewall dapat saling terhubung secara dua arah, bagai dalam sebuah LAN. Bisa juga dikatakan dua komputer yang tidak memiliki IP public dapat saling terhubung.
OpenVPN merupakan salah satu produk untuk tujuan ini. Berikut ini petunjuk instalasinya.

Server
Sebuah server yang memiliki IP public tetap diperlukan sebagai VPN server:

# apt-get install openvpn
# cd /etc/openvpn
# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 easy-rsa
# cd easy-rsa


Edit vars pada bagian

KEY_COUNTRY
KEY_PROVINCE
KEY_CITY
KEY_ORG
KEY_EMAIL


Kemudian jalankan

# source ./vars
# ./clean-all
# ./build-ca
# ./build-key-server server
# ./build-dh
# cd keys
# cp ca.crt ca.key dh1024.pem server.crt server.key ../..
# cd ../..
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .
# gunzip server.conf.gz
# mv server.conf openvpn.conf


Atur konfigurasinya di /etc/openvpn/openvpn.conf

..
proto tcp
client-to-client
...


Restart daemonnya:

# /etc/init.d/openvpn start


Pantau aktifitasnya dengan cara:

# tail -f /var/log/daemon.log

Selanjutnya pembuatan file sertifikat untuk masing-masing VPN client:

# cd /etc/openvpn/easy-rsa
# source ./vars
# ./build-key bogor


Kirim ca.crt, bogor.crt, dan bogor.key ke client, Anda bisa menggunakan email dengan melampirkan attachment. Lakukan hal serupa untuk VPN client lainnya, misal untuk cabang bekasi, karawang, dst.

Client
Selanjutnya di komputer client dipasang juga paket openvpn yang sama, hanya beda di konfigurasi.

# apt-get install openvpn
# cd /etc/openvpn


Letakkan ca.crt, bogor.crt, dan bogor.key di sini.

# mv bogor.crt client.crt
# mv bogor.key client.key
# cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf openvpn.conf


Edit openvpn.conf, sesuaikanlan dengan VPN server Anda, atau bisa juga langsung menyebutkan IP public-nya:

..
proto tcp
remote vpn.rab.co.id 1194
..


Lalu restart daemon-nya:

# /etc/init.d/openvpn restart


Perhatikan prosesnya:

# tail -f /var/log/daemon.log


Nantinya akan muncul network device tun0:

# ifconfig tun0

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.8.0.54 P-t-P:10.8.0.53 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:123 errors:0 dropped:0 overruns:0 frame:0
TX packets:139 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:73514 (71.7 KB) TX bytes:20273 (19.7 KB)


Lakukanlah hal serupa untuk komputer client lainnya, dan cobalah ping satu sama lain.

Selamat mencoba.
Diposting oleh Hadi Yudhitia