Wednesday, September 14, 2016

VPN menggunakan Open VPN Part 1

Apa itu Open VPN (Virtual Private Network) ?
Open VPN atau sering disebut OVPN adalah aplikasi open source yang menyediakan keamanan komunikasi jaringan. Layanan OVPN akan membuat koneksi tunel antara client dan server yang telah terenkripsi.
Pada umumnya dunia industri menggunakan aplikasi ini untuk pegawai perusahaan yang memiliki mobilitas yang tinggi namun tetap membutuhkan akses ke jaringan internal perusahaan.

Untuk membangun OVPN infrastruktur kita harus mempersiapkan:
1. Separate certificate (kunci publik) dan private key untuk server dan setiap user.
2. Sebuah Master Certificate Authority (CA) certificate dan key.

Berikut keterangan dalam bentuk tabel berdasarkan penggunakan file yang akan terbentuk :

Nama File               Diperuntukkan                      Purpose                        Secret                   
ca.crt server & all client Root CA Certificate Tidak
ca.key key signing machine only Root CA Key Ya
dh{n}.pem server DH Parameter Tidak
server.crt server Server certificate Tidak
server.key server Server key Ya
client1.crt client 1 client 1 certificate No
client1.key client 1 client 1 key Yes
client2.crt client 2 client 2 certificate No
client2.key client 2 client 2 key Yes


Instalasi dan konfigurasi
Pada artikel ini menggunakan sistem operasi linux distribusi redhat (Centos, amazon linux, dll).

1. Install open vpn package server
#yum install ovpn

2. Pada awal install, openvpn tidak menyediakan configurasi dasar untuk server.conf. Hanya menyediakan contoh configurasi. Pada tahap ini kita memiliki 2 pilihan:
   -> Copy konfigurasi dari contoh yang telah disediakan
       #cp /usr/share/doc/openvpn-*/sample/sample-config-files/server.conf  /etc/openvpn/

   -> Dapat langsung membuat file konfigurasi dengan isi seperti dibawah ini (Isi konfigurasi yang pada umumnya dibutuhkan) :


mode server

port 443
proto tcp
dev tun

ca ca.crt
cert nfsvpnserver.crt
key nfsvpnserver.key

dh dh2048.pem

server 192.168.2.0 255.255.255.0

ifconfig-pool- persist ipp.txt
push "route 10.63.0.0 255.255.255.0"

client-to- client
duplicate-cn
keepalive 10 900
comp-lzo
max-clients 100
persist-key
persist-tun
log openvpn.log
verb 3


3. Langkah selaunjutkan kita akan menginstall easy-rsa package, namun sebelum itu kita perlu menambahkan repo epel. Dapat dengan cara bila menggunakan AMI:

#yum-config- manager -- enable epel
#yum install -y easy-rsa

4. Buat folder pada openvpn directory untuk package easy-rsa
#mkdir -p /etc/opevpn/easy-rsa/keys
#cp -rf /usr/share/easy-rsa/2.0/* /etc/openvpn/easy-rsa
#cp /etc/openvpn/easy-rsa/openssl- 1.0.0.cnf /etc/openvpn/easy-rsa/openssl.cnf

5. Load variabel yang dibutuhkan yang terdapat pada file "vars"
#cd /etc/openvpn/easy-rsa
#source ./vars

6. Selanjutnya kita perlu membersihkan key dan certificate yang mungkin sudah ada
#./clean-all

7. Selanjutnya kita perlu men-generate key and certificate untuk server, nah sebelum itu maka kita dapat men-set default informasi yang menjadi jawaban dari pertayaan indentitas key client. Dengan begini kita dapat menggunakan default setingan dan hanya tinggal ENTER
#./build-ca

8. Pada tahap ini kuita akan men-generate server key and certificate untuk server. Jika indentitas sama dengan setingan default, maka tinggal ENTER saja.
#./build-key-server server

9. Tahap berikutnya kita HARUS mengenerate Diffie Hellman parameter, proses generate-nya akan memakan waktu yang lumayan lama.
#./build-dh

Hasil dari langkah-langkah dan generate file diatas ada empat yaitu :

  • ca.crt
  • dh2048.pem
  • server.crt
  • server.key

Pindahkan keempat file tersebut ke lokasi /etc/openvpn/


No comments:

Post a Comment