Virtual Private Network (VPN)

1.       Pengertian Virtual Private Network (VPN)

Virtual Private Network (VPN) merupakan cara aman mengakses LAN dengan menggunakan internet atau jaringan umum lainnya untuk melakukan transmisi data paket secara private.

2.       Konsep VPN

VPN membutuhkan sebuah server untuk menghubungkan PC dengan PC.

Bila digunakan untuk menghubungkan 2 komputer secara private dengan jaringan internet, maka akan menjadi seperti ini:

Misalnya VPN yang menggunakan protocol Point to Point Tunneling Protocol (PPTP), dapat digambarkan sebagai berikut.

·         Seperti yang telah disebutkan sebelumnya, VPN butuh sebuah server untuk penghubung antar PC, server VPN ini bisa berupa komputer dengan aplikasi VPN server atau sebuah router.

·         Untuk memulai sebuah koneksi, computer dengan aplikasi VVPN client mengontak VPN server, yang akan memverifikasi username dan password. Jika verifikasi telah berhasil, VPN server akan memberikan IP address baru pada VPN client dan koneksi / tunnel pun terbentuk.

·         Setelah itu PC client dapat digunakan untuk mengakses baik PC lain maupun LAN yang berada di belakang VPN server.

3.       Manfaat VPN

Manfaat VPN antara lain yaitu:

  •  Remote access, kita dapat mengakses komputer atau jaringan yang kita inginkan selama terhubung dengan internet
  • Security, kita dapat melakukan browsing dengan koneksi internet public seperti hotspot atau warnet (warung internet) secara aman
  • Hemat biaya setup jaringan, VPN dapat menjadi teknologi alternatif penghubung jaringan local yang luas dengan biaya yang cukup rendah, karena transmisi data teknologi VPN menggunakan media jaringan public yang sudah ada tanpa perlu membangun jaringan pribadi

4.      Rancangan koneksi VPN

Untuk lebih memahami teori tentang Virtual Private Network (VPN), dibuat sebuah rancangan yang mengimplentasikan cara kerja koneksi VPN. Berikut rancangan vpn yang akan dibuat sebagai contoh dalam memahami VPN.

                        Dalam mengimplementasikan gambar di atas, maka kita harus mengikuti langkah-langkah sesuai dengan urutan 9 sampai 11 yang akan dijelaskan di bawah. Langkah-langkah tersebut meliputi Installation of OpenVPN, VPN Connection and Symmetric Key Encryption, dan VPN Connection with Public Key Encryption, yang masing-masingnya terdapat pula langkah-langkah yang wajib diikuti.

                        Gambar di atas menjelaskan cara kerja koneksi VPN dari dua komputer/PC yang menggunakan OS Linux Debian. Sambungan VPN dapat dilakukan dengan menggunakan kabel cross-over dan dua mesin bridge/internet. Dua PC tersebut diharuskan dapat melakukan ping satu sama lain dan server VPN memiliki 1194/UDP port terbuka untuk koneksi VPN Client.

Penjelasan lanjut tentang gambar:

·         Ditentukan pada gambar bahwa VPN-Server (IP Address: 10.1.1.3) dan VPN-Client (IP Address: 10.1.1.4).

·         Tunell VPN dibuat sebagai titik temu, yaitu 192.168.0.1 – 192.168.0.2.

·         Terowongan VPN dibuat dengan menggunakan Public Key Encryption (OpenVPN certification mode).

·         Alamat IP tiap pengguna akan berbeda yang berasal dari subnet 192.168.0.0/16.

·         Pengguna akan mendapat alamat IP 192.168.0.6.

5.      Install OpenVPN

a.      Install OpenVPN melalui repositori resmi

