Avvikling av PPTP/MS-CHAPv2: runbook for en gammel VPN
Et lengre passord oppgraderer ikke PPTP med MS-CHAPv2. Gå gjennom trinnene for kartlegging, migrering, verifisering og opprydding av påloggingsinformasjon i rekkefølge.
Passord på tjue tegn, som roteres månedlig og oppbevares i et hvelv, gjør ikke en PPTP-server med MS-CHAPv2 til en moderne VPN. Passordet er en inngang til en utveksling der svakheten ligger i utvekslingen selv. Denne runbooken er for den som har arvet serveren og må flytte brukerne bort fra den uten å kutte nettstedet som avhenger av den. Gå gjennom trinnene i rekkefølge, for hvert trinn etterlater en registrering du vil trenge når noen spør hvorfor tilgangen plutselig endret seg.
Skriv ned stakken før du rører noe
Tre lag smeltes sammen i ordet PPTP, og hvert lag feiler på sin måte. Tunnelen er PPTP selv, GRE pluss TCP 1723. Autentiseringen er den PPP-metoden serveren tilbyr, her MS-CHAPv2. Koblingsbeskyttelsen er MPPE, der nøklene utledes fra den autentiseringsutvekslingen. Å navngi alle tre hindrer at en senere rettelse lander på feil lag.
Les den levende konfigurasjonen i stedet for å stole på en wikiside, og noter filen, lytteren og de siste sesjonene som autentiserte.
grep -RniE 'mschap|mppe|require-mppe' /etc/ppp/options.pptpd /etc/pptpd.conf
ss -lntp 'sport = :1723'
journalctl -u pptpd -n 40 --no-pager
På en Windows-rolle for fjern tilgang kommer den samme kartleggingen fra to kommandoer, og den andre betyr noe fordi en rolle kan annonsere flere metoder samtidig mens klientene i felt bare noen gang forhandler om den svakeste.
Get-VpnAuthProtocol
netstat -ano | findstr :1723
Avgjør hva tunnelen faktisk bærer i dag
List opp forbrukerne før du velger en erstatning: omreisende bærbare maskiner, en filialruter, en betalingsterminal, et sett feltnettbrett. En forbruker som bare trenger å nå én intern vert, er lett å flytte. En forbruker som er innebygd i maskinvare du ikke kan reflashe, kan trenge en mellomliggende gateway i stedet for en klientoppgradering, og den avgjørelsen hører hjemme i planen, ikke midt i overgangen.
Spør så hva en angriper som kan observere eller påvirke innloggingsutvekslingen ville få. Med MS-CHAPv2 omfatter svaret materiale som gjør det mulig å gjenopprette brukerens passord uten nett, og nettopp derfor reparerer ikke lengde og rotasjon designet: hemmeligheten som gjenopprettes, er gyldig på hvert system der brukeren brukte den på nytt.
MPPE arver den samme svakheten, siden nøklene kommer fra den utvekslingen, og den gir deg ikke per-pakke-integritet og gjentakelsesatferd som en moderne AEAD-chiffer. En sesjon som autentiseres rent, har bevist kompatibilitet med de konfigurerte kontrollene og ingenting mer.
Verken en kort lunsjpause eller et lite brukertall gjør en kryptografisk egenskap om til en politisk egenskap.
Kjør migreringen innenfor ett vedlikeholdsvindu
Sett opp erstatningen, bevis den med én pilotgruppe, og stopp deretter den gamle lytteren i stedet for å la den stå som en stille reserve. En reserve som alle fortsatt kan nå, er ikke en migrering, og den holder den svake utvekslingen tilgjengelig nettopp for de brukerne som aldri gidder å bytte.
sudo systemctl disable --now pptpd
sudo ss -lntp | grep -E ':(1723|1194|51820)\b'
sudo nft list ruleset | grep -i gre
Lukk brannmurveien i samme vindu. GRE har ingen port å huske, så en regel som tillater protokoll 47 etter nummer, er lett å overse og lar tjenesten være nåbar også etter at daemonen er borte. Registrer regelen du fjernet, dens forrige plassering og årsaken, slik at en senere endringsgjennomgang ikke gjenoppretter den ved et uhell.
Håndter påloggingsinformasjon atskilt fra konfigurasjonen. Fjerning av en klientprofil er ikke en tilbakekalling, og en konto som fortsatt autentiserer andre steder, er ikke avviklet.
Verifiser at erstatningen gjør jobbene PPTP gjorde
Sjekklisten er ikke “kobler den til”. Den er om autentisering, adressetildeling, DNS-oppslag, rutervalg, gjenoppkoblingsatferd og peer-verifisering alle fortsatt holder under erstatningen. Test hver på en pilotenhet, i den rekkefølgen, og skriv det observerte resultatet ved siden av forventningen.
ip -4 addr show tun0
ip route get 198.51.100.23
resolvectl query intranet.example.net
En adresse på grensesnittet beviser at forhandlingen ble fullført. Den beviser ikke at fjernsiden autoriserte ruten du forventer, og oppslaget ovenfor svarer bare for denne verten, ikke for et videresendt LAN. Et resolver-svar beviser at en resolver er nåbar, ikke at delt DNS-policy sender de riktige navnene dit.
Test gjenoppkobling til slutt, for det er der de fleste erstatninger regresserer: sett en bærbar maskin i dvale, bytt nettverk, og bekreft at tunnelen gjenopprettes uten å etterlate utdaterte ruter.
Tilbakerulling, tilbakekalling og registreringen du etterlater
Tilbakerulling gjenoppretter tjenesten; den gjenoppretter ikke sikkerheten, og forskjellen må sies høyt før vinduet åpnes. Hvis den nye veien feiler, hent brukerne tilbake via et andre moderne endepunkt eller en midlertidig gateway, ikke ved å slå PPTP på igjen for alle. Å beholde én nødvei på den gamle protokollen øker eksponeringen du nettopp dokumenterte.
Etter overgangen, tilbakekall kontoene som autentiserte over PPTP, la de lagrede profilene deres utløpe, og bekreft at GRE-regelen er borte fra hver kantenhet, inkludert katastrofegjenopprettingskopien ingen husker.
Etterlat en kort registrering: protokollene du fant, datoen hver lytter stoppet, klientversjonene erstatningen støtter, og eieren som kan åpne avgjørelsen igjen. Passordhygiene betyr fortsatt noe etterpå, men som hygiene på en protokoll som fortjener det, ikke som et argument for å holde den gamle i live.