Dues decisions independents passen al mateix paquet, i qualsevol de les dues pot acabar la petició en silenci. La consulta d’encaminament tria una interfície i un salt següent, i després el filtre de paquets decideix si aquesta combinació es permet. Un temps d’espera us diu que una de les dues ha refusat, no quina. Seguiu les etapes en ordre i la reparació normalment deixa de ser una endevinalla.

Dues decisions, un paquet, dos propietaris

La consulta d’encaminament consulta primer les regles de política, després la taula a què apunten, i tria el prefix més específic que coincideix amb la destinació. Un client que ha instal·lat una ruta de túnel posseeix aquesta decisió, i res d’una regla de tallafocs no la pot substituir. Quan la consulta apunta a un lloc inesperat, cada etapa posterior treballa amb el paquet equivocat.

El filtratge és a part. En un amfitrió Linux, els ganxos de netfilter divideixen el trànsit segons a qui va destinat el paquet: la sortida surt de la màquina, l’entrada hi acaba, el reenviament hi passa. Una passarel·la que accepta clients VPN i els encamina a una LAN necessita el camí de reenviament, i és exactament la cadena que la majoria de configuracions per defecte deixen buida.

La selecció d’origen pertany a la mateixa decisió, i és on s’amaguen la majoria de desajustos. El nucli tria una adreça d’origen de la interfície de sortida tret que la ruta n’anomeni una, així que una regla de filtre escrita per a la subxarxa LAN mai no coincideix amb un paquet que surt amb l’adreça del túnel.

Llegiu què ha triat realment la consulta

Imprimiu la decisió en lloc d’inferir-la. L’ordre següent resol la ruta que el nucli faria servir per a aquesta destinació, incloent-hi la interfície i l’origen que triaria:

ip route get 10.8.0.5
ip route get 10.8.0.5 from 192.0.2.44
ip rule show
ip route show table all | sed -n '1,40p'

Els clients VPN sovint instal·len regles de política amb prioritats per sota de la taula principal, així que una taula principal neta no demostra res per si sola. Compareu les prioritats de les regles amb les taules que trien, i comproveu si la ruta del túnel sobreviu a una reconnexió en lloc d’afegir-se a mà una vegada.

L’IPsec basat en política afegeix una tercera etapa de coincidència que l’encaminament no cobreix, tal com descriuen les notes de reenviament de strongSwan per a configuracions de túnel i transport. La política de seguretat selecciona el trànsit per prefix i protocol, mentre que la ruta només decideix on aniria un paquet no protegit. Una subxarxa encaminada però sense selector coincident o bé queda desprotegida o bé es descarta, segons la configuració, i cap dels dos resultats no sembla un problema de tallafocs. Imprimiu la política i compareu-ne els selectors amb els prefixos que esperàveu que portés el túnel.

El filtratge s’aplica en un ganxo, no en una ruta

Una regla que permet l’oient VPN és una regla sobre el trànsit adreçat a la mateixa passarel·la. No diu res sobre els clients que arriben als amfitrions darrere d’aquesta passarel·la, perquè el trànsit reenviat travessa una cadena diferent. Llegir el conjunt de regles com una llista plana és la raó habitual que una regla que sembla correcta no s’activi mai.

Els comptadors resolen la qüestió de pressa. Una regla amb un recompte de paquets zero no s’ha assolit mai, cosa que apunta a la cadena equivocada, la interfície equivocada o un descart anterior. Una regla amb un recompte creixent sota una política de descart és el límit que buscàveu, i el paquet es descarta en lloc d’encaminar-se malament.

Envieu una sonda pel camí que utilitza el client

Les proves fetes a la mateixa passarel·la viatgen per sortida i entrada, amb l’adreça d’origen pròpia de la passarel·la. És un camí diferent del de la petició reenviada d’un client, així que un curl local reeixit demostra menys del que sembla. Proveu des de la màquina que falla, o fixeu explícitament la interfície i l’origen.

nc -vz -w 3 10.8.0.5 443
ping -c 3 -W 1 10.8.0.5
tcpdump -ni any host 10.8.0.5 and port 443
iptables -vnL FORWARD --line-numbers
nft list ruleset | sed -n '1,60p'

Una captura als dos extrems separa els casos restants. Un SYN que surt del client i no arriba mai significa encaminament, xifratge o una llista d’accés aigües amunt. Un SYN que arriba i no obté resposta significa el servei o el seu filtre d’amfitrió, i el túnel no havia estat mai el problema.

El trànsit de tornada mereix una mirada pròpia. L’encaminament asimètric més el filtratge de camí invers descarten les respostes que arriben per la interfície equivocada, cosa que es veu com una connexió unidireccional en lloc d’un port bloquejat. Comproveu el valor de sysctl abans de culpar el tallafocs d’un símptoma que no ha causat.

El registre funciona com una segona opinió, no com un primer pas. Una declaració de registre temporal a la cadena de reenviament anomena la interfície i les adreces que l’han colpejat, i és fàcil de retirar després. Deixeu-la permanentment i haureu creat un problema de volum de registres en lloc d’una resposta.

Poseu cada canvi on sobrevisqui a una reconnexió

Una ruta afegida amb ip route add viu fins que la interfície cau. Persistiu-la al perfil de connexió: NetworkManager accepta rutes addicionals a la connexió, i netplan les conserva entre arrencades. La mateixa regla s’aplica a una excepció de tallafocs al costat del client, que desapareix després de la propera recàrrega.

Les regles del costat del servidor pertanyen al fitxer de configuració que el servei carrega en arrencar, no a una sessió interactiva que acaba quan la tanqueu. Escriviu la regla, recarregueu i confirmeu que el comptador s’ha mogut, perquè una recàrrega que ha refusat la sintaxi deixa el conjunt de regles antic al seu lloc en silenci.

Després repetiu la petició original de l’aplicació de cap a cap i anoteu quina capa ha canviat. Una reparació de ruta que també necessitava un canvi de filtre encara fallarà, i el segon fracàs es llegeix molt més fàcilment quan sabeu que el primer ha desaparegut. Anoteu la data i la versió del client al costat del resultat, perquè els valors per defecte d’encaminament i filtratge es mouen entre versions. Manteniu aquesta nota al tiquet perquè la propera persona comenci on vosaltres us heu aturat en lloc de repetir el recorregut de dues etapes.

Articles relacionats