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
INTERFACE OPENVPN
MIKROTIK LOG
TEST KONEKSI KE SERVER
OPENVPN SERVER LOG
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.
Sedikit share semoga berkenan.. nice
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 ?
Maksudnya ini laptop ada di dalam jaringan LAN mikrotik yah?
bisa di informasikan ip lan nya berapa?
Network Lan mikrotik : 192.168.100.0/24
IP interface lan mikrotik : 192.168.100.1
Laptop : 192.168.100.10
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
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 ?
Bisa di informasikan hasil perintah berikut di ubuntu server
ip route list
dan
traceroute 192.168.100.10
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
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?
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
[email protected]:/home/ubuntu# route add -net 192.168.100.0/24 gw 10.8.1.14 metric 60SIOCADDRT: Network is unreachable
[email protected]:/home/ubuntu#
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
mas, kenapa ketika saya ubah proto ke tcp, service openvpn nya tidak bisa dijalankan(error), mohon pencerahannya
terima kasih
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.
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?
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.
username dan password (user=aghe password=123456) itu bikin nya dimana pak.?
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.
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
Hapus baris tls-crypt dan tls-auth di konfigurasi openvpn server. (mikrotik tidak support ini).
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!
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.
Oke kalau begitu, terima kasih. Sangat membantu!
Gan. iseng mau tanyak. Untuk Configurasi OpenVPN yang sudah ada (misalkan sudah punya config OpenVPN Client di windows) apakah bisa digunakan pada Mikrotik ?
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.
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.
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
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.
Untuk troubleshoot silahkan gunakan OpenvnGUI nanti ada menu log nya mas, bisa terlihat error dimana
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
Matikan terlebih dahulu firewall di windows, kadang windows blocking ICMP ping