Trūkst PPTP caurlaidības: novērst Windows VPN kļūdu 807
TCP 1723 pāradresēšana vien pati nenovērš PPTP kļūdu 807. GRE ir IP protokols 47, tāpēc maršrutētājam vajag caurlaidību vai skaidru protokola noteikumu.
TCP 1723 pāradresēšana bieži atver PPTP pirmo daļu un atstāj pārējo salauztu, tāpēc Windows mēģinājumā joprojām atgriež kļūdu 807. Nākamais instinkts ir pievienot noteikumu portam 47, un tieši šis solis izšķiež pēcpusdienu: GRE ir protokola numurs IP galvenē, nevis ports, ko pāradresācijas tabula varētu saskaņot. Kamēr maršrutētājs neielaidīs protokolu 47 un nesaistīs to ar to pašu zvanu, tunelis nevar sākties. Turpmākās sadaļas atdala abus kanālus un pēc tam pārbauda tos pa vienam.
Portu tabulā nav rindas protokola numuram
PPTP izmanto divas sarunas, kas neizdodas dažādi. Tā, kas darbojas uz TCP 1723, sāk zvanu, pārsūta saites informāciju un pārtrauc to, kad lietotājs atvienojas. Kravneses puse darbojas GRE iekšienē, ko IP galvene apzīmē ar protokola numuru 47, un šajā tunelī PPP vienojas par saiti, kamēr MS-CHAPv2 pārbauda akreditācijas datus.
Tā kā GRE nenes transporta galveni, tas neuzrāda portus, tāpēc noteikumam, kas rakstīts portiem, nav ar ko saskaņoties. Maršrutētājs, kas pāradresē 1723, izveido kartējumu šai TCP sesijai un tur apstājas. Programmaparatūra, kas apstrādā otro pusi, šo funkciju sauc par PPTP caurlaidību vai PPTP ALG, un daža programmaparatūra nepiedāvā ne vienu, ne otru un nekad nemin šo plaisu. Uzraksts uz atzīmes lodziņa ir mazāk svarīgs par to, vai protokols 47 vispār tiek atpazīts.
Ko Windows ziņo, kad datu ceļš iet bojā
Kļūda 807 saka, ka savienojumu nevarēja pabeigt, kas praksē nozīmē, ka zvans sasniedza serveri un datu kanāls neizcēlās. Tas ir spriedums par transportu, nevis par kontu. Kļūda 691 ir tā, kas norāda uz akreditācijas datiem vai autentifikācijas protokola neatbilstību, tāpēc tā nosūta pavisam citur.
Strādājiet ar transportu, pirms pieskaraties parolei. Akreditācijas datu maiņa, lai dzītos pakaļ 807, atstāj īsto defektu savā vietā un padara nākamo mēģinājumu grūtāk nolasāmu.
Kāpēc otrs klients salauž strādājošu tuneli
Tā kā nav portu, kas tos atšķirtu, NAT ierīce nevar atdalīt divus PPTP klientus tā, kā atdala divas HTTPS sesijas. Tāpēc daudzas sadzīves ierīces pieļauj tikai vienu PPTP zvanu un izseko to pēc avota adreses. Portatīvais dators, kas strādāja viens, pārstāj pabeigt, tiklīdz piezvanā otra mašīna, un no klienta puses atteice izskatās nejauša. Šis modelis pieder programmaparatūrai, un nekāda profila maiņa to nemainīs.
Vērojiet savienojumu tabulu, kamēr zvana abi klienti. Ja kartējumu vienmēr tur tikai pirmais resursdators, maršrutētājs ir sasniedzis atbalsta robežu, un nekāds klienta iestatījums to nepakustinās.
Pierādiet, kura puse neizdodas
Pirms kaut ko mainīt maršrutētājā, apstipriniet, ka TCP 1723 pienāk, jo šī atbilde nosaka, kuru pusi jūs pārbaudāt. Palaidiet šos no Windows klienta pret savu servera nosaukumu. Pirmais izdrukā, vai ports atbildēja, un otrais zvana bez dialoga, kas padara atkārtotos mēģinājumus salīdzināmus.
Test-NetConnection vpn.example.com -Port 1723
rasdial "Work VPN"
Paties rezultāts porta pārbaudē nozīmē, ka vadības kanāls ir atvērts un GRE ir atlikušais aizdomās turamais. Nepatiess rezultāts nozīmē, ka maršrutēšana, filtrs vai pāradresācija ir salauzta, un nekāda GRE maiņa to neglābs. Datu puse ir jāvēro tur, kur tā ir redzama, serverī vai maršrutētājā.
tcpdump -ni any proto 47
Wireshark atbilde ir attēlošanas filtrs ip proto 47, ko ir vieglāk nodot kādam, kuram nav ērti komandrindā. GRE, kas pienāk bez nekā atbildē, nozīmē, ka atgriešanās ceļš ir jālabo.
Kas patiešām novērš kļūdu
Kur maršrutētājs parāda iestatījumu, iespējojiet PPTP caurlaidību vai skaidri atļaujiet protokolu 47 programmaparatūrā, kas pieņem noteikumus. RouterOS pāradresācijas noteikums tieši saskaņo protokolu, ko portos balstīta pāradresācija nekad nevarētu izdarīt. Sadzīves programmaparatūra parasti slēpj to pašu lēmumu aiz atzīmes lodziņa, dažreiz drošības iestatījumos, nevis portu pāradresācijā. Ja šādas kontroles nav, klientā nekas to nekompensēs.
/ip firewall filter add chain=forward protocol=gre action=accept
/ip firewall filter print where protocol=gre
PPTP aizstāšana ir otra iespēja un bieži lētākā. Maršrutētājs, kas pats pabeidz VPN, izvairās no dubultā NAT ienākošajiem klientiem, un protokolam, ko portos balstīts NAT jau apstrādā, caurlaidība nemaz nav vajadzīga: OpenVPN pa UDP, SSTP pa TCP 443 vai L2TP/IPsec ar NAT-T, kas iesaiņo ESP UDP 4500. PPTP arī ir atkarīgs no MS-CHAPv2, un tā dokumentētās vājības padara to par sliktu izvēli jaunai ieviešanai arī pēc tam, kad kļūda ir pazudusi.
Pierakstiet, kurš noteikums radīja atšķirību, jo tā pati vieta saskarsies ar to pašu ierobežojumu, kad otrais lietotājs lūgs piekļuvi. Protokola līmeņa labojums pieder tīkla piezīmēm, kur tajā skatīsies nākamais inženieris.