NM OpenVPN: het opgeslagen profiel is niet je .ovpn-bestand
Import vertaalt opties naar een opgeslagen verbinding. Lees vpn.data terug, controleer ta en ta-dir, en werk één vermelding bij in plaats van het woordenboek te vervangen.
Hetzelfde .ovpn bestand maakt verbinding vanuit een shell en loopt na import in NetworkManager in een time-out. De natuurlijke conclusie is dat de VPN kapot is. De waarschijnlijkere verklaring is kleiner: NetworkManager heeft het bestand niet bewaard, het heeft er een deel van geïmporteerd in een opgeslagen verbinding, en de lopende tunnel gebruikt in plaats daarvan die opgeslagen gegevens. Wat het bestand nu zegt, is irrelevant voor wat het profiel bevat.
Het bestand is niet het profiel
Import is een vertaling, geen koppeling. Opties die de plug-in begrijpt, worden sleutels in het vpn.data woordenboek van de verbinding; opties die hij niet begrijpt, worden weggegooid of elders vastgelegd, en het oorspronkelijke pad is alleen een verwijzing. Het bronbestand daarna bewerken verandert niets aan de verbinding die al is opgeslagen.
Die kloof verklaart een hele familie meldingen: de gedeelde sleutel is geroteerd, het bestand is bijgewerkt, en de tunnel faalt nog steeds. Het opgeslagen profiel wijst nog naar het oude pad of de oude waarde, en de opdrachtregel blijft werken omdat die het bestand leest dat je hebt bewerkt. Twee clients, twee bronnen van waarheid, en slechts één ervan is bijgewerkt.
Lees het opgeslagen profiel, niet de dialoog
nmcli -f connection.id,connection.uuid,vpn.service-type,vpn.data connection show office-vpn
Gebruik de UUID wanneer twee profielen een naam delen, en bevestig dat het servicetype de OpenVPN plug-in is die je verwacht, en niet een ander VPN-type dat toevallig is geïnstalleerd. Vergelijk daarna het eindpunt, het transport en de certificaatverwijzingen met de werkende aanroep.
Een waarde die zichtbaar is in een grafische editor is geen bewijs dat die is opgeslagen. Sla op, open opnieuw en lees hem terug via de opdrachtregel; historische opslagfouten zijn een reden om de opgeslagen gegevens te controleren, geen bewijs dat elke huidige build dezelfde bug heeft. De controle kost één opdracht.
Twee sleutels, en een richting die ertoe doet
Voor een verbinding met TLS-authenticatie slaat de plug-in het pad van de gedeelde sleutel op in ta en de richting in ta-dir, wanneer de uitrol er een gebruikt. Beide leven in het gegevenswoordenboek van het profiel, en beide moeten overeenkomen met wat de server verwacht.
Richting is een beslissing aan de serverkant die op de client wordt uitgedrukt. Er een kiezen omdat een naburig profiel hem heeft, is de manier waarop een werkende sleutel een handshake begint te falen. Als de serverconfiguratie richtingloos is, zou de client geen richting moeten verzinnen.
Het sleutelbestand zelf moet leesbaar zijn voor de plug-in in de context waarin hij echt draait. Een ingeperkt pakket heeft een andere kijk op het bestandssysteem dan een gewone desktopinstallatie, dus een pad dat in je shell bestaat, kan onzichtbaar zijn voor de service.
Werk één vermelding bij, niet het woordenboek
nmcli connection modify office-vpn +vpn.data 'ta=/etc/NetworkManager/certs/office-ta.key'
nmcli connection modify office-vpn +vpn.data 'ta-dir=1'
De voorafgaande plus werkt afzonderlijke woordenboekvermeldingen bij. Toewijzen vpn.data zonder dat vervangt het hele woordenboek, en zo wordt één ontbrekende sleutel vijf kapotte instellingen. Lees het profiel daarna terug en bevestig dat de andere vermeldingen het hebben overleefd. Een woordenboek dat zijn externe eindpunt en zijn certificaten is kwijtgeraakt, is een veel langere middag dan die waarmee je begon.
Maak opnieuw verbinding via de normale bediening en kijk naar de fase die faalt. Als de poort voor de gedeelde sleutel nu passeert en de client een certificaat- of gebruikersauthenticatiefout meldt, ben je verder en is het volgende onderzoek een ander.
Verwissel de modi van het controlekanaal niet
tls-auth, tls-crypt, en tls-crypt-v2 zijn verschillende opstellingen. Een sleutelbestand dat er hetzelfde uitziet, maakt ze niet uitwisselbaar, en het vullen van de TLS-Auth-velden omdat een ander profiel een opgemaakte sleutel bevat, levert een profiel op dat faalt op een manier die op een verkeerde sleutel lijkt.
Gebruik de plug-in-toewijzing die past bij de modus in de serverconfiguratie. Als de modus onduidelijk is, vraag het de eigenaar van de server in plaats van te gokken op basis van de eerste regel van het bestand.
Houd een herstelpad achter de hand wanneer de tunnel je beheersessie draagt. Een opgeslagen wijziging is niet noodzakelijk een toegepaste wijziging, en een geslaagde import is geen bewijs dat elke bronoptie werd ondersteund. Beide kloven zijn het kennen waard voordat je de verbinding opnieuw tot stand brengt waar je doorheen werkt.