El client es connecta, el túnel porta pings a la passarel·la i res més enllà respon. Aquest estat és normal en una passarel·la que només havia de donar accés a xarxes protegides, i és una fallada en una que s’anuncia com a sortida de túnel complet. Abans de canviar regles, confirmeu quin servei es va prometre. Després seguiu una sola petició pública pels quatre punts on es pot aturar. Una petició i una captura de paquets resolen més que una pàgina de conjectures.

Confirmeu si la sortida a internet va ser mai el disseny

Un perfil de túnel dividit només encamina les subxarxes protegides cap a la VPN, així que la navegació pública continua pel vincle local i no toca mai la passarel·la. Un perfil de túnel complet instal·la una ruta per defecte dins del túnel, cosa que fa la passarel·la responsable de tot el camí. Tots dos són dissenys legítims, i confondre’ls produeix un informe de fallada on no n’hi ha cap. Llegiu les rutes anunciades pel client abans de provar qualsevol altra cosa, perquè la taula de rutes respon la pregunta que el tiquet sol plantejar malament.

El que instal·la el client no sempre és el que pretén el perfil. Una ruta emesa pot quedar anul·lada per una ruta local amb una mètrica més baixa, i un client que conserva la seva ruta de LAN mentre afegeix una ruta per defecte es comporta com un túnel dividit per a aquesta subxarxa.

Seguiu una sola petició pública

Trieu una única destinació i seguiu-la des del client cap a fora. Al client, comproveu que el paquet tria realment el túnel i quina adreça local usa com a origen. Després reviseu la passarel·la: si el paquet arriba i si surt per la interfície pública. Cada una d’aquestes respostes elimina una categoria sencera de causes.

ip route get 1.1.1.1
ip -4 addr show tun0
conntrack -L | grep 1.1.1.1
tcpdump -ni any host 1.1.1.1

Si la passarel·la no veu mai el paquet, la ruta del client o la selecció del túnel són incorrectes. Si arriba i no surt, el problema és a la passarel·la, i s’apliquen les tres comprovacions restants.

Reviseu reenviament, ruta i traducció

La guia de reenviament que s’entrega amb strongSwan val per a una passarel·la de qualsevol tipus de túnel: el nucli ha de poder moure paquets entre interfícies, i una ruta utilitzable ha d’apuntar cap a internet. La política del tallafoc ha de permetre després el trànsit, i l’adreça d’origen ha de ser una que el costat públic pugui respondre. Una adreça de client privada reenviada sense canvis cap a internet no rep mai resposta.

sysctl net.ipv4.ip_forward
ip route get 1.1.1.1
nft list ruleset | grep -A6 forward
sysctl net.ipv4.conf.all.rp_filter

La traducció d’origen és la peça que sol faltar. Amb ella, la passarel·la reescriu l’origen del client cap a la seva adreça pública i segueix el flux; sense ella, la resposta no té on anar. Les plataformes al núvol afegeixen un segon límit, on la taula de rutes o el grup de seguretat de la instància poden descartar trànsit que el tallafoc convidat permet. Aquest límit és fàcil de passar per alt perquè el sistema convidat sembla ben configurat des de dins.

El filtratge de camí invers en una configuració asimètrica també pot descartar paquets vàlids. Llegiu el comptador d’aquesta regla en lloc de suposar que està bé, perquè un paràmetre estricte a la interfície pública rebutja el trànsit que arriba per un camí diferent del que prediu la taula de rutes.

Camí de resposta i resolució són dues respostes diferents

Vigileu també la resposta, no només la petició. Si la petició surt traduïda i la resposta torna al flux traduït, el reenviament funciona encara que l’aplicació continuï fallant, i la investigació següent correspon a l’aplicació o al DNS.

Un lloc que retorna un error HTTP és prova que el reenviament a internet funciona. Un nom que no es resol mentre l’accés per adreça funciona és un problema de resolució, no de NAT.

Després d’una correcció precisa, torneu a provar el client i qualsevol recurs privat restringit a propòsit. Concedir accés a internet no ha d’ampliar en silenci l’accés a totes les xarxes connectades a la passarel·la.

Articles relacionats