Mikrotik adalah salah satu Network Router yang menjadi favorit saya selain harga ramah dikantong fitur-fitur nya pun cukup banyak sehingga saya bisa mengexplore segala macam protokol di dalam ilmu jaringan.

Khusus untuk fitur Virtual Private Network (VPN) saja kita bisa mengexplore banyak macam VPN seperti pptp, sstp, l2tp, ipsec dan openvpn.
Bisa di bilang mikrotik cocok untuk semua kalangan baik kita sebagai pemula maupun tingkat profesional.
Memang tidak semua fitur di upstream rilis di implementasikan kedalam mikrotik, seperti OpenVPN kita harus menyesuaikan settingan yang seharusnya sudah bisa berjalan di system os lain akan tetapi di mikrotik ada sedikit kendala, untuk itu ditulisan ini saya akan kupas tuntas settingan-setingan yang perlu dan tidak perlu untuk bisa mengkoneksikan device mikrotik sebagai client ke openvpn server yang berjalan di os linux.

Openvpn client mikrotik menurut saya lebih mudah untuk dikonfigurasikan di bandingkan mengkonfigurasikan openvpn client di OS lain seperti windows, linux bahkan freebsd system.
Seperti pada umumnya ada client harus harus ada server, pertama kita sesuaikan konfigurasi server agar cocok dengan mikrotik.
Standart server openvpn server di tulisan ini berdasarkan tulisan saya di OpenVPN Server, Untuk itu pastikan openvpn server teman-teman sudah sesuai dengan tulisan saya di artikel tersebut.

Modifikasi Openvpn Server

Server default sudah berjalan di client os lain tapi tidak di os mikrotik, untuk itu kita rubah beberapa baris di ovpnserver.conf seperti dibawah ini:

Ubah protokol yang di gunakan dari UDP menjadi TCP (line no 5)
proto tcp

Hapus baris tls-auth (line no 29)
;tls-auth ta.key 0

Disable lzo kompresi (line no 44)
;comp-lzo

Ubah HMAC algoritma menjadi SHA1 (line no 79)
auth SHA1

Setelah perubahan selesai di ovpnserver.conf lakukan restart service openvpn di server.

Membuat Client sertifikat

proses pembuatan sertifikat bisa di lakukan di lokasi perangkat yang sama dengan ketika kita membuat sertifikat untuk CA dan sertifikat server.
Gunakan Common Name (CN) mikrotik ketika membuat sertifikat client dengan easy-rsa seperti contoh di tulisan saya yang terdahulu sertifikat dengan easy-rsa.
Setelah selesai proses pembuatan client sertifikat akan menghasilkan mikrotik.key dan mikrotik.crt sebelum bisa digunakan mikrotik.key harus di convert ke PEM format dengan OPENSSL command sebagai berikut (linux)

$ openssl rsa -in mikrotik.key -out mikrotik.pem


Unggah 3 berkas sertifikat kedalam storage system mikrotik melalui winbox
– ca.crt
– mikrotik.crt
– mikrotik.pem

Setup Client Mikrotik

Login ke dalam mikrotik menggunakan winbox.
Kemudian jalankan proses import di system mikrotik.

/certificate
import file=mikrotik.crt
import file=mikrotik.pem
import file=ca.crt

Buat interface virtual untuk openvpn-client masuk ke terminal mikrotik dan jalankan:

/interface ovpn-client add \
name=agusprasetia-vpn connect-to=1.1.1.1 auth=sha1 cipher=aes256 \
certificate=mikrotik.crt_0 profile=default port=1194 mode=ip \
add-default-route=no comment=agusprasetia-vpn user=aghe password=123456

Sampai disini mikrotik sudah terkoneksi ke openvpn server, rekan-rekan bisa gunakan vpn ini untuk digunakan contohnya untuk mengakses jaringan di belakang router jika mikrotik anda tidak memiliki ip publik dan lain sebagainya.

