Je operator overhandigt een CA-bundel, een clientcertificaat en de bijbehorende sleutel, en de client start pas als deze in één profiel zijn verbonden. Het profiel is configuratie: het wijst naar die bestanden, bevat ze niet, en door het te bewerken wordt het geen certificaat. De handleiding begint bij een al goedgekeurde laptop en eindigt met een profiel dat je vanuit een bekende map kunt starten. Ze maakt geen CA aan, registreert geen nieuw certificaat en raakt de server niet aan.

Het doel hier is een Linux-OpenVPN-2.6-opdrachtregelclient, gerouteerd via TUN over UDP, met certificaatverificatie.

Verzamel alleen de bestanden aan de clientkant

Werk in een beschermde map en verzamel het goedgekeurde CA-vertrouwensmateriaal, je uitgegeven clientcertificaat en de privésleutel die daarbij hoort. In dit voorbeeld zijn de namen ca.crt, laptop-a.crt en laptop-a.key. De bestandsnamen zijn alleen labels; ze zeggen niets over wat elk bestand bevat.

Als je de sleutel tijdens de inschrijving hebt gegenereerd, heeft die de machine nooit verlaten; van de uitgever moeten alleen het ondertekende certificaat en de openbare keten terugkomen. Controleer of het certificaat de clientrol draagt die de dienst verwacht. Controleer ook of de sleutel bij dat certificaat hoort en niet bij een eerder certificaat uit een vorige poging. Een niet-passend paar veroorzaakt veel later een TLS-fout, die op een serverprobleem lijkt.

Laat de privé-ondertekeningssleutel van de CA, de privésleutel van de server en de DH-parameters buiten dit pakket.

Verbind de bestanden in een klein profiel

Het profiel hieronder is bewust kort. Elke regel kiest ofwel het eindpunt, beperkt de identiteit die de client accepteert, of wijst naar een van de drie bestanden.

client
dev tun
proto udp
remote vpn.example.net 1194
nobind

remote-cert-tls server
verify-x509-name vpn-gateway name
ca ca.crt
cert laptop-a.crt
key laptop-a.key

De regel remote kiest het netwerkeindpunt. remote-cert-tls server eist dat de tegenpartij een certificaat met serverrol toont. verify-x509-name legt de verwachte naam vast, hier vpn-gateway als Common Name van het servercertificaat met het standaardnaamveld van OpenVPN. Die waarde wordt niet afgeleid van de DNS-hostnaam, dus gebruik het identiteitsschema dat de operator heeft gegeven.

Laat die controles niet vallen alleen omdat een testeindpunt een ander certificaat toont.

Dit basisprofiel gaat uit van geen aparte accountuitdaging en geen sleutel voor het controlekanaal. Als de dienst auth-user-pass, tls-auth of tls-crypt nodig heeft, bewaar dan de configuratie en het materiaal dat je hebt gekregen, want een zelf gegenereerd geheim voor het controlekanaal komt niet overeen met dat van de server. Bewaar ook het cijferbeleid van de dienst in plaats van compressie- of cijferregels uit een oud voorbeeld te importeren.

Maak de werkmap expliciet

Relatieve paden volgen de werkmap van het proces, niet de locatie van het .ovpn-bestand.

Dat verrast mensen die het profiel naar een nieuwe map verplaatsen en verwachten dat de sleutel meegaat. Voor een map die de beheerder heeft gekozen, schakelt de opdracht hieronder naar een absoluut pad voordat hij het profiel en zijn verwijzingen leest.

sudo openvpn --cd /etc/openvpn/client/laptop-a --config laptop-a.ovpn

Een importwizard op het bureaublad of een systeemdienst kan de afhankelijkheden voor je inpakken en eigen regels toepassen. Hij kan ook een andere werkmap gebruiken dan die waarin je hebt getest. Controleer hoe jouw startmethode de paden naar sleutel, certificaat en CA oplost. Alleen het .ovpn-bestand verplaatsen verplaatst de aparte privésleutel niet.

Houd de sleutel alleen leesbaar voor de bedoelde gebruiker of dienstidentiteit.

Verifieer de overdracht, niet de bestandsnamen

Controleer vóór de eerste geautoriseerde verbinding het eindpunt, de identiteit van het certificaat, de uitgever en het geldigheidsvenster. Bevestig daarna dat de bestandsverwijzingen worden opgelost vanuit de werkmap die je echt gaat gebruiken. Test na het verbinden het applicatie- en DNS-gedrag dat het routeringsbeleid hoort te leveren. Drie leesbare bestanden bewijzen niets over serverautorisatie of over een bruikbaar resourcepad.

Als er om een wachtwoordfrase wordt gevraagd, hoort die bij de privésleutel, niet bij een VPN-account.

Inventariseer ten slotte het pakket als inloggegevensmateriaal. Hetzelfde certificaat en dezelfde sleutel aan een tweede laptop geven, kopieert de identiteit, en het bestand hernoemen levert je geen tweede inschrijving op. Dat is het verschil tussen een profiel samenstellen en het uitgeven.

Gerelateerde artikelen