Sunday, August 31, 2014

Membangun OpenVPN Server dan OpenVPN Client dengan Mikrotik

Postingan satu-satunya di bulan agustus yang bertepatan pada tanggal terakhir ini, saya akan berbagi mengenai cara instalasi OpenVPN Server maupun OpenVPN Client dengan Mikrotik.

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 :

Disitu terlihat kita menambahkan sebuah ip baru pada tiap-tiap router, yaitu 10.0.0.1 dan 10.0.0.2. Tujuannya seperti yang sudah saya katakan, agar memudahkan kita dalam memonitor jaringan VPN kita. Nantinya ketika jaringan VPN kita ini sudah terkoneksi, maka yang terbaca adalah kedua ip baru tersebut. Dan kedua ip tersebut harus berada dalam satu subnet. Dalam kasus ini maka mereka tergabung dalam subnet 10.0.0.0/24.

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 adalah 118.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-1 bisa 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-ip 192.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 :)

SUMBER

4 comments:

  1. selamat sore mas
    saya staff it di bimbel ini mas

    kami memakai vpn juga dikantor kami mas

    tapi terkadang tidak bisa tersambung mas ke ip vpn server

    biar pon dari server client kita sndiri

    kami memakai isp speedy mas
    dan kendala kami tidak bisa tersambung ke vpn server pusat maupun server client


    topologi kami

    VPN Server Pusat(linux ubuntu server>====> Server Client(LINUX UBUNTU SERVER>===>>> client (WINDOWS)


    JIKA KITA PING DARI CLIENT(WINDOWS) KE ALAMAT VPN SERVER CLIEANT MAKA BALASANNYA UNCREABLE
    SEPERTI ITU JUGA JIKA KE SERVER PUSAT
    DAN SAMA JUGA BALASAN DARI SERVER PUSAT JIKA KITA PING DARI SERVER PUSAT...


    saya mohon pencerahannya mas

    kalo bisa pencerahannya lewat gmail aja yah

    togarma29@gmail.com


    terimakasih banyak mas

    ReplyDelete
    Replies
    1. @asa togarma : harus ditrace dlu mas permasalahannya dmana, dan juga ip public trsbut harus diwhite list mas agar bisa dipakai

      thanks mas dah berkunjung

      Delete
    2. @asa togarma : harus ditrace dlu mas permasalahannya dmana, dan juga ip public trsbut harus diwhite list mas agar bisa dipakai

      thanks mas dah berkunjung

      Delete
  2. @Ary EJFA : makasih gan dah comment

    Stay on trus yah gan :D

    ayolinux.blogspot.co.id

    ReplyDelete