Stem de Linux VPN-client af op het protocol van het oude apparaat
Lees de gepubliceerde poorten van het apparaat en installeer dan de client die past: pppd over GRE, strongSwan voor IKEv1 XAuth of openconnect voor de portal.
Vier protocolfamilies dekken bijna elk apparaat dat nog in een rack staat, en elk ervan faalt anders op Linux. De gepubliceerde poorten en geconfigureerde voorstellen van de andere kant bepalen uw pakket, niet de distributie die u toevallig draait. Installeren wat een forumpost noemt en dan bewerken tot er iets verbindt, is hoe een middag verdwijnt. Lees het apparaat, installeer als tweede, verifieer als derde.
Noteer wat de andere kant publiceert
Noteer het protocol, de poorten en de authenticatie die het apparaat verwacht voordat u een pakketbeheerder opent. Vier families dekken het meeste oude apparatuur, en de tabel hieronder is de hele beslissing op één scherm.
| Family | Ports | Linux side |
|---|---|---|
| PPTP | TCP 1723 plus GRE, IP protocol 47 | pppd with a peer file |
| L2TP/IPsec | UDP 500, 4500, 1701 | NetworkManager plugin over strongSwan |
| IKEv1 aggressive with XAuth | UDP 500 | native strongSwan connection |
| AnyConnect-style portal | TCP 443 | openconnect with a TUN device |
De handleiding en de eigen firewallregels van het apparaat zijn betrouwbaarder dan de protocolnaam op de inlogpagina. Een apparaat dat IPsec adverteert, spreekt misschien alleen IKEv1, en een firmwareversie die niemand heeft toegepast is misschien wat er uiteindelijk IKEv2 aan toevoegt. Bevestig zowel het datapad als de configuratiepoort, want daar lopen oude apparatuur en moderne netwerken uiteen. Deze stap verkeerd doen betekent uw client debuggen tegen een functie die de andere kant nooit had.
PPTP: bewijs GRE voordat u pppd bewerkt
PPTP op Linux is geen daemon die u start maar een pppd-aanroep, en de verbindingsparameters leven in een benoemd peer-bestand dat pppd leest wanneer het wordt aangeroepen. Distributies verpakken het nog steeds, hoewel de bekende zwakheden van het protocol het ongeschikt maken voor alles wat gevoelig is, dus houd het strikt voor een apparaat dat niets anders biedt. Let op GRE terwijl de client onderhandelt, met een korte opname in plaats van een gok. De fout die de meeste tijd kost is niet de authenticatie maar het ontbrekende datapad.
pppd call branch-office
tcpdump -ni any proto gre -c 5
Als de configuratie voltooit en de verbinding nooit verkeer draagt, verdenk dan het GRE-pad voordat u inloggegevens aanraakt. Cloud-beveiligingsgroepen hebben een expliciete regel voor protocol 47 nodig, en sommige netwerken blokkeren het volledig zonder zichtbare fout. Test vanuit het netwerk dat u werkelijk gaat gebruiken, niet vanuit een laboratorium dat alles toestaat.
L2TP/IPsec: één passend voorstel verslaat tien pogingen
Lees de log van de daemon in plaats van de desktopdialoog, want de dialoog voegt verschillende storingen samen tot één bericht. Een NO_PROPOSAL_CHOSEN-fout hoort bij de eerste fase: de client bood een versleuteling, hash of Diffie-Hellman-groep aan die de server niet accepteert. Som op wat het apparaat ondersteunt en schrijf één passend voorstel, want willekeurige combinaties geven meestal dezelfde fout langzamer. Op een desktop is de praktische client de NetworkManager L2TP-plug-in met strongSwan of Libreswan eronder.
Een voorstelstring die voor een desktop-plug-in één ding betekent, kan voor de daemon waaraan het werk wordt overgedragen iets anders betekenen, dus houd de syntaxis passend bij de laag die u bewerkt. Als het apparaat ook een tunnelgeheim eist, is dat een aparte fase van de IPsec-sleutel. Bevestig welke van de twee de interface vraagt voordat u er iets in typt.
Agressieve IKEv1 met XAuth, en het portalgeval
Een eindpunt in FortiGate-stijl wil meestal agressieve modus met XAuth en een adres in geconfigureerde modus, wat een grafische plug-in misschien helemaal niet toont. De native daemon kan het aan, en het blok hieronder is de vorm van die configuratie, niet een volledig bestand. Raadpleeg de actuele documentatie van de leverancier voor de voorstelwaarden.
conn branch
keyexchange=ikev1
aggressive=yes
leftauth=psk
leftauth2=xauth
leftsourceip=%config
right=203.0.113.10
Oudere strongSwan-versies gebruikten xauth=client waar versie 5 leftauth2=xauth gebruikt, dus een gekopieerd fragment kan alleen al op de syntaxis falen. Voor een TLS-portal behandelt openconnect, dat het AnyConnect-protocol spreekt, Cisco en de meeste hernoemde merken, en het heeft een TUN-apparaat plus de rechten nodig om dat te configureren. Geef het portaladres precies zoals de browser het toont, inclusief elk pad dat het apparaat verwacht, en controleer daarna het toegewezen adres voordat u iets erachter test. De interface vooraf aanmaken haalt één klasse verrassingen tijdens de configuratie weg.
sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com
Verbind, en verifieer daarna in vaste volgorde
Draai precies één VPN-beheerder tegelijk, want een NetworkManager-profiel en een handmatig gestarte daemon vechten om routes en DNS. Haal het profiel omlaag voordat u een handmatige verbinding test, en bevestig dat er geen oude tunnelinterface overleeft. Verifieer daarna in deze volgorde: tunneladres, route naar de enige interne host die u nodig hebt, naamresolutie en ten slotte een echt verzoek. Een groen pictogram bewijst de authenticatie en niets anders.
ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal
Als een stap mislukt, stop daar in plaats van de volgende te testen, want een DNS-fout stroomafwaarts van een kapotte route leert u niets. Bewaar een kopie van het werkende profiel voordat u experimenteert, want een verwijderd verbindingsbestand is snel kwijt en lastig te reconstrueren. Houd de voorstelwaarden in dezelfde notitie als het apparaatmodel en de firmwareversie, want die notitie is het verschil tussen een migratie en een archeologieproject wanneer de doos wordt vervangen.