Voleu que el trànsit del proxy SOCKS surti per la VPN mentre la resta de l'equip manté el seu camí habitual. Dos dissenys ho fan, i es diferencien en què es trenca quan alguna cosa va malament. Un empeny una ruta per defecte dins del túnel i després la sorteja; l'altre deixa la taula principal tranquil·la i envia una única adreça d'origen a una segona taula. El segon és més net, i té les seves pròpies trampes.

Dos dissenys, dos radis de mal diferents

El disseny de túnel complet és el que fan per defecte la majoria de clients VPN: substituir la ruta per defecte perquè tot segueixi el túnel, i després excloure el que no hauria de seguir-lo. És fàcil de raonar i difícil de mantenir estret, perquè cada servei local que afegiu hereta el túnel fins que l'excloeu. El mode de fallada és ampli, ja que una sola ruta equivocada s'endú la connectivitat de l'equip.

El disseny de selecció per origen va en la direcció oposada. La taula principal queda com estava, i una regla de política envia els paquets d'una adreça local concreta a una taula amb una ruta per defecte cap al túnel. Res més no canvia, cosa que vol dir que el radi de mal és una adreça.

Aquesta estretor també és la restricció: el disseny només funciona si els paquets sortints del proxy porten realment aquella adreça.

Què fa el paràmetre external del Dante

El paràmetre external tria les adreces que el proxy fa servir per a les connexions sortints; no toca la política d'encaminament del nucli. Aquesta separació és el que fa possible el segon disseny, i també és on la gent llegeix malament la documentació. Apuntar external a una adreça del túnel fa que el proxy origini les seves connexions des d'aquella adreça, i la taula d'encaminament decideix després on van aquests paquets.

L'oient és una qüestió separada. Mantingueu internal restringit als clients que haurien de fer servir el proxy, exigiu autenticació i tanqueu el port amb un tallafoc, perquè un oient obert no és una característica de la sortida per VPN.

Confirmeu que l'adreça configurada pertany realment al túnel dins de l'espai de noms de xarxa del proxy.

Construir la taula de selecció per origen

Per a una adreça TUN de 10.90.0.2/24 amb un parell accessible a 10.90.0.1, i un número de taula que no faci servir res més, la disposició és aquesta:

ip -4 route add table 100 10.90.0.0/24 dev tun0 src 10.90.0.2
ip -4 route add table 100 default via 10.90.0.1 dev tun0 metric 10
ip -4 route add table 100 unreachable default metric 32760
ip -4 rule add priority 1000 from 10.90.0.2/32 lookup 100

La ruta inabastable és la part que la gent s'estalvia. Sense ella, una taula la ruta de túnel de la qual desapareix cau a la ruta per defecte corrent i el proxy surt silenciosament per la WAN. Amb ella, la consulta falla, que és una fallada visible en lloc d'una fuita silenciosa. La prioritat de la regla també ha de quedar davant de qualsevol altra cosa que coincideixi amb aquell origen.

Aquests valors descriuen una topologia. Els parells punt a punt, l'adreçament net30 i els clients que reparteixen un prefix diferent necessiten les seves pròpies rutes, així que copieu la forma, no les adreces.

On fa aigües la regla d'origen

Una regla que coincideix amb una adreça d'origen afecta cada procés que la fa servir, no només el proxy. Si un altre dimoni lliga la mateixa adreça, el seu trànsit també agafa el túnel, i la fallada semblarà un problema d'un servei no relacionat. Doneu al proxy una adreça que no faci servir ningú més, o accepteu que l'abast és l'adreça i no el procés.

El DNS és l'altra fuita. Un sòcol de resolució no fa servir necessàriament l'origen de dades sortints del proxy, així que les consultes de noms encara poden sortir per la WAN. Proveu la resolució per separat de l'establiment de la connexió, i decidiu si aquest resultat és acceptable.

IPv6 necessita les seves pròpies regles i rutes, perquè una disposició IPv4 no demostra res sobre ell.

Trieu segons la fallada que podeu tolerar

Trieu el túnel complet quan l'equip s'hagi de protegir sencer i pugueu mantenir la llista d'exclusions. Trieu l'encaminament per origen quan l'equip hagi de conservar el seu camí i només un servei s'hagi de redirigir. Tots dos són legítims; l'error és triar-ne un i després provar-lo com si fos l'altre.

Tant si en trieu un com l'altre, verifiqueu-ho des de les dues bandes: una petició a través del proxy i una petició directa des de l'equip, amb l'adreça de sortida observada enregistrada per a cadascuna.

Si el túnel cau, decidiu per endavant si el proxy ha de fallar o tornar enrere, i deixeu que la taula d'encaminament expressi aquesta decisió.

Articles relacionats