DOKUMENTASI DAN ANALISIS VPN SERVER 1. PENDAHULUAN Ini merupakan konfigurasi yang sudah di analisis terlebih dahulu bagaimana set up OpenVPN di server Ubuntu. 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. 2. TUJUAN Maksud dari dokumen ini adalah untuk menjelaskan cara menginstal OpenVPN server di Ubuntu Linux yang memiliki sistem dan memanfaatkan sebuah device tunneling untuk mengakses jaringan lokal. Koneksi Tunneling ini dasarnya memungkinkan sistem operasi untuk melakukan koneksi ke internal network dengan menggunakan ruang bawah tanah yang sudah di-enkripsi(secure Tunneling). Dengan menggunakan tunneling akan memungkinkan Anda untuk dengan mudah menghubungkan ke luar pengguna jaringan internal Anda dan mereka telah menerima semua lalu lintas seolah-olah mereka terhubung secara lokal. Alternatif adalah dengan menggunakan OpenVPN namun dengan rute yang tidak akan mengizinkan beberapa bentuk melalui lalu lintas (seperti multicast).
3. PERALATAN YANG PERLU DIPERSIAPKAN a. Sistem Operasi Linux Ubuntu b. Root Akses ke Server c. Mempunyai IP PUBLIC 4. STANDARD PROSEDUR OPENVPN Administrators Update repostory Installasi OpenVPN Konfigurasi Client CA+Key Client CA+PEM+Key Server Konfigurasi Server Dokumen dan SOP Network Troubleshooting 5. INSTALLING VPN SERVER Dalam melakukan installing VPN Server yakinkan dulu bahwa komputer mempunyai 2 koneksi atau 2 LanCard yang berfungsi sebagai Router. Lakukan Setting IP Server yang ada di /etc/network/interfaces # The primary network interface # connects to insecure router auto eth0
iface eth0 inet static address 202.202.202.202 netmask 255.255.255.0 network 202.202.202.0 broadcast 202.202.202.255 gateway 202.202.202.1 # dns-* options are implemented by the resolvconf dns-nameservers 142.165.200.5 Setelah melakukan Setting dengan benar maka kita akan melakukan update informasi terlebih dahulu #apt-get update Kemudian setelah melakukan Update terhadap informasi Paket kita siap untuk melakukan install OpenVPN #sudo apt-get install openvpn Setelah beres melakukan install lakukan pengecekan Daemon OpenVPN #/etc/init.d/openvpn restart Apabila ada keterangan: * Stopping virtual private network daemon [OK] * Starting virtual private network daemon [OK] 6. KONFIGURASI SERVER Setelah melakukan pengecekan dengan benar pada sisi Server dan Daemon maka langkah selanjutnya adalah: 1. Melakukan Copy Installasi VPN Server #cp R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/ 2. Kemudian lakukan set pada vars untuk konfigurasi standard OpenSSL #vim /etc/openvpn/vars 3. Konfigurasi sebagai berikut #this is to ensure secure data(before 2048) export KEY_SIZE=1024
# These are the default values for fields # which will be placed in the certificate. # Don't leave any of these fields blank. export KEY_COUNTRY= ID export KEY_PROVINCE= JABAR export KEY_CITY= BANDUNG export KEY_ORG= Bhinneka.IT export KEY_EMAIL="hackersmooth88@gmail.com" 4. Setelah melakukan konfigurasi berikut pada vars maka kita siap untuk melakukan build dan generate Certificate #../vars #./clean-all #./build-ca Tujuan dari perintah ini adalah:./vars: digunakan untuk mendefinisikan Variabel Certificate dan KEY_SIZE yang nantinya akan digunakan untuk pembentukan Standard Informasi Certificate../clean-all: digunakan untuk membersihkan semua konfigurasi yang ada sebelumnya. Ini digunakan agar certificate tidak bentrok../build-ca: digunakan untuk melakukan Generate Root CA Certificate 5. Sekarang kita akan membuat Server Keys. Ini merupakan Key Server yang bersifat private untuk memberi informasi bahwa Server tersebut yang menjadi VPN Server #./build-key-server server Nanti akan tampil menu seperti pembuatan CA hanya saja ini berbeda karena certificate ini tidak dipublish tapi lebih bersifat private. Apabila nanti muncul Sign The Certificate pilih Yes karena key akan dimasukkan ke dalam Root CA. 6. Sekarang sudah siap untuk menghasilkan kunci bagi pengguna, pertama memutuskan apakah ingin melindungi key atau tidak. Dalam melakukan koneksi OpenVPN ada 2 cara: a. Autentifikasi #./build-key-pass username
b. No Autentifikasi #./build-key username Untuk kasus Bhinneka Group maka akan dibuat No Autentifikasi dengan nama username = NAMA DEPO (username = cirebon) 7. Setelah semua Depo Bhinneka Group terdefinisi sekarang kita akan melakukan enkripsi Diffie Hellman sesuai dengan yang sudah didefinisikan pada vars. Dengan melakukan Diffice Hellman akan membuat file dh1024.pem yang akan digunakan oleh Server untuk melakukan enkripsi ketika melakukan tunneling. #./build-dh Setelah berikut maka akan menggabungkan semua certificate yang sudah di buat untuk koneksi TLS #openvpn genkey secret ta.key Berikut ini adalah garis besar File-File yang ada di folder keys:
Gambar 1 8. Langkah terakhir adalah membuat konfigurasi pada server.conf #vim /etc/openvpn/server.conf Kemudian isi dengan konfigurasi server sebagai berikut: #port yang digunakan port 1194 #port yang digunakan untuk OpenVPN proto udp #Jenis Koneksi Yang Akan Digunakan Oleh VPN dev tun #Settingan Dan Certificate Untuk Server OpenVPN ca ca.crt cert server.crt key server.key dh dh1024.pem #Range IP untuk Jaringan Virtual Network server 10.22.0.0 255.255.255.0 #Menyimpan Client Yang Mendapatkan IP ifconfig-pool-persist ipp.txt #Enkripsi Blow-Fish(Speed) and AES untuk Lebih Secure cipher BF-CBC #Hash Function Algoritm auth MD5 #Memproteksi Server ID dengan SSL/TLS tls-auth ta.key 0 #Settingan Apakah Client Dapat Saling Terhubung Atau Tidak client-to-client keepalive 10 120
#Maximum Koneksi Client max-clients 5 #Melakukan Kompresi Data Dengan Algoritma LZO comp-lzo #Memperkecil Packet fragment 1400 #Untuk Security OpenVPN user nobody group nogroup persist-key persist-tun #Log status openvpn-status.log verb 3 9. Setelah melakukan konfigurasi pada server.conf maka langkah terakhir adalah dengan melakukan copy semua certificate + key pada OpenVPN #cp/etc/openvpn/keys/ca.* /etc/openvpn/ #cp/etc/openvpn/keys/server.* /etc/openvpn/ #cp/etc/openvpn/keys/dh1024.pem /etc/openvpn/ 10. Pastikan bahwa ta.key berada di /etc/openvpn/. Untuk melihat posisi keberadaan gunakan #locate ta.key Jadi perhatikan pada folder /etc/openvpn/ harus terdapat file-file sebagai berikut: a. ca.crt b. ca.key c. dh1024.pem d. server.crt e. server.key
f. ta.key Lakukan reboot Server OpenVPN dengan menggunakan #reboot Perhatikan pada bagian LOG dari SYSTEM LINUX bahwa daemon OpenVPN berjalan baik. *Starting virtual private network daemon *server [OK] [OK] 11. Kemudian lakukan pengecekan pada iptunneling #ifconfig Apabila sudah berjalan dengan baik maka akan muncul device tun0-00 tun0-00 Link encap:unspec HAWADRR inet addr 10.22.0.1 P-t-P: 172.16.30.2 Mask: 255.255.255.255 UP POINTTOPOINT RUNNING NOARP MULTICAST. Berikut ini adalah command OpenVPN untuk melihat modul security yang support dan module tun #openvpn --show-ciphers untuk menampilkan informasi mengenai Algoritma Chiper yang didukung oleh Sistem Operasi Linux DES-CBC 64 bit default key (fixed) IDEA-CBC 128 bit default key (fixed) RC2-CBC 128 bit default key (variable) DES-EDE-CBC 128 bit default key (fixed) DES-EDE3-CBC 192 bit default key (fixed) DESX-CBC 192 bit default key (fixed) BF-CBC 128 bit default key (variable) RC2-40-CBC 40 bit default key (variable) CAST5-CBC 128 bit default key (variable) RC5-CBC 128 bit default key (variable) RC2-64-CBC 64 bit default key (variable) AES-128-CBC 128 bit default key (fixed)
AES-192-CBC 192 bit default key (fixed) AES-256-CBC 256 bit default key (fixed) #openvpn --show-digests menampilkan informasi mengenai Algoritma HASH MD2 128 bit digest size MD5 128 bit digest size RSA-MD2 128 bit digest size RSA-MD5 128 bit digest size SHA 160 bit digest size RSA-SHA 160 bit digest size SHA1 160 bit digest size RSA-SHA1 160 bit digest size DSA-SHA 160 bit digest size DSA-SHA1-old 160 bit digest size MDC2 128 bit digest size RSA-MDC2 128 bit digest size DSA-SHA1 160 bit digest size RSA-SHA1-2 160 bit digest size DSA 160 bit digest size RIPEMD160 160 bit digest size RSA-RIPEMD160 160 bit digest size MD4 128 bit digest size RSA-MD4 128 bit digest size #lsmod grep tun untuk menampilkan module device tun apakah berhasil di-load oleh sistem atau tidak. tun 1234 1 Apabila tidak keluar apa-apa maka harus menambah ke dalam modul Sistem Operasi Linux #modprobe tun 12. Yang terakhir adalah dengan mengaktifkan server menjadi router #vim /etc/sysctl.conf Rubah value ip_forward menjadi 1
#Uncomment the next line to enable packet forwarding for IPv4 net.ipv4.ip_forward=1 7. KONFIGURASI CLIENT Pada komputer client harus melakukan download pada OpenVPN seperti yang dilakukan pada Server OpenVPN. Nantinya semua client/depo akan berhubungan dengan Server OpenVPN. Berikut ini adalah hal-hal yang mesti dilakukan antara lain adalah: 2. Lakukan Setting IP terlebih dahulu pada /etc/network/interfaces 3. Melakukan update packet ke Server Pusat #apt-get update 4. Setelah melakukan update tinggal melakukan install dengan Server Pusat #apt-get install openvpn 5. Setelah melakukan install maka harus melakukan copy file OpenVPN seperti yang dilakukan pada Server OpenVPN #cp R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/ 6. Saatnya untuk melakukan copy file Certificate + Key Client yang terdapat pada Server ke direktori Client /etc/openvpn/. Bisa menggunakan flashdisk ataupun CD sehingga di client terdapat file-file sebagai berikut: a. ca.crt b. ca.key c. [nama-depo].crt d. [nama-depo].key e. ta.key
File file ini adalah kunci untuk melakukan koneksi dengan Server. Untuk Keterangan masing-masing file bisa dilihat pada Gambar 1 7. Lakukan pembuatan file client.conf pada direktori /etc/openvpn/ #vim/etc/openvpn/client.conf Isi dalam file client.conf adalah #Setting agar bertindak sebagai Client client #Tipe Protokol proto udp #Tipe Device Yang Digunakan Untuk OpenVPN dev tun #Melakukan akses ke Server OpenVPN[IP PUBLIC] remote 202.202.202.2021194 resolv-retry infinite nobind persist-key persist-tun #Koneksi SSL/TLS Client tls-client #Setting CA dan Key Untuk Client ca ca.crt cert bandung.crt key bandung.key
#Memastikan Bahwa Melakukan Akses Ke Server Dengan Mengecek Certificate ns-cert-type server tls-auth ta.key 1 #Enkripsi menggunakan BlowFish cipher BF-CBC #Hash Function auth MD5 #Compress Data VPN Link comp-lzo #Melakukan Fragment Packet fragment 1400 #LOG verb 3 8. Tahap terakhir adalah melakukan route add static pada jaringan Bhinneka secara keseluruhan: #vim /etc/network/interfaces up route add net 10.44.99.0 netmask 255.255.255.0 gw 10.20.0.1 dev tun0 up route add net 10.44.66.0 netmask 255.255.255.0 gw 10.20.0.1 dev tun0 up route add net 10.44.22.0 netmask 255.255.255.0 gw 10.20.0.1 dev tun0 up route add net 10.44.44.0 netmask 255.255.255.0 gw 10.20.0.1 dev tun0 up route add net 10.44.100..0 netmask 255.255.255.0 gw 10.20.0.1 dev tun0 up route add net 10.44.88.0 netmask 255.255.255.0 gw 10.20.0.1 dev tun0
9. Lakukan restart pada komputer client dan lihat apakah client sudah berjalan dengan baik atau belum #reboot *Starting virtual private network daemon *client [OK] [OK] 10. Pastikan semua konfigurasi apakah sudah baik atau tidak. Semua Certificate harus ada pada Path yang tepat di /etc/openvpn/client.conf 8. TROUBLESHOOTING Judul Unit : Troubleshooting OpenVPN pada Server Uraian Unit : Berkaitan dengan mengecek koneksi, daemon, dan sertifikasi dari OpenVPN Sub Masalah Tindak TroubleShooting 1. Dev Tun tidak ada Anda dapat melakukan load terhadap module linux dengan modprobe tun
2. Perubahan Ekripsi o Pastikan untuk melihat Algoritma yang support untuk Operating Sistemnya dengan melihat Informasi #openvpn--show-ciphers untuk Algoritma Chipher #openvpn--show-digests untuk Algoritma Hash 3. Daemon Server Tidak Jalan 4. Tidak Bisa Koneksi Status OK o o o o o Periksa kembali Configurasi apakah sudah benar seperti yang diterangkan diatas. Yang Perlu di check adalah Posisi Path OpenVPN :/etc/openvpn/ Step-step untuk generate CA harus benar Certificate CA, Server, dan PEM harus ada pada direktori yang sama Periksa kembali Firewall yang ada. Untuk menguji buka seluruh port. Apabila tidak bisa berarti dipastikan Konfigurasi masih tidak tepat Check Keadaan Kabel Check Device apakah sudah benar atau tidak Judul Unit : Troubleshooting OpenVPN pada Client Uraian Unit : Berkaitan dengan mengecek koneksi Client ke Server Sub Masalah Tindak TroubleShooting
1. Dev Tidak Jalan Anda dapat melakukan load terhadap module linux dengan modprobe tun 2. Daemon Client tidak jalan o Periksa kembali Configurasi apakah sudah benar seperti yang diterangkan diatas. o Yang Perlu di check adalah Posisi Path OpenVPN :/etc/openvpn/ Step-step untuk generate CA harus benar o Untuk Client yang perlu diperhatikan ada Key dan Certificate dari Tiap Depo