Manjka prehod PPTP: odpravite napako 807 v Windows VPN
Posredovanje TCP 1723 samo po sebi ne odpravi napake PPTP 807. GRE je protokol številka 47 v glavi IP, zato usmerjevalnik potrebuje prehod ali izrecno pravilo za protokol.
Posredovanje TCP 1723 pogosto odpravi le prvi del PPTP, preostanek pa pusti pokvarjen, zato Windows ob poskusu še vedno vrne napako 807. Naslednji impulz je dodati pravilo za vrata 47, in prav ta korak zapravi popoldne: GRE je številka protokola v glavi IP, ne vrata, na katera bi se lahko ujemala tabela posredovanja. Dokler usmerjevalnik ne prepusti protokola 47 in ga ne poveže z istim klicem, tunel se ne more začeti. Spodnji razdelki ločijo dva kanala in ju nato preizkusijo enega za drugim.
Tabela vrat nima vrstice za številko protokola
PPTP uporablja dva pogovora, ki propadata na različne načine. Tisti na TCP 1723 začne klic, posreduje podatke o povezavi in jo prekine, ko se uporabnik odklopi. Podatkovna stran teče znotraj GRE, ki ga glava IP označi s številko protokola 47, in znotraj tega tunela PPP pogaja povezavo, medtem ko MS-CHAPv2 preveri poverilnice.
Ker GRE ne nosi nobene transportne glave, ne izpostavlja nobenih vrat, zato pravilo, napisano za vrata, nima s čim ujemati. Usmerjevalnik, ki posreduje 1723, ustvari preslikavo za to sejo TCP in se ustavi tam. Vdelana programska oprema, ki obvlada drugo polovico, to funkcijo imenuje PPTP passthrough ali PPTP ALG, nekatera pa ne ponuja niti enega in vrzeli sploh ne omenja. Napis na potrditvenem polju je manj pomemben kot to, ali je protokol 47 sploh prepoznan.
Kaj Windows sporoči, ko podatkovna pot umre
Napaka 807 pravi, da povezave ni bilo mogoče dokončati, kar v praksi pomeni, da je klic dosegel strežnik, podatkovni kanal pa se ni vzpostavil. To je sodba o transportu, ne o računu. Napaka 691 je tista, ki kaže na poverilnice ali na neujemanje protokola za preverjanje pristnosti, zato vas pošlje povsem drugam.
Preden se dotaknete gesla, delajte na transportu. Spreminjanje poverilnic v lovu za 807 pusti pravo napako na mestu in naslednji poskus naredi težje berljiv.
Zakaj drugi odjemalec pokvari delujoč tunel
Brez vrat, ki bi jih ločila, naprava NAT ne more ločiti dveh odjemalcev PPTP tako, kot loči dve seji HTTPS. Mnoge potrošniške naprave zato dovolijo samo en klic PPTP in ga spremljajo po izvornem naslovu. Prenosnik, ki je deloval sam, neha dokončevati povezavo, ko se oglasi še drugi stroj, z vidika odjemalca pa je napaka videti naključna. Ta vzorec pripada vdelani programski opremi in nobena sprememba profila ga ne bo spremenila.
Opazujte tabelo povezav, medtem ko kličeta oba odjemalca. Če ima preslikavo vedno le prvi gostitelj, je usmerjevalnik dosegel mejo svojega delovanja in nobena nastavitev na strani odjemalca tega ne bo premaknila.
Dokažite, katera polovica odpove
Preden na usmerjevalniku karkoli spremenite, potrdite, da TCP 1723 prispe, ker ta odgovor odloča, katero polovico preizkušate. Zaženite ju z odjemalca Windows proti lastnemu imenu strežnika. Prvi izpiše, ali so vrata odgovorila, drugi pa kliče brez pogovornega okna, zaradi česar so ponovljeni poskusi primerljivi.
Test-NetConnection vpn.example.com -Port 1723
rasdial "Work VPN"
Resničen rezultat preizkusa vrat pomeni, da je krmilni kanal odprt in je GRE preostali osumljenec. Neresničen rezultat pomeni, da so usmerjanje, filter ali posredovanje pokvarjeni in nobena sprememba GRE tega ne reši. Podatkovno stran je treba opazovati tam, kjer jo je mogoče videti, na koncu strežnika ali na usmerjevalniku.
tcpdump -ni any proto 47
Ustreznica v Wiresharku je prikazni filter ip proto 47, ki ga je lažje izročiti nekomu, ki mu lupina ni udobna. GRE, ki prispe, medtem ko nič ne odide nazaj, pomeni, da je treba popraviti povratno pot.
Kaj napako dejansko odpravi
Kjer usmerjevalnik razkrije nastavitev, omogočite PPTP passthrough ali na vdelani programski opremi, ki sprejema pravila, izrecno dovolite protokol 47. Na RouterOS pravilo forward neposredno ujame protokol, česar posredovanje na podlagi vrat nikoli ne bi moglo. Potrošniška vdelana programska oprema isto odločitev običajno skrije za potrditveno polje, včasih pod varnostnimi nastavitvami namesto pod posredovanjem vrat. Če takega nadzora ni, ga nič na strani odjemalca ne bo nadomestilo.
/ip firewall filter add chain=forward protocol=gre action=accept
/ip firewall filter print where protocol=gre
Zamenjava PPTP je druga možnost in pogosto cenejša. Usmerjevalnik, ki VPN zaključi sam, se izogne dvojnemu NAT za dohodne odjemalce, protokol, ki ga NAT na podlagi vrat že obvlada, pa ne potrebuje nobenega prehoda: OpenVPN prek UDP, SSTP prek TCP 443 ali L2TP/IPsec z NAT-T, ki ESP zavije v UDP 4500. PPTP je odvisen tudi od MS-CHAPv2, katerega dokumentirane slabosti ga naredijo slab izbor za novo uvedbo tudi po tem, ko je napaka odpravljena.
Zapišite, katero pravilo je pomagalo, ker bo isto mesto naletelo na isto mejo, ko bo drugi uporabnik zaprosil za dostop. Popravek na ravni protokola sodi v omrežne zapiske, kjer bo pogledal naslednji inženir.