PPTPek etxeko router baten atzean bi modu independentetan huts egiten du, eta biak nahasteak arratsalde oso bat galtzen du. Hutsegite bat birbidalketa-hutsunea da: routerrak TCP 1723 pasatzen du eta IP protokolo 47 botatzen du, beraz bezeroa 619 errorean zintzilik geratzen da. Bestea tamainaren arazoa da: tunela altxatzen da, autentifikatu egiten da eta gero izoztu egiten da tamaina osoko pakete bat zeharkatu behar duenean. Bi hauetatik zein duzun jakitea da benetako lehen urratsa; gainerakoek zure routerrak zer adieraz dezakeen konparatzen dute, ez zein marka den hobea.

Bi garraio, eta horietako batek bakarrik du ataka

PPTPk bi garraiotan banatzen da: kontrol-konexio bat TCP 1723n, eta GRE hobetuan bildutako PPP markoak, hau da, IP protokolo 47. GREk ez du ataka-zenbakirik, beraz 1723 ataka birbidaltze gisa idatzitako arau batek ezin du estali, web interfazeak eremuari nola deitzen dion ere. Etxeko routerrak PPTP pasabidea izeneko lauki bat eskaintzen du normalean protokolo-arau baten ordez, eta lauki horrek bi lan egiten ditu: protokolo 47 suebakitik pasatzen uzten du eta NATi GRE fluxua jarraitzen irakasten dio. Linux router batean lan horiek modulu bereiziak eta arau bereiziak dira, eta horregatik erdi konfiguratutako pasabide batek kontrol-kanal funtzionala sortzen du oraindik. Jakin itzazu zein erdi dagoen han, ezer aldatu aurretik.

Zerbitzariaren beraren suebakiak ere protokolo 47 onartu behar du routerraren helbidetik. 1723/tcp soilik onartzen duen ostalari-suebaki batek 619 errorea sortzen du LAN barrualdetik, eta horrek birbidalketa hautsi bat eta ostalari-arau hautsi bat berdinak ematen du.

sudo iptables -S FORWARD | grep -i gre
sudo nft list ruleset | grep -i gre
lsmod | grep -E 'nf_conntrack_proto_gre|nf_nat_proto_gre'

Moduluak falta badira, kargatu sudo modprobe nf_conntrack_proto_gre nf_nat_proto_gre erabiliz eta karga iraunkorra egin, laguntzailea ahazten duen berrabiarazte batek tunel funtzionala 619 errore bihurtzen baitu berriro. Birbidalketa-arauak protokolo 47 zerbitzariaren helbiderantz soilik onartu behar du, ez LAN osoa. RFC 2637 definizioak kontrol-bidea eta datu-bidea bereizten ditu, eta horregatik ataka-birbidaltze pantaila bakar batek ere ez du PPTP erabat deskribatzen.

Pasabide-laukia edo protokolo-arau esplizitua

Suebakia soilik irekitzen duen pasabide-lauki bat deia-identifikatzaileak berridazten dituen ALG bat baino hurbilago dago zuzenetik. Suebakiaren erdia aurreikusgarria da, protokolo 47 onartzen baita edo baztertzen baita, eta kontagailuek esaten dute zein. Berridazketaren erdia da fabrikatzaileak desberdintzen diren tokia, PPTPren deia-identifikatzaileak tunel bakoitzeko baitira eta haiek editatzen dituen NATek ukitzen duen deia bakoitza jarraitu behar baitu. Bezero bat konektatzen denean eta bi ez, ALGa da lehen susmagarria.

1723rako helburuko NAT arau batek jabetza-arazoa ere badu. Arau zaharra oraindik 1723 zerbitzaria martxan jartzeari utzi zion ostalari bati bidaltzen badio, paketeak ataka itxi batean erortzen dira eta routerraren beraren PPTP zerbitzuak erantzuteari uzten dio, suebaki-hutsegite gisa irakurtzen dena baina benetan helburu zaharkitua da. Irakurri araua eta bere helburua bigarren bat gehitu aurretik. PPTP beraiek amaitzen duten routerretan, WAN arauak zerbitzu integratuarekin lehiatzen du, beraz aukeratu jabe bakarra 1723rako eta protokolo 47rako.

NAT beraren atzean bi bezero dira birbidaltze soila eta birbidaltze azkarra bereizten dituen kasua. Protokolo 47 deia-identifikatzaileak berridatzi gabe birbidaltzeak normalean hobeto jokatzen du haiek konpontzen saiatzen den laguntzaile batek baino.

Neurtu tunela routerrari errua bota aurretik

