Els ports UDP fixos poden estalviar el reenviament de ports, però no tots els NAT
Un tallafoc amb estat admet el paquet del company com a trànsit de tornada quan tots dos extrems fixen un port. Aquí veus quan funciona i què hi posa fi en silenci.
Dos routers domèstics, cap port reenviat, i una VPN que de vegades es connecta igualment. UDP ho permet, perquè un tallafoc admetrà un paquet que pugui casar amb un flux que la màquina ja ha iniciat. És un truc condicional, no una funció, i les condicions són fàcils d'enunciar un cop saps què compara el tallafoc. També són la raó per la qual perfils idèntics es comporten diferent en xarxes diferents.
La comparació que fa un tallafoc
Cada datagrama sortint crea una entrada de curta durada: adreça d'origen, port d'origen, adreça de destinació, port de destinació. Tot el que arriba i encaixa amb l'entrada es tracta com una resposta i es deixa passar. Les regles d'entrada no hi tenen res a veure.
Així, la pregunta no és si el tallafoc deixa entrar el company. És si el paquet del company sembla la resposta que l'entrada espera. Canvia un camp d'aquesta tupla de quatre parts i el paquet esdevé un estrany. Per això una configuració que funciona es pot trencar quan només canvia el número de port, i per això el mateix port pot funcionar en un router i fallar en el següent.
Fixa el port d'origen local i el mateix número apareix als dos costats de l'intercanvi. Aquest és tot el mecanisme, i explica per què el truc és fràgil i no pas misteriós.
Fixar un port a cada extrem
El port UDP predeterminat d'OpenVPN és el 1194, i lport fixa el port d'origen des del qual envia. Fixa els dos companys i la tupla sortint de cadascun apuntarà a un port on l'altre està escoltant:
# peer A
lport 1194
remote 198.51.100.20 1194
# peer B
lport 1194
remote 203.0.113.10 1194
Això només funciona mentre cap router entremig no reescrigui el port d'origen. Quan els paquets apareixen en una captura però no s'aixeca cap túnel, la reescriptura és el primer sospitós.
On la tupla deixa de coincidir
Un NAT que mapifica per destinació dona a cada company un port extern diferent. L'adreça que es va dir al teu company que fes servir no és l'adreça que l'arriba, així que el paquet entrant no coincideix amb res i es descarta en silenci.
La traducció d'operadora, el NAT apilat i l'aleatorització de ports acaben igual. També qualsevol dispositiu intermedi que reescrigui ports i deixi les adreces tranquil·les.
Els transports de flux hi surten pitjor. Un handshake TCP es segueix pas a pas, així que una VPN basada en TCP no es pot foradar així de cap manera i necessita un oient en algun punt del camí.
Normalment un costat falla primer
A la pràctica les dues xarxes poques vegades es comporten igual. Un router pot repartir un mapatge predictible mentre l'altre reparteix ports per destinació, i el resultat és una configuració que funciona entre dues cases i falla des d'una xarxa mòbil. Els informes que es contradiuen solen descriure dues parelles de routers diferents. Cap dels dos autors s'equivoca, i cap dels dos resultats es generalitza.
Esbrina quin costat va descartar el paquet abans de tocar els perfils. Les captures als dos extrems ho resolen en un sol intent: els datagrames que surten d'A i no arriben mai a B volen dir que el flux es va reescriure en trànsit, mentre que els datagrames que arriben a B sense cap resposta de tornada volen dir que el tallafoc no els va acceptar com a relacionats.
Dos companys amb adreces IPv6 públiques eviten tot el problema. Sense traducció no hi ha res a casar, així que una regla de tallafoc que anomeni els companys n'hi ha prou i el disseny deixa de dependre del comportament del router.
Quan deixar-ho estar
Un amfitrió amb una adreça pública és la resposta fiable. Pot acabar el túnel per als dos companys, o simplement ajudar-los a descobrir l'adreça externa actual de l'altre, i tots dos arranjaments funcionen faci el que faci el NAT. Una capa superposada gestionada ofereix la mateixa coordinació si la política ho permet.
Cap d'aquestes solucions no necessita un tallafoc desactivat. Desactivar la protecció per guanyar la connexió directa descarta la raó per la qual l'intent directe era atractiu, i deixa la màquina oberta durant tot el test.
Prova primer l'arranjament directe i després anota què has vist. El comportament del NAT i la captura que el va mostrar valen més que la parella de ports que vas acabar fent servir, perquè la xarxa següent serà diferent. El manual d'OpenVPN 2.6 documenta lport i les opcions remote de què depèn això.