Aplikasi OpenVPN hanya terdiri dari satu file biner yang memiliki nama sama dengan nama aplikasinya, yaitu OpenVPN. File biner berfungsi untuk memulai sebuah OpenVPN Server dan OpenVPN Client yang berbeda pada saat konfigurasi bolak-balik antar keduanya. Install OpenVPN dilakukan dengan menggunakan tool apt-get. Apt-get akan secara otomatis menginstall prasyarat yang diperlukan.

Langkah yang dilakukan:

1.      Masuk debian sebagai root.

2.      Ketik command “apt-get install openvpn”.

3.      Tunggu sampai openvpn terinstall di debian.

b.      Mengaktifkan Interface Virtual Network

OpenVPN harus dijalankan bersama dengan Interface Virtual Network TUN/TAP. TUN/TAP adalah driver jaringan kernel virtual yang harus diaktifkan di kernel sebagai terowongan penghubung antara Server dan Client, serta sebagai modul untuk jaringan virtual pribadi. TAP dapat ditemukan pada Interface Network dengan nama “Universal TUN/TAP device driver support”. TAP driver ini berfungsi untuk mengkonfirmasi bahwa modul TUN dapat dijalankan pada sistem selama kompilasi kernel.

Langkah yang dilakukan:

1.      Ketik commandgrep CONFIG_TUN= /boot/config-“.

Langkah di atas akan menunjukan bahwa eth0 interface akan secara lagsung merepresentasikan sebuah hardware, misalnya sebuah PCI network card. Paket data yang dikirim akan berjalan melalui TUN/TAP interface sebelum diterima oleh eth0 network interface. Hal ini memungkinkan OpenVPN mengenkripsi paket sebelum sampai pada tujuan (PC).

6.      VPN Connection and Symmetric Key Encryption

a.       Menyiapkan VPN Server

Hampir semua konfigurasi pengaturan dapat dikirim ke aplikasi OpenVPN melalui command line. Namun, konfigurasi pengaturan dapat dibuat sebagai file konfigurasi yang akan dibaca ketika inisialisasi OpenVPN. File konfigurasi berfungsi untuk menjaga pengaturan koneksi VPN, karena jumlah koneksi bisa bertambah sesuai dengan limit koneksi pada sistem.

Langkah yang dilakukan:

1.      Ketik command/sbin/ifconfig eth0“ untuk cek ketersediaan eth0.
2.      Lakukan generate static symmetric key dengan command “openvpn --genkey --secret staticVPN.key”.
3.      Cek symmetric key dengan commad “cat staticVPN.key”.
4.      Mulai menjalankan OpenVPN Server dengan command “openvpn --dev tun --ifconfig 192.168.0.1 192.168.0.2 --secret staticVPN.key”.
Penjelasan: Parameter “--dev tun” ini akan menginstruksikan aplikasi OpenVPN dengan menggunakan virtual network interface TUN. Parameter “—ifconfig 192.168.0.1 192.168.0.2” menentukan alapat IP untuk kedua sis terowongan virtual. OpenVPN menetapkan virtual network interface tun0 ke alamat IP 192.168.0.1 dan akan menyediakan slot koneksi OpenVPN Client pada alamat IP 192.168.0.2. Parameter “--secret staticVPN.key” menentukan file dengan Static Symmetric Key yang dibuat pada langkah sebelumnya.
5.      Cek kebenaran dari langkah sebelumnya dengan command “ifconfig tun0”.
b.       Menyiapkan VPN Client

            Cara membuat VPN Client sama dengan cara membuat VPN Server di atas. Pada langkah ini, dianggap mendirikan koneksi melalui 10.0.0.0 network, client telah terinstall dan siap untuk menggunakan aplikasi OpenVPN dan symmetric key yang telah dihasilkan sebelumnya. OpenVPN dan symmetric key dicopy ke client dengan USB key atau SCP.

Langkah yang dilakukan:

1.      Ketik commandifconfig eth0“ untuk cek ketersediaan eth0.
2.      Mulai menjalankan OpenVPN Server dengan command “openvpn --remote 10.1.1.3 --dev tun --ifconfig 192.168.0.2 192.168.0.1 \
--secret staticVPN.key”.
Penjelasan: Paramerter “—remote 10.1.1.3” merupakan spesifikasi alamat IP sebenernya dari OpenVPN Server yang menunggu sambungan, client terhubung ke socket 10.1.1.3:1194/UDP. “--dev tun” ini akan menginstruksikan aplikasi OpenVPN dengan menggunakan virtual network interface TUN. Parameter “—ifconfig 192.168.0.2 192.168.0.1” menentukan alapat IP untuk kedua sis terowongan virtual. OpenVPN menetapkan virtual network interface tun0 ke alamat IP 192.168.0.1 dan akan menyediakan slot koneksi OpenVPN Client pada alamat IP 192.168.0.2. Parameter “--secret staticVPN.key” menentukan file dengan Static Symmetric Key yang dibuat pada langkah sebelumnya.
3.      Cek kebenaran dari langkah sebelumnya dengan command “ifconfig tun0”.

c.        Testing A VPN Connection

            OpenVPN Server dan OpenVPN Client menggunakan tun0 virtual network interface untuk menjaga hubungan yang dienkripsi terowongan virtual. Tno interface dari OpenVPN Server diatur ke 192.168.0.1 dan tno interface dari OpenVPN Client diatur ke 192.168.0.2.

Langkah yang dilakukan:

1.      Ketik command “ifconfig” pada masing-masing Server dan Client untuk mengetahui informasi koneksi.

2.      Ketik command “tcpdump –I tun0”.

3.      Ketik command “tcpdump –I eth0”.

7.       Koneksi VPN dengan Public Key Encription

Sebelum membuat sebuah koneksi VPN menggunakan Symmetric Key Encryption, kedua endpoint VPN perlu bertukar symmetric key terlebih dahulu. Symmetric key perlu dipertukarkan menggunakan medium private. Jika ada sebuah kasus di mana sebuah perusahaan memiliki jumlah pegawai yang besar dan setiap pegawai harus bertukas symmetric key dengan siapa saja yang ingin membuat koneksi VPN dengannya, maka pekerjaan ini akan menjadi sangat merepotkan, belum lagi sebuah key dapat bocor ke public di tengah jalan dan seluruh proses harus diulang lagi dari awal. Pada kasus-kasus seperti inilah dibutuhkan Public Key infrastructure (PKI).

a.       Public Key Infrastructure

Untuk menghindari kekacauan pertukaran public key ketika menggunakan model yang saling bertautan, kita dapat mendelegasikan seorang pegawai sebagai Certification Authority (CA) yang bertanggung jawab untuk menyimpan record atas semua public key. Tujuan CA yaitu untuk mengumpulkan semua private key dari semua pegawai dan menandatanganinya dengan private key CA tersebut – untuk mengeluarkan sertifikat. Jika ada seseorang yang ingin mengonfirmasikan sebuah signature dokumen yang dibuat oleh pegawai lain, pertama-tama ia akan menggunakan public key CA untuk mengonfirmasikan public key (sertifikat) pengirim . setelah public key pengirim terkonfirmasi, key tersebut dapat digunakan lebih jauh untuk mengonfirmasikan signature dari dokumen sebenarnya. Karena setiap rekan mengirimkan sertifikat yang ditanda tangani CA-nya sendiri, maka yang perlu dilakukan hanyalah untuk mendistribusikan kembali public key  CA ke setiap pegawai.

b.      Cara membuat Koneksi VPN menggunakan OpenVPN dan Symmetric Key Encription