PPTPk karga erabilgarria uzkurtzen du, eta uzkurdura hori aritmetika da, ez misterioa. Tunel pakete bakoitzak kanpoko IP goiburua, GRE hobetuko goiburua, PPP goiburua eta, zifratzearekin, MPPE goiburua darama. Bideak sortutako markoa eraman ezin duenean, pakete txikiak pasatzen dira, saio-hasiera osatzen da eta saioa gelditzen da fitxategi-transferentzia batek edo TLS-ren agurretako batek tamaina osoko pakete bat bidaltzen duen lehen aldian.

Kalkulatu zenbakia asmatu beharrean. GRE hobetuak 8 byte balio du, PPPk 4, MPPEk 4 eta kanpoko IP goiburuak 20, beraz tunelak 36 byte jaten ditu edozein karga aurretik. 1492n amaitzen den PPPoE WAN batean, sartzen den PPP MTU handiena 1492 ken 36 da, hau da, 1456. Ezarri mtu eta mru balio horretan PPP aukeretan eta probatu berriro zatiketarik gabeko ping batekin.

ping -M do -s 1464 198.51.100.7
grep -E '^(mtu|mru)' /etc/ppp/options.pptpd

Pingak bidea neurtzen du, ez tunela: 1464 byte karga gehi 28 byte IP eta ICMP goiburu betetzen dute zehazki 1492 byteko marko bat. Ping horrek huts egiten badu, jaitsi zenbakia pasa arte eta kendu 36 emaitzari. Bidearen muga gainetik jarritako tunel MTU batek izoztea sortzen du tamaina aipatzen duen log-lerrorik gabe.

PPTP, L2TP/IPsec edo OpenVPN router berean

Router berak hiru tunel arruntetako edozein eraman dezake, eta aldea da zer adierazi behar duen. PPTPk bi arau behar ditu bi geruza desberdinetan. L2TP IPsec gainean UDP 500 eta 4500 behar ditu gako-trukerako eta, NAT-Tk eramaten ez badu, protokolo 50 kargarako. OpenVPNek UDP ataka bat behar du eta ez laguntzailerik.

TunnelWhat the router must allowPractical note
PPTPTCP 1723 and IP protocol 47Two transports, two rules
L2TP/IPsecUDP 500, UDP 4500, protocol 50 without NAT-TESP has no port either
OpenVPNUDP 1194 or a chosen TCP portSingle rule, no helper

L2TPren zutabea ez da automatikoki GRE baino adeitsuagoa. ESP IP protokolo 50 da eta hark ere ez du atakarik, beraz protokolo 47rekin arazoak dituen router batek protokolo 50ekin arazoak izan ditzake arrazoi beragatik. NAT-T ESP UDP 4500 barruan biltzeko dago, eta bi muturrek onartzen dutenean protokolo 50eko araua beharrezkoa izateari uzten dio. Hori muturren propietatea da, ez routerraren PPTP laukiarena. Berretsi bezeroak zein kapsulatze adostu zuen benetan, bientzako arauak idatzi aurretik.

OpenVPN da routerraren aldean parte mugikor gutxien duen aukera. UDP ataka bat, birbidaltze bat, konexioak jarraitzeko laguntzailerik ez eta deia-identifikatzaileen berridazketarik ez. Trukea instalatu beharreko bezero bat da, markatzaile integratua ordez, eta askotan hori da PPTP elkarrizketan geratzeko arrazoi bakarra.

Zer konpondu eta zer ordezkatu

Birbidalketa eta MTU konpontzeak funtzionatzen duen tunel bat ematen dizu, ez gorde beharko zenukeen bat. PPTPren MSCHAPv2 autentifikazioa aspalditik da eraso daitekeena, eta tunel funtzional batek lineaz kanpo berreskura daitezkeen egiaztagiriak mugitzen ditu. Urruneko gailuak L2TP/IPsec edo OpenVPN exekuta badezake, tratatu konponketa data duen aldi baterako neurri gisa.

Erabakia urruneko muturrak zer onartzen duen eta antolamenduak zenbat iraun behar duen araberakoa da. PPTP soilik hitz egiten duen gailu zahar batek konponketa jasotzen du; bezero bat instalatu dezakeen guztia migratu egiten da.

Txartela itxi aurretik, berretsi bezeroak transferentzia handi bat gainditzen duela eta ez soilik saio-hasiera bat, eta routerrak protokolo 47ko araua mantentzen duela berrabiarazi ondoren. Fitxategi-kopia bat pasatu eta hurrengo firmware eguneraketaren ondoren hiltzen den tunel bat ez zen inoiz amaitu.

Erlazionatutako artikuluak