31 thoughts on “Instalasi OpenVPN Client di Mikrotik”
  1. Mau tanya, saya sudah bisa konek nih antara openvpn server(public cloud, ubuntu) dan mikrotik sudah bisa saling ping juga, tapi laptop saya yang konek ke mikrotik belum bisa ping ke openvpn server begitu juga sebaliknya. 

    Mungkin gan Agus punya saran atau koreksi  ?

    1. Hal ini di sebabkan ubuntu server anda tidak tahu jalur menuju ip subnet 192.168.100.0/24,
      karena koneksi vpn hanya mengenali jalur atara ubuntu dgn mikrotik.
      Perlu di buatkan static route di server ubuntu mas jae, ip berikut hanyalah sebagai contoh silahkan sesuaikan dengan kondisi riil di tempat mas jae.
      ip vpn server: 10.0.1.1
      ip vpn mikrotik : 10.0.1.10
      vpn virtual device : tun0

      Masuk sebagai root di terminal server ubuntu jalankan

      ip route add 192.168.100.0/24 via 10.0.1.10 dev tun0

      Selanjutnya login sebagai admin di terminal mikrotik

      /ip route add dst-address=10.0.1.0/24 pref-src=192.168.100.0 gateway=10.0.1.10 distance=10

      1. Mas agus, ping dri laptop ke server sudah bisa. Tapi dri server ke client belum bisa, waktu saya menambahkan routing di server ada notif ‘Error: Nexthop has invalid gateway.’ Itu kenapa kira kira ?

          1. VPN server : 10.8.0.1
            tunnel mikrotik : 10.8.0.14
            network lan : 192.168.100.0/24

            [email protected]:/home/ubuntu# ip route list
            default via 192.168.2.2 dev enp0s3 proto static
            10.8.0.0/23 via 10.8.0.2 dev tun0
            10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
            192.168.2.0/24 dev enp0s3 proto kernel scope link src 192.168.2.52

            [email protected]:/home/ubuntu# traceroute 192.168.100.10
            traceroute to 192.168.100.10 (192.168.100.10), 30 hops max, 60 byte packets
            1 _gateway (192.168.2.2) 0.263 ms 0.379 ms 0.366 ms
            2 10.33.0.1 (10.33.0.1) 4.939 ms * *
            3 202.169.32.242 (202.169.32.242) 5.441 ms 4.602 ms 4.582 ms
            4 * * *
            5 * * *
            6 * * *
            7 * * *
            8 * * *
            9 * * *
            10 * * *
            11 * * *
            12 * * *
            13 * * *
            14 * *^C

          2. root:# route add -net 192.168.100.0/24 gw 10.8.1.14 metric 60

            btw kenapa ip vpn ubuntu nya 10.8.0.2 yah?

          3. Klo di ifconfig munculnya tetep 10.8.0.1 mas
            tun0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500
            inet 10.8.0.1 netmask 255.255.255.255 destination 10.8.0.2
            inet6 fe80::5682:36b8:d0d0:b90f prefixlen 64 scopeid 0x20
            unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 100

  2. Disable NAT tidak di sarankan karena anda punya LAN di belakang mikrotik.
    Seperti nya settingan vpn di servernya ada yg kurang, coba di cek lagi.
    Aktifkan ip forwarding dengan menambahkan/mengedit baris ini di berkas /etc/sysctl.conf.
    net.ipv4.ip_forward=1
    lalu

    sudo sysctl -p

    Atau solusi yang mungkin adalah menginstall vpn client di laptop 192.168.100.10

  3. mas, kenapa ketika saya ubah proto ke tcp, service openvpn nya tidak bisa dijalankan(error), mohon pencerahannya

    terima kasih

    1. Welcome mas dhi, silahkan di cek setingan conf di server harus tcp juga supaya match.
      Juga silahkan cek eror apa yang muncul di file log /var/log/openvpn-server.log.

  4. Ok mas, mau nanya lg mas, IP ketika membuat openvpn client di mikrotik itu IP server openvpn atau IP publicnya ya? Dan ciphernya apakah harus aes256?

    1. Di isi dengan ip public server openvpn nya.
      Kalo disisi server support bermacam cipher suite tapi limitasi di mikrotik hanya support aes dan blowfish sebaiknya gunakan aes256.

    1. Untuk username dan password di isikan sembarang saja karena client tdk bisa di create jika tdk diisikan kolom usernya,
      dan juga kebetulan saya tdk mengaktifkan password auth di server openvpn di linux.

  5. Permisi mas, saya mau tanya, saya sudah setting openvpn server di linux, client bisa connect semua, kecuali mikrotik router os, dapat errornya di log seperti ini

    tls-crypt unwrap error: packet too short , kira2 masalahnya dimana ya?

    terima kasih

  6. kalau ini saya hapus bukannya jadi ga secure ya mas koneksinya? Jika line ini dihapus saya sudah bisa connect, tetapi karena security issue mungkin masnya bisa kasih saran untuk alternatif dari ini? Terima kasih!

    1. Sebenarnya tetap secure tingkat menengah, karena ini hanya menghilangkan proteksi MITM (man In the Middle Attack).
      Sayangnya saya tidak ada solusi lain karena terbentur oleh limitasi yang tersedia di RouterOS mikrotik sambil berharap di versi yg terbaru mikrotik akan support fitur ini.

  7. Gan. iseng mau tanyak. Untuk Configurasi OpenVPN yang sudah ada (misalkan sudah punya config OpenVPN Client di windows) apakah bisa digunakan pada Mikrotik ?

    1. Seperti nya tidak bisa secara langsung karena mikrotik tidak ada tool untuk mengkonversi config windows yng biasanya berakhiran .ovpn dan di import langsung ke mikrotik.
      Kemungkinan bisa secara manual di entry satu persatu sesuai config di windows. Tapi memang tidak 100% kompatible.

  8. Saya beruntung sekali menemukan tutorial ini, seperti yang saya butuhkan. Saya juga punya topologi sebuah OpenVPN server yang running didedicated server saya dengan OS Debian. Saya menjalankan OpenVPN server di server tersebut menggunakan Docker.
    Sudah berhasil mengkonekkan MikroTik saya ke OpenVPN server, lalu ada client (katakanlah hp) yang juga berhasil konek dg OpenVPN server tersebut.
    Antara OpenVPN server, MikroTik, dan client hp sudah bisa terhubung dg baik, bisa ping dan bisa konek ke TCP.
    Saya punya sebuah jaringan di rumah di luar MikroTik, jaringan tersebut punya network 192.168.10.0/24 dan aslinya bukan jaringan yang dibuat (DHCP server) dg MikroTik, tetapi ada sebuah router di luar MikroTik yaitu pfSense. Sebenarnya di pfSense sendiri (192.168.10.1) saya sudah bisa mem-ping server OpenVPN di 10.8.0.1, bisa mem-ping bahkan hp yang dikonek dari jaringan luar (4G) melalui VPN server yang sama dengan IP 10.8.0.4, dan tentunya juga bisa memping IP VPN client MikroTIk 10.8.0.3
    Tetapi yang jadi masalah adalah, baik dari hp dan OpenVPN server, tidak bisa konek dengan jaringan 192.168.10.0/24 ini.
    Data2nya sbb :
    OpenVPN : 10.8.0.0/24
    OpenVPN server : 10.8.0.1
    MikroTik OpenVPN IP : 10.8.0.3
    HP OpenVPN IP : 10.8.0.4
    Jaringan LAN rumah dari pfSense : 192.168.10.0/24
    IP address pfSense : 192.168.10.1
    IP MikroTik yang didapat dari pfSense : 192.168.10.2

    Dari OpenVPN server :
    # ip route
    default via 172.16.0.1 dev eth0
    172.16.0.0/16 dev eth0 proto kernel scope link src 172.16.0.10
    192.168.10.0/24 via 10.8.0.3 dev tun0 metric 60
    10.16.0.0/24 via 10.8.0.2 dev tun0
    10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.1
    keterangan : 172.16.0.0/16 itu network docker container

    Di MikroTik :
    Saya sudah melakukan srcnat out:OpenVPN masquerade
    Saya sudah mencoba melakukan : /ip route add dst-address=10.8.0.0/24 pref-src=192.168.10.0 gateway=10.8.0.3 distance=10
    Bahkan saya sudah mencoba src-nat dst-addr-list 192.168.10.0/24 action=src-nat to address=192.168.10.2

    Tapi sampai saat ini masih belum berhasil mengkonekkan jaringan rumah saya dengan jaringan dari OpenVPN.

    Siapa tau pak Agus bisa membantu kasus saya yang seperti ini?

    Terima kasih banyak.

    1. Ini sepertinya mikrotik di belakang NAT pfsense ya,
      kalo seperti ini topoogy sepertinya tidak bisa kecuali yang sebagai client konek ke openvpnserver adalah pfsense nya yang acting sebagai router

  9. pak mau nanya, baris tls-crypt dan tls-auth sudah saya hapus, client mikrotik bisa konek. tp utk client windows kok g bisa konek pak, kenapa ya? terima kasih.

  10. om…
    antar mikrotik sudah bisa ping dan jaringan LAN d belakang mikrotik sudah bisa terkoneksi
    tapi untuk untuk windows klien pake file .ovpn kok gabisa konek ya?
    Topologi:
    VPN server AWS : 10.10.10.1
    Mikrotik 1 : 10.10.10.2
    Mikrotik 1 [LAN] : 192.168.10.1]
    Mikrotik 2 : 10.10.10.3
    Mikrotik 2 [LAN] : 192.168.20.1
    Windows Klien : 10.10.10.3 [pake ovpn] – konek ke VPN server tapi gaisa ping/remote mikrotik
    oiya, kalo untuk OSPF di VPN gimana ya om? biar gak edit routing satu-satu di ccd

    terimakasih

Leave a Reply

Your email address will not be published. Required fields are marked *