Langkah pertama adalah membuat Certification Authority. Untuk melakukan ini, akan digunakan VPN-server dengan IP 10.1.1.3. Langkah ini akan menghasilkan self-signed public key CA dan private key yang sesuai. Langkah selanjutnya adalah membuat Cerificate Signing Request (CSR) server dan client yang akan menghasilkan CSR dan private key untuk keduanya. Selanjutnya, CSR client perlu ditransfer ke server di mana request server dan client akan ditanda tangani menggunakan private key CA. hal ini akan menghasilkan dua sertifikat yang sudah ditanda tangani, masing-masing satu untuk client dan server. Kemudian sertifikat client yang sudah ditanda tangani akan ditransfer ke client tersebut beserta public key CA. sebelum mulai mengerjakan, harus dipastikan bahwa sudah ada paket opnssl pada kedua system (vpn-client dan vpn-server):

1.       apt-get install openssl

2.       addgroup openvpn

3.       useradd –shell=/bin/false –g openvpn openvpn

c.       Membuat Certification Authority

1.       openssl req -new -x509 -extensions v3_ca -keyout ca-private-key.pem -out ca-certificate.pem -days 365

2.      openssl req -new -x509 -extensions v3_ca -keyout ca-private-key.pem \ -out ca-certificate.pem -days 365
3.      ca-certificate.pem  ca-private-key.pem

d.      Membuat Certificate Signing Request (CSR)

1.      openssl req -new -nodes -out vpn-server-CSR.pem
2.      scp vpn-client-CSR.pem root@10.1.1.3:~/
e.      Menandatangani CSR
1.       Buat file CA-openssl.config yang berisi seperti berikut
[ ca ] default_ca = ca_default [ ca_default ] dir = . new_certs_dir = . private_key = ca-private-key.pem certificate = ca-certificate.pem database = index.txt default_md = md5 serial = serial default_days = 365 x509_extensions = usr_cert   policy = generic_policy [ generic_policy ] countryName = optional stateOrProvinceName = optional localityName = optional organizationName = optional organizationalUnitName = optional commonName = supplied emailAddress = optional   [ usr_cert ] authorityKeyIdentifier = keyid basicConstraints = CA:FALSE keyUsage = digitalSignature extendedKeyUsage = serverAuth
2.       touch index.txt; echo 01 > serial;  
3.       openssl ca -config CA-openssl.config -infiles \  vpn-server-CSR.pem 
4.       ubah baris extendedKeyUsage = serverAuth menjadi extendedKeyUsage = clientAuth
5.       openssl ca -config CA-openssl.config -infiles \ vpn-client-CSR.pem
6.       cara melihat sertifikat: openssl x509 -in 01.pem -noout –text dan openssl x509 -in 02.pem -noout –text
7.       scp 02.pem root@10.1.1.4:~/vpn-client-certificate.pem
8.       scp ca-certificate.pem root@10.1.1.4:~/
9.       mv 01.pem vpn-server-certificate.pem
f.        Diffie-Hellman Key Agreement
openssl dhparam -out dh.pem 1024 
g.       Membuat file konfigurasi
1.       Buat file openvpn-server.config dengan isi sebagai berikut:
# OpenVPN server configuration file example local 10.1.1.3 dev tun server 192.168.0.0 255.255.0.0 ca ca-certificate.pem cert vpn-server-certificate.pem key privkey.pem dh dh.pem push "redirect-gateway" comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key user openvpn group openvpn daemon 
2.       Buat file openv[n-client.config dengan isi sebagai berikut:
# OpenVPN client configuration file example client dev tun remote 10.1.1.3 tls-remote 10.1.1.3 ca ca-certificate.pem cert vpn-client-certificate.pem key privkey.pem comp-lzo keepalive 10 60 ping-timer-rem persist-tun persist-key user openvpn group openvpn daemon
h.      Menjalankan OpenVPN server
1.       openvpn --config openvpn-server.conf
2.       ifconfig tun0
i.         Menjalankan OpenVPN client
1.      openvpn --config openvpn-client.conf
2.      ifconfig tun0
j.        Test VPN Connection
ping 192.168.0.1
 
 
 

  
About these ads


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.