Zdravím čtenáře. Článek je určený pro ty, kteří chtějí na Mikrotik Routeru (Router OS) zprovoznit OpenVPN (ovpn) server. Ukážeme si i názorné připojení z Linux Mint (network-manager). 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?

  • lze provozovat na Linux, Solaris, OpenBSD, FreeBSD, NetBSD, Mac OS X, and Windows (2000/XP a novějších)
  • 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




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

! 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=<VEREJNA-IP-ROUTERU> 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=<HESLO-k-CERTIFIKATU>
/certificate set vasek trusted=yes

Zobrazení cerfikitátů

Sekce System – Certificates




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




Firewall

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

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




Konfigurace VPN serveru

PPP – Profiles – Add New




PPP – Interface – OVPN Server




PPP – Secrets




Připojení na VPN z Linux OS

sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome


 

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


Ověření připojení

 

 

 

 

 

 

vasek@vasek-ntb ~ $ ping 10.20.0.1
PING 10.20.0.1 (10.20.0.1) 56(84) bytes of data.
64 bytes from 10.20.0.1: icmp_seq=1 ttl=64 time=21.4 ms
vasek@vasek-ntb ~ $ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=25.0 ms
vasek@vasek:~$ traceroute 10.0.45
traceroute to 10.0.0.45 (10.0.0.45), 30 hops max, 60 byte packets
 1  10.20.0.1 (10.20.0.1)  42.689 ms  42.721 ms  42.765 ms
 2  10.0.0.45 (10.0.0.45)  42.783 ms  42.795 ms  42.795 ms


Na závěr

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