Skip to main content

14.5 VPN cez OpenVPN

OpenVPN

OpenVPN je otvorený multiplatformový projekt pre rýchle a efektívne VPN. Pre zabezpečenie spojenia sa využívajú TLS certifikáty rovnako, ako v prípade SSTP. Klient sa môže autentifikovať menom a heslom, komunikáciu je možné zabezpečiť zvoleným variantom šifrovania AES.

OpenVPN podporuje aj šifrovanie Blowfish, ktorý je dokonca v MikroTik RouterOS predvolený. Toto šifrovanie však nie je dostatočne bezpečné kvôli bezpečnostným zraniteľnostiam, preto by sme ho nemali používať.

Výhody OpenVPN

Výhody OpenVPN okrem podpory rôznych klientskych zariadení (hoc s potrebou inštalácie dodatočného softvéru) sú z technického hľadiska hlavne:

  • možnosť určiť sieťovú masku (Netmask) pre klienta - je teda možné dosiahnuť, že všetci klienti budú zdanlivo bezprostrední „sieťoví susedia“ - pozri poznámky nižšie;
  • na serveri je možné definovať trasy smerovania (Push Routes), ktoré sa odovzdajú klientovi - pozri poznámky nižšie;
  • možnosť zvoliť prevádzkový L4 protokol (Protocol), v ktorom budú prenášané tunelované údaje - okrem spojenia cez TCP podporuje aj UDP, ktorý je efektívnejší (dosiahneme vyššie rýchlosti);
  • možnosť zvoliť sieťovú vrstvu (Mode) pre spojenie klientov - okrem bežného VPN spojenia na L3 (IP / TUN) je možné vytvoriť aj „L2 tunel“ (Ethernet / TAP) - pozri poznámky nižšie.

Ďalšou potenciálnou výhodou je hardvérová podpora šifrovania AES na niektorých zariadeniach MikroTik - konkrétne na zariadeniach s CPU IPQ-4018/4019/6010 (napríklad hAP ac², hAP ac³, hAP ax², hAP ax³) a AL (napríklad RB4011, CCR2xxx). Prehľad modelov a ich CPU nájdeme na webe MikroTik. Konkrétne informácie o hardvérovej podpore, žiaľ, nie sú dostupné v dokumentácii, no zmienky sú v zozname zmien („changelog“) v RouterOS verzií 7.2 a 7.7. Vo všeobecnosti je možné očakávať podporu nanajvýš na úrovni IPsec - teda v niektorých prípadoch len AES-128 CBC a AES-256 CBC s hašovacou funkciou SHA-1 a SHA-256.

Nevýhody OpenVPN

Hlavnou nevýhodou je nutnosť inštalácie klientskeho softvéru pre koncové zariadenia, čo však nie je zásadná prekážka.

Potenciálnym problémom môže byť skutočnosť, že implementácia MikroTik klienta neumožňuje overovať adresu servera v certifikáte servera.

Z praktického hľadiska teda pri pripájaní MikroTik klienta nielenže nemá zmysel, ale je priamo bezpečnostným rizikom používať certifikáty podpísané verejnou certifikačnou autoritou. Ktokoľvek by mohol vytvoriť falošný server a MikroTik klient by mu veril. V záujme bezpečnosti musíme použiť self-signed certifikát alebo vlastnú CA.

Požiadavky z hľadiska firewallu

Z hľadiska firewallu a NAT je treba vedieť, že pre fungovanie OpenVPN je na strane servera potrebný port TCP/1194 alebo UDP/1194 - je ich však možné zmeniť v konfigurácii.

Konfigurácia MikroTik RouterOS

Konfigurácia klienta

...ovpn-klient.webp

Konfigurácia servera

...

ovpn-server.webp

Poznámky k špeciálnym funkciám

Sieťová vrstva (Mode)

Kým L3 spojenie umožňuje (cez smerovanie) prepojiť nezávislé IP siete, L2 spojenie umožňuje vzájomne spojiť dve vzdialené L2 siete do jedinej IP siete.

OpenVPN L3.webp

režim L3

OpenVPN L2.webp

režim L2

Režim L2 (Ethernet) je nutné nastaviť aj na strane servera, aj na strane klienta, potom môžeme sieťové rozhranie OpenVPN zaradiť do premostenia (bridge). Na strane klienta to dosiahneme bežným spôsobom, na strane servera máme dve možnosti:

  • a) vopred vytvoriť rozhranie pre konkrétneho OpenVPN klienta / používateľa (OVPN Server Binding) a toto rozhranie premostiť;
  • b) v profile servera definovať, do ktorého premostenia sa majú priradiť všetci klienti (voľba Bridge).

Teoreticky by v režime L2 nemali byť potrebné IP adresy na OpenVPN spojení (pre server a pre klienta), no formálne existovať musia. Klient však zrejme získa adresu cez DHCP.

Sieťová maska (Netmask)

Hoci formálne budú všetci klienti v rovnakej sieti (predvolená je maska /24), v skutočnosti ide len o nasmerovanie tejto siete do VPN spoja. Čiže pakety sa nedoručujú priamo cieľu, ale medzikrokom v smerovaní bude VPN server - bude vidieť v trase (traceroute). Čo z toho vyplýva v praktickom nasadení?

Pokiaľ sú VPN klientmi priamo koncové zariadenia (napríklad notebooky home-office zamestnancov), naozaj budú môcť spolu obojsmerne komunikovať bez potreby pridávania akýchkoľvek smerovaní - obaja budú totiž pakety vkladať do VPN spoja.

No ak je VPN klientom smerovač, tak jeho LAN klienti budú môcť komunikovať s VPN serverom len s použitím NAT, pretože VPN server nepozná cestu do žiadnej cudzej LAN.

Ak by mali byť vzájomne dostupní klienti dvoch rôznych LAN sietí (pobočiek), museli by mať trasu druhej LAN zadanú nielen na svojich smerovačoch, ale aj na VPN serveri, ktorý ich prepája. VPN klient nemôže smerovať priamo na bránu iného klienta.

Sieťová maska má zmysel len v režime L3 spojenia a nevyužíva sa v režime L2.

Trasy smerovania (Push Routes)

Každá trasa sa zapisuje v tvare {IP adresa siete} {maska siete} {brána} {vzdialenosť}, pričom vzdialenosť je možné vynechať (bude 1) a prípadne aj bránu (bude interná adresa OpenVPN servera). Je možné definovať aj viaceré trasy, oddelené čiarkou, napríklad „10.110.0.0 255.255.0.0, 172.16.0.0 255.240.0.0“.

Historicky a pre maximálnu kompatibilitu so staršími zariadeniami sa maska zapisuje v plnom tvare (napríklad „10.110.0.0 255.255.0.0“). Moderní OpenVPN klienti síce už podporujú aj praktickejší CIDR zápis s prefixom (napríklad „10.110.0.0/16“), no MikroTik Router medzi nich nepatrí.

Tieto trasy umožnia VPN klientovi prístup do uvedených LAN sietí - ak je klientom priamo koncové zariadenie (napríklad notebook home-office zamestnanca), postačuje to pre obojsmernú komunikáciu. No pokiaľ je VPN klientom smerovač, toto už neplatí pre jeho LAN klientov, pretože VPN server nepozná spätnú trasu do žiadnej LAN siete klienta. Je nutné použiť NAT alebo serveru zadať trasu do klientskej LAN.

Trasy smerovania majú praktický zmysel len v režime L3 spojenia.