LCP beëindigd door peer op PPTP: schakel eerst MPPE in
Een LCP dat door de peer wordt beëindigd op een PPTP-verbinding is een schending van het PPP-beleid. Vergelijk de MPPE-eisen, lees de log van pppd en test de hooknamen voordat u aan de inloggegevens komt.
De verbinding authenticeert, de client meldt verbonden en een seconde later sluit de log met LCP beëindigd door peer. Die regel komt uit de PPP-onderhandeling in de GRE-tunnel, dus het transport werkte al en de twee uiteinden waren het niet eens over de opties van de verbinding. Wachtwoorden en serveradressen zijn hier meestal onschuldig. Het versleutelingsbeleid is het eerste dat vergeleken moet worden, en op Linux is het peerbestand van pppd de eerste plek om te kijken.
Wat de LCP-fout over de PPP-fase zegt
PPTP verpakt PPP in GRE: de TCP 1723-besturingsverbinding zet de oproep op, GRE draagt de payload en daarna onderhandelt LCP over opties zoals het authenticatieprotocol, compressie en MPPE. De peer beëindigt LCP wanneer een vereiste optie aan zijn kant niet acceptabel is. Een log waarin de CHAP- of MSCHAPv2-uitwisseling voltooid wordt en LCP direct daarna eindigt, is een beleidsweigering, geen bereikbaarheidsfout. Als de tunnel helemaal niet aan onderhandeling toekomt, controleer dan pppd en de plug-in voordat u de LCP-regel leest.
Twee voorwaarden worden gemakkelijk gemist. Het pppd-binary moet bestaan en de PPTP-plug-in die in het peerbestand genoemd wordt, moet geïnstalleerd zijn; een ontbrekend pakket beëindigt de oproep voordat er ook maar één optie besproken wordt.
Schakel MPPE in aan de kant die het vereist
De echte beslissing is welke kant het versleutelingsbeleid bezit. Een client kan MPPE aanbieden, eisen of weigeren, en de server maakt dezelfde keuze. Als beide het eisen komt de verbinding op; als de ene het eist en de andere weigert, eindigt LCP.
pty "pptp vpn.example.net --nolaunchpppd"
name alice
remotename PPTP
require-mppe-128Laad de module met modprobe ppp_mppe voordat u belt, want require-mppe-128 mislukt zonder. Op Windows is de gelijkwaardige instelling het beveiligingstabblad van de VPN-invoer, waar de client moet worden opgedragen versleuteling te eisen in plaats van te accepteren wat de server aanbiedt. Als de server LCP nog steeds beëindigt, vraag de beheerder dan of MPPE verplicht, optioneel of uitgeschakeld is, want een client kan geen bescherming onderhandelen die de server weigert. Versleuteling uitzetten om de melding te laten verdwijnen is de verkeerde richting: het haalt de enige bescherming weg die dit protocol heeft.
Sla het werkende peerbestand op voordat u het bewerkt. Een verkeerd getypte require-mppe-regel reproduceert dezelfde algemene LCP-fout en stuurt u terug naar het begin.
Lees de eigen log van pppd in plaats van de applet
Desktopapplets tonen de verbreking en verbergen de reden, dus lees het verslag van de daemon over één poging. Op systemd-systemen belandt het bericht in het journal; oudere opstellingen schrijven naar de traditionele logbestanden.
journalctl --since "10 min ago" | grep -i -E "pppd|lcp|mppe"
tail -n 50 /var/log/syslogZoek in een venster rond één gesprek in plaats van een hele dag herverbindingen, zodat de geweigerde optie gemakkelijk te zien is. pppd noemt meestal de optie en het antwoord van de peer, wat u vertelt of u uw eigen voorstel moet wijzigen of de serverkant moet vragen het vereiste te versoepelen. Houd pogingen van tijdstempels voorzien, want twee logs vergelijken is alleen nuttig als u weet welke regels bij welk gesprek horen. Als er helemaal geen LCP-uitwisseling verschijnt, zit de fout eerder in de keten en is MPPE niet de verdachte.
Behoud de oplossing bij herverbindingen: hooknamen en MTU
Zodra de verbinding blijft staan, bepalen twee details of die een herverbinding overleeft. Hooks staan in /etc/ppp/ip-up.d en /etc/network/if-up.d, en beide mappen worden door run-parts verwerkt, waarvan het bestandsnaamfilter alles met een punt weigert. Een script met de naam set-pptp.sh wordt dus overgeslagen, terwijl set-pptp wordt uitgevoerd. Controleer de naam voordat u de inhoud van het script debugt, en stel daarna de kleinere MTU in vanuit die hook, zodat elke nieuwe ppp-interface die zonder handmatige opdracht erft.
run-parts --test /etc/ppp/ip-up.d
ip link set dev ppp0 mtu 1200Om een sessie opzettelijk te beëindigen, richt u op de pid die pppd heeft vastgelegd in plaats van procesnamen op patroon te matchen, want alles doden wat ppp bevat breekt ook ongerelateerde verbindingen af. PPTP is verouderd en MS-CHAPv2 is zwak, dus behandel deze controles als onderhoud voor een verbinding die moet blijven werken, niet als reden om PPTP ergens nieuw in te zetten.