BAB IV Perancangan dan Implementasi
IV.2 Konfigurasi VPN pada Jaringan
IV.2.1 Spesifikasi Implementasi VPN
Dalam melakukan konfigurasi VPN pada jaringan simulasi VPN, terdapat beberapa spesifikasi yang digunakan. Spesifikasi tersebut terdiri dari spesifikasi VPN server VPN, client VPN dan webserver pada jaringan LAN.
1. Spesifikasi VPN Server
Spesifikasi perangkat keras dan perangkat lunak pada sisi server VPN yang digunakan terdapat pada tabel 5.
Table 5 Spesifikasi PC Server VPN
Prosesor Intel (R) Pentium (R) 4 CPU 2.60
GHz
Memory 512 MB RAM
Harddisk 40 GB
2. Spesifikasi client VPN
Spesifikasi perangkat keras (PC atau laptop) dan perangkat lunak yang harus dipenuhi di sisi client VPN terdapat pada tabel 6.
Table 6 Spesifikasi PC Client VPN
Prosesor Intel (R) Pentium (R) 4 CPU 2.60
GHz
Memory 256 MB RAM
Harddisk 40 GB
Sistem Operasi Linux/Windows (XP, Vista, 7)
3. Spesifikasi webserver
Spesifikasi perangkat keras dan perangkat lunak pada sisi webserver pada jaringan LAN yang digunakan terdapat pada tabel 7.
Table 7 Spesifikasi Webserver
Prosesor Intel (R) Pentium (R) 4 CPU 2.60
GHz
Memory 512 MB RAM
Harddisk 40 GB
Sistem Operasi Linux
DNS Bind9
Aplikasi web server Apache2
URL http://www.webvpn.ac.id
*Konfigurasi webserver di Lampiran
IV.2.2 Instalasi OpenVPN
Adapun hal-hal yang perlu dilakukan pada instalasi VPN, antara lain:
1. Menciptakan key dan certificate untuk server maupun client pada server VPN dan memindahkannya sesuai dengan kebutuhan server maupun client.
terdapat pada direktori /usr/share/doc/openvpn/examples. Easy-rsa juga merupakan tempat penyimpanan key dan certificate server dan client. - PKI (Public Key Infrastructure) yang dihasilkan pada waktu penciptaan
key dan certificate pada server VPN dan lokasi pemindahannya terdapat
pada table 8.
Table 8 Deskripsi Public Key Infrastructure
File Lokasi Pemindahan Kegunaan Rahasia
ca.crt server + client certificate root CA Tidak
ca.key Server Key root CA Ya
dh xxxx.pem Server Parameter DH Tidak
server.crt Server certificate server Tidak
server.key Server Key server Ya
client1.crt Client certificate client1 Tidak
client1.key Client Key client1 Ya
2. Konfigurasi file server dan client VPN.
- Alamat IP VPN gateway yang merupakan server VPN.
Server
local 172.16.29.142
client
remote 172.16.29.142 1194
- Tunnel mode
Terdapat dua mode tunnel OpenVPN yaitu IP tunneling (TUN driver) dan Ethernet tunneling (TAP driver). IP tunneling digunakan untuk jaringan model routing, sedangkan Ethernet tunneling digunakan untuk jaringan model bridging. Tunnel mode yang akan digunakan adalah TUN mode karena jaringan Politeknik Batam merupakan jaringan model routing.
Server dan client
- Tunnel port
Terdapat dua jenis tunnel port pada OpenVPN yaitu UDP (User Datagram
Protocol) atau TCP (Transmission Control Protocol). Port yang akan
digunakan adalah port UDP 1194 karena default port pada OpenVPN adalah UDP 1194. Penggunaan TCP dapat mengakibatkan TCP over TCP
tunnel yaitu paket ditransmisikan ulang pada TCP tunnel. Jika hal itu terjadi
pada kedua tunnel server maupun client, maka akan mengakibatkan slow
performances seperti waktu respon yang lama. Server port 1194 proto udp client proto udp remote 172.16.29.142 1194
- Certificate dan key
Server ca ca.crt cert server.crt key server.key client ca ca.crt cert client.crt key client.key - Diffie-Hellmann (DH) settings:
Dh digunakan untuk menciptakan privat key untuk hash function dan
cipher algorithm dalam otentikasi OpenVPN. Parameter Diffie Hellman
digunakan oleh dua pengguna untuk melakukan pertukaran key rahasia melalui media yang tidak aman. Waktu yang dibutuhkan untuk menghasilkan Diffie Hellman key ini bergantung pada panjang kunci yang digunakan (dalam bit). Maksimal panjang kunci yang bisa digunakan adalah sebesar 2048 bit. Pada konfigurasi ini akan dipakai panjang kunci sebesar 1024 bit.
Server
dh dh1024.pem
- Dynamic IP address
Server memiliki IP static sendiri yaitu 10.8.0.1 dan menyediakan IP address
Server
server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt
Maksud dari server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt adalah bahwa IP untuk client yang disediakan oleh server OpenVPN yaitu pada network 10.8.0.0 dengan subnet 255.255.255.0.
- Log verbosity setting
Level file log untuk server OpenVPN terdiri dari 0-15. Untuk log medium
output dan good normal operation, log yang digunakan adalah verb 3. Server dan client
verb 3
Untuk tempat penyimpanan semua log hasil koneksi dari client ke server OpenVPN.
Server
status openvpn-status.log
- Koneksi checking
Untuk 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).
Server
keepalive 10 120
- Metode kompresi data
Metode kompresi data yaitu metode kompresi data pada tunnel yang digunakan yaitu LZO ( Lempel Ziv Oberhumer). LZO sudah ter-install secara otomatis pada saat meng-install software OpenVPN.
Server dan client
- Konfigurasi lain pada client
- Client tetap melakukan pencarian tuk nama host pada server VPN
resolv-retry infinite
- Client tidak perlu menempel pada port tertentu
Nobind
- Client mempertahankan beberapa state jika restart
persist-key persist-tun
- Nameserver client berasal dari server VPN
ns-cert-type server
- Client melakukan routing ke jaringan LAN pada server VPN
route 192.168.1.0 255.255.255.0
IV.3 Konfigurasi Firewall
Konfigurasi firewall dilakukan pada server VPN agar client VPN dapat mengakses resource Politeknik Batam. Konfigurasi firewall dilakukan dengan pendekatan negative list. Pendekatan negative list yaitu membuka semua port yang ada, kemudian menutup satu persatu port yang ingin ditutup. Berikut perintah atau rules firewall yang perlu dikonfigurasi pada VPN server:
- Semua policy chain (INPUT, FORWARD, OUTPUT, PREROUTING, dan POSTROUTING) pada iptables diubah menjadi ACCEPT. Contoh: #iptables -P INPUT ACCEPT
- #iptables -I FORWARD -i eth0 -o eth1 -j DROP //ini adalah perintah untuk tidak memperbolehkan pengaksesan dari sisi luar server ke jaringan LAN, tetapi interface yang merupakan tun0 yang berasal dari
client VPN dapat mengakses jaringan LAN tersebut.
tidak memperbolehkan pengaksesan dari sisi luar server ke client VPN.
- #iptables -I INPUT -p udp --dport 1194 -j ACCEPT //ini adalah perintah untuk memperbolehkan pengaksesan dari port udp 1194 oleh
client VPN.
- #iptables -I INPUT -i tun0 -j ACCEPT //ini adalah perintah untuk memperbolehkan pengaksesan dari perangkat tunneling oleh client VPN.
- #iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT //ini adalah perintah connection tracking yang dilakukan agar trafik network yang terkait dengan sebuah rule di chain tertentu, tidak perlu konfigurasi. Hal ini juga berlaku untuk chain FORWARD dan OUTPUT.
- #iptables -t nat -I POSTROUTING -j MASQUERADE //ini adalah perintah yang berarti semua paket network yang berasal dari IP LAN
server VPN akan di-masquerade dengan IP luar server VPN.