Les fallades d'escriptura GRE a pptpd no són un problema de contrasenya
El protocol 47 no és el port 47. Llegeix els dos missatges de pptpd com a fallades diferents, permet GRE on l'amfitrió reenvia i manté MPPE en lloc de desactivar-lo.
Fallada d'escriptura GRE al registre, i el primer instint és restablir la contrasenya de l'usuari. Aquest instint gairebé sempre és equivocat. Aquests missatges descriuen el camí de les dades, no la comprovació de credencials: el client pot haver autenticat correctament i després haver-se encallat a l'etapa en què es registra a la xarxa. Dos missatges diferents assenyalen dues fallades diferents, i cap no es resol amb una contrasenya nova.
Dos missatges, dues fallades diferents
Una fallada de lectura significa que els paquets GRE no arriben mai al dimoni o es descarten a l'entrada. La connexió de control pot semblar perfectament sana mentre res no travessa el camí de dades. L'autenticació és l'única cosa que va funcionar de manera demostrable.
Una fallada d'escriptura normalment significa que la sessió ha negociat alguna cosa que el nucli o el client no poden utilitzar. El canal de control s'ha completat, i les opcions acordades durant aquest intercanvi no coincideixen amb el que els extrems poden fer realment. És un desacord de configuració, no un esdeveniment d'autenticació.
Llegeix quina de les dues apareix abans de canviar res. Et porten a capes diferents, i tractar-les com un sol símptoma és la raó per la qual el mateix servidor es pedaça dues vegades per motius no relacionats. La línia del registre és l'únic diagnòstic gratuït que tens.
El protocol 47 no és el port 47
PPTP utilitza TCP 1723 per establir la trucada i GRE per transportar la càrrega. GRE és el protocol IP 47, no un número de port, així que una regla de tallafocs que obre el port 47 no permet res d'útil.
Un encaminador al camí necessita una funció de pas de PPTP o un permís explícit de GRE. Sense això, la negociació TCP es completa i el túnel no transporta mai cap paquet, cosa que produeix exactament la fallada de lectura anterior. Les regles del port 47 en un tallafocs són la tarda més malgastada d'aquest protocol.
Observa tots dos sentits alhora al servidor en lloc d'endevinar quin costat descarta el trànsit: tcpdump -ni any port 1723 or proto gre.
Si 1723 mostra l'establiment de la trucada mentre GRE calla, el blocatge és per sobre de l'amfitrió. Si GRE arriba i el dimoni encara falla, el problema és local i les opcions són el següent lloc on mirar.
Permet GRE on l'amfitrió reenvia realment
Inserir una regla forward per a GRE és una prova raonable en un amfitrió que reenvia trànsit de túnel, i no és una política. Una regla de prova que accepta tot d'un protocol és un diagnòstic, no un disseny. Deixa-la prou temps per aprendre alguna cosa i després substitueix-la per una regla limitada.
Afegeix una regla input per als paquets adreçats al mateix servidor, perquè la cadena forward no els veu. Després mira els comptadors de la regla abans i després d'un intent de connexió, cosa que et diu si els paquets arribe.
Fes persistent la regla mitjançant el servei de tallafocs de la distribució en lloc de tornar-la a executar després de cada reinici. En un amfitrió nftables, coincideix ip protocol gre tant a la cadena input com a la forward.
Confirma que el mòdul ppp_generic també està carregat i comprova si el seguiment de connexions descarta el sentit de retorn. Tots dos produeixen fallades que semblen un problema de tallafocs i no ho són. Un mòdul del nucli absent sembla exactament un protocol bloquejat fins que ho comproves.
Ajusta les opcions al client que realment tens
La correcció de l'altre informe és a /etc/ppp/pptpd-options, on la recepta rebutja PAP, CHAP i MSCHAP, comenta les línies require corresponents i manté MPPE amb estat. Aquesta recepta es va escriure per a una barreja de clients, i copiar-la cegament trenca el cas habitual. Llegeix les línies de rebuig com una afirmació sobre quins clients tenia l'autor, no com una recomanació.
Un client de Windows normalment necessita MS-CHAPv2 amb MPPE-128. Mantén aquests requisits i elimina només les opcions que el client genuïnament no pot negociar.
# keep encryption; drop only what this client cannot negotiate
refuse-pap
refuse-chap
refuse-mschap
mppe-stateful
require-mschap-v2
require-mppe-128Desactivar el xifratge perquè una connexió funcioni és una degradació, no una reparació. Prova aquesta variant en un enllaç de laboratori i després restaura el xifratge abans que el servei s'enfronti a clients reals. La connexió que funciona de manera insegura és pitjor que la que falla honestament.
Llegeix el número d'error del client
El codi numèric del client estreta l'etapa més de pressa que el registre del servidor. Llegeix-lo abans de llegir res més. 691 significa que les credencials van ser rebutjades, 721 significa que el servidor no va respondre mai, i 619 significa que la connexió es va tallar. Dos minuts amb el número estalvien una hora amb la configuració.
Compara aquest codi amb el registre del servidor abans d'editar res i torna a provar amb el mateix client després de cada canvi. En cas contrari, una segona fallada s'amaga darrere la primera i la correcció sembla ineficaç.
Quan l'inici de sessió té èxit i no es mou trànsit, GRE continua sent el sospitós. Aquest és el moment de tornar a la captura en lloc del magatzem de credencials.