Quatre coses han d’encaixar abans que un equip Linux enviï només el seu propi SMTP per un túnel: una ruta en una taula dedicada, una regla de política que seleccioni el trànsit, una adreça d’origen que el peer accepti i un camí de retorn que sobrevisqui a l’asimetria. Cadascuna és una configuració separada amb la seva pròpia manera de fallar. L’ordre de sota és el que fa que un error assenyali la peça que realment és incorrecta. És una feina d’encaminament específica de port, no una petició d’una ruta per defecte de VPN.

Una regla de port no és una ruta per defecte

Una regla que fa coincidir el TCP generat localment amb el port de destinació 25 envia aquest trànsit a una taula que vosaltres nomenau. La regla no crea res per si sola: selecciona, i la taula ha de contenir una ruta que pugui portar el paquet. Combinar les dues coses només cobreix la direcció de sortida d’un protocol, així que l’enviament per a altres equips, les connexions de correu entrants i IPv6 queden fora de l’acord. Anomenar-ho política específica de port en lloc de VPN per defecte manté aquesta frontera honesta.

Dos ajustos de wg-quick són prerequisits, no part de la política. AllowedIPs = 0.0.0.0/0 permet que el peer porti destinacions IPv4 arbitràries, i Table = off impedeix que wg-quick instal·li la seva pròpia ruta per defecte per a aquest prefix. No barregeu aquestes instruccions amb un gestor que apliqui la seva pròpia política de rutes, perquè tots dos no es posaran d’acord sobre qui posseeix la taula principal.

Escriviu la ruta, el selector i la guàrdia

Trieu un número de taula i un parell de prioritats que no faci servir res més, i després apliqueu la ruta, el selector i la guàrdia en aquest ordre. Els números de sota són exemples, no valors reservats:

ip -4 route add default dev wg0 src 10.77.0.2 table 51825
ip -4 rule add priority 10000 iif lo ipproto tcp dport 25 lookup 51825
ip -4 rule add priority 10001 iif lo ipproto tcp dport 25 unreachable

iif lo limita la regla al trànsit originat localment, i ipproto tcp dport 25 identifica la direcció de la connexió; la referència d’ip-rule documenta tots dos selectors. Existeixen als nuclis i versions d’iproute2 actuals, i en un sistema més antic la regla es rebutja de ple, que és un error més clar que una regla que es carrega i no coincideix amb res.

La regla unreachable a la prioritat següent és la guàrdia. Sense ella, una ruta absent a la taula 51825 cau a la ruta per defecte ordinària, i el correu surt per l’enllaç físic durant una caiguda del túnel, que és exactament el cas que la política volia evitar.

L’adreça d’origen ha de coincidir

La preferència src de la ruta només omple un origen per a les connexions que no n’han vinculat cap. No és traducció i no anul·la una vinculació explícita, així que un dimoni vinculat a l’adreça física continua enviant des d’aquesta adreça. Si això és el que trobeu, canvieu l’ajust del propi dimoni o dissenyeu una política de traducció deliberada, perquè un masquerade global tardà és una solució diferent amb conseqüències diferents.

A la passarel·la, el peer del client ha d’autoritzar l’origen que realment rep, que és 10.77.0.2/32 i no un prefix de destinació ampli. Copiar el 0.0.0.0/0 del client a cada peer de la passarel·la confon quin peer posseeix quin trànsit. La passarel·la també necessita reenviament, una política de tallafocs que permeti el flux i un camí de retorn, inclosa la traducció de sortida quan l’extrem superior no pot encaminar una adreça privada del túnel.

Comproveu el camí de retorn i després la persistència

Llegiu les consultes abans de confiar en res, perquè mostren quina taula i quin origen rep cada direcció. Una destinació al port 25 i la mateixa destinació al port 443 són suficients:

ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443

La primera consulta hauria de nomenar wg0 i l’origen previst, i la segona hauria de mantenir l’enllaç ascendent ordinari. Quan l’aplicació vinculi la seva pròpia adreça, afegiu from amb aquesta adreça a la consulta. Una direcció de resposta que arriba a wg0 i després es descarta localment apunta al filtratge de camí invers IPv4, perquè una regla només de sortida per port no fa que la consulta inversa triï el túnel.

On l’encaminament asimètric està autoritzat, el mode lax limitat a la interfície mitjançant net.ipv4.conf.wg0.rp_filter=2 pot ser adequat, i val la pena comprovar primer el màxim efectiu dels valors all i de la interfície. No desactiveu la validació globalment com a drecera. Després lliureu la taula, les prioritats i la guàrdia a qui posseeixi la configuració, i obriu connexions noves després d’una reconnexió per confirmar que la selecció encara es manté. Teniu present que les respostes d’un escoltador SMTP local porten el port d’origen 25 i no el port de destinació 25, que és una qüestió de política a part.

Articles relacionats