Inti dari tulisan ini adalah saya ingin menghubungkan dua buah jaringan lokal yang berada di kantor pusat dan kantor cabang agar bisa saling terkoneksi melalui jaringan internet. Kira-kira berikut adalah gambaran topologinya :
Skema ip addressnya akan saya samakan persis dengan gambar tersebut, apabila kalian ingin menggunakan ip address yang lain silahkan disesuaikan.
Prasyarat
1. Untuk dapat mengikuti artikel ini kalian diwajibkan sudah mengerti cara konfigurasi dasar mikrotik agar siap digunakan, baik dari konfigurasi ip address, hostname, gateway, dan yang lainnya. Selain itu kalian juga diwajibkan mengerti cara-cara pengoperasian mikrotik seperti cara meremote via winbox, cara memindahkan file ke mikrotik, dll.
2. Wajib mengerti konsep dasar TCP/IP dan jaringan. Sehingga kalian sudah tidak bingung lagi ketika muncul istilah-istilah seperti IP, subnet, gateway, routing statik, dll.
3. Wajib bisa menginstall linux dan sedikit pengoperasian dasar linux, khususnya Ubuntu atau Debian. Karena kita akan membutuhkan sedikit jasa dari Linux untuk membuat sertifikat yang diperlukan untuk membangun OpenVPN Server ini. Selain itu silahkan baca juga cara mengirim file dari Linux melalui SSH atau FTP, karena kita nanti perlu memindahkan file dari server Linux kita ke Mikrotik.
Jika kalian merasa sudah siap dengan prasyaratnya, maka mari kita mulai.
Pembuatan Sertifikat
1. Pertama-tama kita harus membuat sertifikat agar VPN Server kita dapat dikenali klien sebagai VPN Server yang asli. Intinya untuk pengamanan dan peng-enkripsian jalur komunikasi antara VPN Server dan VPN Klien nantinya. Berhubung mikrotik tidak memiliki fitur untuk membuat sertifikat, maka kita memerlukan jasa Linux Ubuntu untuk membuat sertifikatnya.
Silahkan kalian install Linux Ubuntu atau Debian (saya menggunakan Ubuntu Server 12.04 LTS), kemudian konfigurasikan jaringan dan repositorinya agar sudah siap untuk dapat menginstall aplikasi. Jika sudah, install aplikasi Openvpn :
$ sudo apt-get install openvpn
2. Kemudian kopi contoh konfigurasi openvpn yang berada di direktori /usr/share/doc/openvpn/examples/ke direktori tempat openvpn. Caranya seperti ini :
$ sudo -i
# cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn
Setelah itu pindahlah ke direktori /etc/openvpn/2.0 dengan mengetikkan perintah berikut :
# cd /etc/openvpn/2.0/
Edit file vars untuk mengganti identitas yang diperlukan openvpn saat membuat file-file sertifikat nantinya :
# nano vars
Pada baris paling bawah, gantilah beberapa informasi sehubungan dengan identitas perusahaan atau organisasi kalian. Edit seperti yang sudah saya tuliskan dibawah, sisanya biarkan saja :
# 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="JB"
export KEY_CITY="Bandung"
export KEY_ORG="Cilsy"
export KEY_EMAIL="admin@linuxsupports.com"
export KEY_EMAIL=admin@linuxsupports.com
Simpan dan tutup file tersebut. Sekarang kita akan membuat file-file sertifikatnya. Eksekusi perintah dibawah ini secara berurutan :
# source vars
# ./clean-all
# ./build-dh
# ./pkitool --initca
# ./pkitool --server server
# ./pkitool client
Apabila pada saat mengeksekusi perintah source vars diatas terdapat pesan error semacam "openssl not found", silahkan eksekusi perintah berikut :
# mv openssl-1.0.0.cnf openssl.cnf
Setelah itu baru eksekusi ulang perintah source vars.
3. Langkah berikutnya kalian tinggal memindahkan file server.crt dan server.key yang berada di direktori/etc/openvpn/2.0/keys ke komputer kalian, baru setelah itu kalian pindahkan lagi ke mikrotik.
Untuk memindahkan dari server Linux ke komputer saya, saya menggunakan teknik SCP. Silahkan kalian cari mengenai cara mengirim file di Linux menggunakan SCP. Bisa menggunakan SCP langsung atau WinSCP jika di Windows.
Setelah kedua file tersebut saya pindahkan ke komputer saya, saya pindahkan lagi file-file itu ke Mikrotik. Saya menggunakan teknik dari Filezilla. Silahkan kalian gunakan cara kalian masing-masing untuk mengirim file dari komputer ke Mikrotik.
Sampai sini tahap pembuatan file sertifikat untuk keperluan OpenVPN Server telah selesai.
Konfigurasi OpenVPN Server
1. Pertama-tama kita harus mengimport sertifikat dan key yang sudah kita masukkan ke mikrotik. Akses Mikrotik kalian via winbox, kemudian buka New Terminal, lalu ketikkan perintah berikut :
/certificate import file-name=server.crt
/certificate import file-name=server.key
Jika diminta memasukkan passphrase, masukkan saja 1234.
2. Selanjutnya untuk membangun sebuah jaringan VPN seperti ini, kita perlu membuat subnet jaringan virtual baru agar memudahkan kita dalam memonitor jaringan VPN kita ini nantinya. Maksudnya seperti apa? Coba perhatikan gambar dibawah :
Sekilas pada topologi diatas memang terlihat tidak perlu, karena ether1 dari kedua router saya memang sudah satu subnet, 192.168.0.13 dan 192.168.0.14 sudah tergabung dalam subnet 192.168.0.0/24. Tapi jika di dunia nyata, ip publik tidak akan satu subnet seperti itu. Bisa jadi ether1 pada KPusat adalah118.97.87.0.1 sedangkan ether1 pada KCabang-1 adalah 184.25.22.11. Nah, makanya untuk menggabungkan kedua ip publik yang berbeda jauh ini kita perlu membuat ip virtual yang seolah-olah kedua router kita terhubung dalam satu subnet.
Untuk membuatnya, arahkan ke menu PPP > Secrets > +
Name : ovpn-KCabang1 #diisi dengan username yang akan digunakan oleh klien untuk koneksi ke VPN Server ini nantinya. Bebas.
Password : passovpn #diisi dengna password yang akan digunakan oleh klien. Bebas.
Local address : 10.0.0.1 #ip virtual yang digunakan oleh KPusat.
Remote address : 10.0.0.2 #ip virtual yang digunakan oleh KCabang-1
Routes : 192.168.11.0/24 10.0.0.2 #mengarahkan jaringan lokal KPusat yang ingin menuju jaringan lokal KCabang-1, harus melewati 10.0.0.2 (ip virtual KCabang-1
Jika sudah klik OK.
3. Terakhir aktifkan interface OVPN Server melalui PPP > Interface > OVPN Server
Enabled : Centang #Untuk mengaktifkan interface OVPN Server
Mode : Ethernet
Certificate : cert1 #pilih sertifikat yang sudah kita import diawal.
Require Client Certificate : Jangan dicentang
Silahkan disesuaikan dengan gambar milik saya ini :
Jika sudah klik OK.
Konfigurasi OpenVPN Client
1. Untuk konfigurasi dari sisi KCabang-1 sebagai OpenVPN Client caranya cukup mudah. Kalian tinggal menambahkan interface OVPN Client untuk mengkoneksikan KCabang-1 ke KPusat.
Arahkan ke menu Interface > + > OVPN Client
Connect To : 192.168.0.13 #diisi dengan ip publik asli dari KPusat/OVPN Server
Mode : ethernet
User : ovpn-KCabang1 #samakan dengan Name pada saat membuat PPP Secret pada KPusat
Password : passovpn #samakan dengan Password pada saat membuat PPP Secret pada KPusat
Jika sudah klik Apply. Pastikan Status sudah menunjukkan connected pada sisi kanan bawah sebelum mengklik OK.
2. Selanjutnya kalian perlu menambahkan tabel routing secara manual agar jaringan lokal pada KCabang-1bisa terhubung dengan jaringan lokal pada KPusat. Masuk ke IP > Routes > + :
Dst. Address : 192.168.10.0/24 #diisi dengan subnet jaringan lokal KPusat
Gateway : 10.0.0.1 #diisi dengan ip virtual KPusat. Karena jika kita ingin menuju 192.168.10.0/24 harus melewati 10.0.0.1.
Jika sudah klik OK.
Sampai tahap ini, proses pengkonfigurasian OpenVPN Server dan OpenVPN Client telah selesai.
Pengetesan
Untuk memastikan bahwa benar kedua jaringan lokal pada KPusat dan KCabang-1 sudah terkoneksi, maka kalian bisa mencoba melakukan ping dari jaringan 192.168.10.0/24 ke jaringan 192.168.11.0/24 maupun sebaliknya.
Contoh, saya melakukan ping dari klien KCabang-1 ber-ip 192.168.11.2 ke klien KPusat yang ber-ip192.168.10.100 :
Kemudian saya coba traceroute ke 192.168.10.100 dan terlihat bahwa saya melewati ip 10.0.0.1 :
Silahkan dicoba sendiri untuk kebalikannya, yaitu dari KPusat ke KCabang-1.
Semoga bermanfaat :)