OpenVPN certifikáty s heslem

Protože doposud nebyla vyslyšena nejen moje žádost, aby Foris uměl generovat OpenVPN certifikáty vyžadující heslo a ani nebyl zveřejněn návod, jak si takové certifikáty pro přes Foris zprovozněnou OpenVPN službu udělat ručně, otvírám na toto téma samostatné vlákno.

Chtěl jsem koupit Omnii i do firmy, kde by sloužila jako GW/FW s hlavním účelem umožnit vzdálený přístup. V současnosti používám starší PC, na kterém běží pfSense a funguje dobře, ale hučí + spotřeba + … Protože to Foris neumí a návod se neobjevil, do Omnie jsem nešel. Nyní se objevil Turris Mox, kde bych mohl se základním modulem + 5 portovým switchem dosáhnout opět kýženého výsledku, pokud se vyřeší tento můj zásadní problém se zabezpečením VPN. Na pfSense mi běží už jen 2 VLANy a něco jako Pakoň (i když věřím, že Pakoň bude mnohem lepší), takže by neměl být problém s přechodem na toto řešení.

Co bych tedy chtěl/uvítal:

  1. Volbu do Foris na generování OpenVPN certifikátu zabezpečeného heslem
    a/nebo alespoň
  2. Návod, jak takový certifikát pro OpenVPN vyrobit a podstrčit (rád bych ho pak viděl ve Forisu, abych ho mohl např. zrušit když někdo odejde a neměl jsem tam zapomenuté certifikáty přístupné jen přes hrabání se v souborech)
2 Likes

Chci požádat Turris Team o informaci, jestli mohu s bodem 1. nebo alespoň 2. počítat a budou hotovy do termínu distribuce Turris Mox zákazníkům. Dnes by měla začít kampaň toto je pro mě zásadní informace pro rozhodnutí jestli podpořit nebo hledat jinde.

Podpora pro OpenVPN server ve Forisu už je. Není tam jen podpora pro hesla. Asi by nebylo moc obtížné ji tam dodělat, ale nemohu to slíbit. Můžete ale vytvořit feature request na gitlabu (tohohle topiku si asi doposud vážně nikdo nevšiml).
Obecně bod 2 je hotový. Každý vygenerovaný certifikát se zobrazí ve Forisu a můžete ho revoknout.
Bod 1 můžete ale obejít tím, že heslo přidáte až po vygenerování. V podstatě je to jedno jestli se to udělá na routeru nebo kde se to udělá. Ano není to tak user friendly, ale je to zcela validní řešení.

Edit: Nepřečetl jsem si Váš post pořádně. By už jste nějak o tuto feature žádal? Jakým způsobem? Nějaká reference? A pokud Vám stačí návod pak by neměl bát problém něco takového udělat.

Ano, “žádal” zde na fóru v nějakém topicu (musel bych pohledat), který se netýkal jen této funkcionality a kde reagovali členové teamu, takže jsem si trochu naivně myslel, že když to četli… Určitě jsem návod chtěl po Noře v topicu, který sama vytvořila a ptala se co zlepšit, nakonec po dlouhé době napsala, že se tím proberete, a návod doteď není.

Jde mi o to, jak udělat certifikát s heslem, zprovoznění vlastního OpenVPN ve Forisu je na pár kliknutí. Pokud by se heslo (jako nepovinná volba) dalo zadat rovnou při tvorbě certifikátu ve Forisu, bylo by to ideální.

S ohledem na to co napsal cynerd, je to snadné :+1:

Nejdřív potřebuješ najít svůj certifikát:

root@gw:/# cd /etc/ssl/ca/openvpn
root@gw:/etc/ssl/ca/openvpn# cat index.txt
V       280317212410Z           01      unknown /CN=turris
V       280317212814Z           02      unknown /CN=YOUR_USER
...

Zajímají tě ty indexy index 01, 02, etc.
Jakmile najdeš, co hledáš, můžeš zazálohovat původní certifkát a přidat heslo (řekněme pro položku 02) :

root@gw:/etc/ssl/ca/openvpn# cp 02.key 02.key~
root@gw:/etc/ssl/ca/openvpn# openssl rsa -aes256 -in 02.key -out 02.encrypted.key
root@gw:/etc/ssl/ca/openvpn# rm 02.key
root@gw:/etc/ssl/ca/openvpn# mv 02.encrypted.key 02.key

Tímto je hotovo. Stačí s Forrisu znovu stáhnout konfiguraci a OpenVPN už se bude ptát na heslo k privátnímu klíčí.

4 Likes

Díky moc, funguje. O to víc mě mrzí, že takový jednoduchý návod musíme z teamu páčit bezúspěšně dlouhé měsíce. I to dodání do Forisu by bylo jednoduché, pod Client name škrtátko “Chránit certifikát heslem” a políčko na heslo + pár příkazů v pozadí, možná jen změnit jeden co dodá zadané heslo rovnou při generování.

Jen technická: na pfSense mám vytvořené uživatele a vlastní certifikát asi zaheslovaný není, ale je potřeba vědět uživatelské jméno a heslo, které se ověří proti serveru. Píšu to proto, že jsem se v první chvíli po přidání hesla v Omnii divil, jak to, že se mohu stále připojit bez hesla, ale on je to ten samý certifikát, jen lokálně zaheslovaný. Tzn. pokud už došlo k distribuci konfigurace s nezaheslovaným certifikátem, je potřeba udělat revoke, vyrobit nový, ten zaheslovat a poskytnout novou konfiguraci, pokud se bez hesla nemá jít připojit.