Hlavní navigace

OpenVPN pro mírně pokročilé

Dan Ohnesorg

Generoval jsem klíče na jedné 10 let staré instalaci OpenVPN a přemýšlel jsem při tom, kolik toho mezitím umí nového a přitom je často používána tím deset let starým způsobem. Je možné, že o některých nových vlastnostech vůbec nevíte, nebo jste se je báli použít. Možná vás pár novinek zaujme.

První je moje oblíbené vkládání klíčů přímo do konfiguračního souboru. Tím dosáhneme toho, že uživatel dostává jeden jediný soubor (typicky s příponou .ovpn) a může se připojit velmi jednoduše bez vymýšlení, kam soubor dal, a jestli není potřeba nastavit nějaké cesty k ostatním souborům. Syntaxe je následující:

<ca>
-----BEGIN CERTIFICATE-----
.......
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
.....
-----END PRIVATE KEY-----
</key>

Jinak řečeno místo parametrů ca, cert a key, které odkazují na soubory vložíte obsah souboru přímo do konfiguračního souboru OpenVPN. Zvláště pro uživatele na Microsoft Windows je to velké zjednodušení.

Není problém tyto parametry různě kombinovat, pokud např. chcete mít privátní klíč lépe chráněný v zvláštním souboru a nebo pokud vložíte do konfiguračního souboru jen certifikát certifikační autority a necháte v souborech klíče uživatelů. Podporovány jsou následující parametry: ca, cert, dh, extra-certs, key, pkcs12, secrettls-auth.

Když zmiňuji Microsoft Windows, tam můžete klíče uživatelů vložit do systémového úložiště certifikátů, které je přeci jen chráněno lépe než soubory na disku a certifikát odkázat z konfiguračního souboru pomocí jeho otisku a nebo jména následujícím způsobem:

cryptoapicert "THUMB:<cert_thumb>"

nebo

cryptoapicert "SUBJ:<cert_subject>"

Hodnotu pro THUMB lze získat asi jen po importu certifikátu do úložiště a zobrazení jeho vlastností (v češtině se položka jmenuje „Kryptografický otisk“). Pokud použijeme SUBJ, je situace jednodušší. Ten si můžeme zobrazit přes příkaz openssl:

$ openssl x509 -in certifikat.crt -noout -subject

Lomítka a názvy položek ve výpise nahradit čárkami, např.:

/C=CZ/ST=Czech Republic/L=Prague/O=Root.cz/CN=root1

převedeme na

CZ, Czech Republic, Prague, Root.cz, root1

a do konfiguračního souboru tedy vložíme

cryptoapicert "SUBJ:CZ, Czech Republic, Prague, Root.cz, root1"

Dodatek: Jak správně podotkl Ind v diskuzi pod článkem, THUMB lze zjistit i bez klikání následujícím způsobem:

$ openssl x509 -sha1 -fingerprint -in cert.pem \
-out /dev/null | sed 's/:/ /g' | tr '[:upper:]' '[:lower:]'

Jedná se o SHA1 otisk zbavený dvojteček a převedený na malé znaky.

Další konfigurační volba připomínající HTML tag se používá pro sdružování parametrů pro spojení s vzdáleným serverem. Můžeme totiž narazit na sítě, které blokují různé porty a tak si připravíme na straně serveru více OpenVPN démonů s různými konfiguracemi. A uživatele pak vyšleme do světa s konfiguračním souborem, který umí všechna připojení najednou a postupně je vyzkouší, dokud spojení neproběhne úspěšně. Může to vypadat např. takto:

<connection>
remote vpn.firma.cz 1194 udp
</connection>

<connection>
remote vpn.firma.cz 443 tcp
</connection>

<connection>
remote 1.1.1.1 443 tcp
</connection>

V tomto případě se použije v první řadě klasické spojení na port 1194 protokolem udp, pokud není úspěšné, tak se zkusí port pro https a tcp spojení a na závěr se pro klienty, kteří nemají přístup k DNS zkusíme spojit na IP adresu naší brány bez použití DNS. Vždy je ale dobré tam mít jako preferovanou variantu s použitím DNS, protože pokud přestěhujete VPN server, nebudete muset hned obíhat všechny klienty a odpadnou vám jen ti, kteří se z nějakého důvodu spojují přímo na IP adresu.

Na závěr snad ještě osobní zkušenost, OpenVPN už umí IPv6 a opravdu to funguje. Jen krátká ukázka konfigurace:

tun-ipv6
server-ipv6 2a01:ffff:aaaa:bbbb::/64
push "route-ipv6 2000::/3"
push "tun-ipv6"

Routu 2000::/3 klientům posílám, protože jsou často v síti, kde IPv6 nefunguje na 100 %, takže je lepší jim stáhnout všechen IPv6 provoz do tunelu. Je to obdobné řešení jako redirect-gateway pro IPv4 provoz.

Našli jste v článku chybu?

4. 2. 2015 8:39

Ac pouzivam openvpn casto, taky mam zazite urcite postupy a do manualu moc nekoukam. Dobre tipy, diky

4. 2. 2015 9:10

Bohužel, funkční přesměrování výchozí IPv6 brány do tunelu v OpenVPN zatím neexistuje. Řešení popsané v článku funguje dobře do chvíle, než se k VPN koncentrátoru připojíte pomocí IPv6.

V tu chvíli takové přesměrování dříve nebo později změní OpenVPN na benchmarkovací nástroj měřicí výkonnost šifrování a propustnost TUN/TAP zařízení, protože se pakety určené pro koncentrátor začnou točit v kruhu.

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

120na80.cz: Co všechno ovlivňuje ženskou plodnost?

Co všechno ovlivňuje ženskou plodnost?

Podnikatel.cz: E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

120na80.cz: 5 nejčastějších mýtů o kondomech

5 nejčastějších mýtů o kondomech

DigiZone.cz: Sat novinky: slovenská TV8 HD i ruský NTV Mir

Sat novinky: slovenská TV8 HD i ruský NTV Mir

DigiZone.cz: Ohrozí Freedom TV přechodové sítě?

Ohrozí Freedom TV přechodové sítě?

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

Podnikatel.cz: Udávání a účtenková loterie, hloupá komedie

Udávání a účtenková loterie, hloupá komedie