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
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
Action timed out - try again, if error continues contact MikroTik support and send a supout file (13)
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
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 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
Konfigurace VPN serveru
PPP – Profiles – Add New
PPP – Interface – OVPN Server
PPP – Secrets
Připojení k VPN z Linux OS
sudo dnf 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
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
Ověření připojení
Na závěr
Snad Vám tento postup ušetří čas při konfiguraci OpenVPN.