OPENVPN LOGO
6. června 2020

OpenVPN na Mikrotiku


V tomto článku si představíme praktickou konfiguraci OpenVPN (ovpn) serveru na Mikrotik Routeru (Router OS).
Jako klientskou stanici jsem použil Linux Fedora OS. Připojit se Však můžete i z jiných operačních systémů a i z mobilních zařízení (iOS, Android).

Proč OpenVPN?

  • VPN klienta lze provozovat na Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X, Windows (2000/XP a novějších), iOS, Android
  • snadná konfigurace oproti jíným VPN (např. IPSec)
  • na serveru stačí otevřít pouze 1 port
  • rychlá a bezpečná VPN

Konfigurace

IP VPN pool

Definuje rozsah IP adres, které budou dynamicky přiděleny připojeným klientům do VPN sítě.

/ip pool add name=ovpn-pool-1 ranges=10.20.0.100-10.20.0.200
ivpn pool

Certifikáty

Několik doporučení, než se do toho pustíte. Zkontrolujte si zda máte správně nastavený čas na routeru, než začnete vystavovat certifikáty (Sekce System – Clock)!

SYSTEM - CLOCK

clock
V případě, že byste při podepisování certifikátu dostali tuto chybu:
Action timed out - try again, if error continues contact MikroTik support and send a supout file (13)
Zkuste to znovu. Nebo změňte velikost klíče např. z 4096 na 2048 b. Záleží na tom, jak výkonný je Váš mikrotik.

Certifikační autorita (CA)

/certificate add name=CA-ITLES country="CZ" state="Czech Republic" organization="IT LES" unit="H" common-name=CA-ITLES key-usage=key-cert-sign,crl-sign days-valid=3650 key-size=2048
/certificate sign CA-ITLES ca-crl-host= name=CA-ITLES
/certificate export-certificate CA-ITLES
/certificate set CA-ITLES trusted=yes

VPN Server

/certificate add name=OPENVPN-SERVER-tpl country="CZ" state="Czech Republic" organization="IT LES" unit="H" common-name="vpn.itles.cz" key-usage=digital-signature,key-encipherment,tls-server days-valid=3650 key-size=2048
/certificate sign OPENVPN-SERVER ca=CA-ITLES name=OPENVPN-SERVER
/certificate set OPENVPN-SERVER trusted=yes

Šablona ke klientskému certifikátu

/certificate add name=client-tpl country="CZ" state="CZ" organization="IT LES" locality="Prague" common-name="client" days-valid=3650 key-size=4096 key-usage=tls-client

Certifikát pro VPN uživatele

/certificate add name=vasek copy-from="client-tpl" common-name="vasek"
/certificate sign vasek ca="CA-ITLES" name="vasek"
/certificate export-certificate vasek export-passphrase=
/certificate set vasek trusted=yes

Zobrazení cerfikitátů

Sekce System – Certificates

certifikaty

Stažení certifikátů a privátního klíče

Nyní si stáhneme vygenerované certifikáty (CA + klient) a privátní klíč klienta. Tyto soubory si nahrajeme na PC, z kterého budeme iniciovat připojení na vzdálený OpenVPN server.

Sekce Files

exportovane certifikaty

Firewall

Pozor na správné pořadí pravidel. Příkazy níže přidají pravidla na konec firewall tabulky.

Povolení portu pro VPN

/ip firewall filter add action=accept chain=input protocol=tcp dst-port=1194

Povolení komunikace

/ip firewall filter add chain=input src-address 10.20.0.0/24 action=accept
/ip firewall filter add chain=forward src-address 10.20.0.0/24 action=accept
firewall rules

Konfigurace VPN serveru

PPP – Profiles – Add New

ovpn-profile ovpn-profile-list

PPP – Interface – OVPN Server

ppp-ovpn-config-server

PPP – Secrets

openvpn-secrets
ovpn-secrets-list

Připojení k VPN z Linux OS

sudo dnf install network-manager-openvpn network-manager-openvpn-gnome
linux-connection-type-creating
linux-vpn-config
linux-vpn-config
linux-vpn-config
linux-vpn-config
linux-vpn-config

Ukázka vyexportované konfigurace pro Linux

client
remote 'vpn.itles.cz' 1194
ca '/home/vasek/Downloads/cert_export_CA-ITLES.crt'
cert '/home/vasek/Downloads/cert_export_vasek.crt'
key '/home/vasek/Downloads/cert_export_vasek.key'
auth-user-pass
cipher AES-256-CBC
dev tun
dev-type tun
proto tcp
nobind
auth-nocache
script-security 2
persist-key
persist-tun
user nm-openvpn
group nm-openvpn

Ukázka vyexportované konfigurace pro Windows

client
tls-client
verb 3
remote-cert-tls server
remote vpn.itles.cz
ca 'C:\Users\Vasek\OpenVPN\config\cert_export_CA-ITLES.crt'
cert 'C:\Users\Vasek\OpenVPN\config\cert_export_vasek.crt'
key 'C:\Users\Vasek\OpenVPN\config\cert_export_vasek.key'
auth-user-pass
cipher AES-256-CBC
dev tun
nobind
auth-nocache
script-security 2
persist-key
persist-tun
#comp-lzo no
proto tcp
tun-mtu 1500
mssfix 1400
redirect-gateway def1 bypass-dhcp
dhcp-option DNS 10.20.0.1

Routing

Na PC v NetworkManageru můžete nastavit, aby šel do VPNky pouze určitý síťový provoz. To lze zajistit přídáním routy nebo zaškrtnutím checkboxu Use only for resources on this connection

route
route

Ověření připojení

vpn-success-established-1
vpn-success-established

Na závěr

Snad Vám tento postup ušetří čas při konfiguraci OpenVPN.