Un listener mort a DD-WRT normalment vol dir que el dimoni ha sortit mentre analitzava la seva configuració, no que una regla del tallafoc hagi bloquejat el port. OpenVPN 2.5 ha endurit diversos valors per defecte en què es basaven les configuracions antigues, i una configuració generada que funcionava en una compilació antiga pot ser rebutjada abans que el sòcol s’obri. El motiu és al registre del propi router, i l’entrada és al fitxer generat. Llegir tots dos en aquest ordre és més ràpid que qualsevol captura de paquets.

El dimoni no és el tallafoc

La distinció importa perquè les dues fallades semblen idèntiques des de fora: un client envia un handshake i no rep res. Una és un procés que no s’executa, i l’altra és un procés que s’executa i filtra.

Separa’ls amb dues comprovacions abans de canviar res, perquè editar el tallafoc sobre un dimoni mort només afegeix una segona variable.

Llegeix la configuració que ha generat DD-WRT

DD-WRT no passa a OpenVPN el text que has escrit a la interfície web. Escriu una configuració generada a /tmp/openvpn/openvpn.conf i engega el dimoni amb aquest fitxer, de manera que els camps de la interfície i qualsevol text d’Additional Config es fusionen abans que OpenVPN els vegi. Si depures el formulari en lloc del fitxer generat, llegeixes una intenció i no l’entrada real. Copia aquest fitxer a un lloc persistent abans que un reinici /tmp esborri.

Compara el fitxer generat amb el que volies, sobretot on la interfície escriu una directiva que mai no has triat. Un desplegable que emet una opció obsoleta és invisible al formulari i fatal per al dimoni.

Si el fitxer generat és buit o no hi és, el dimoni no ha arribat ni a engegar-se, i el problema és per sobre d’OpenVPN.

Què ha deixat d’acceptar OpenVPN 2.5

OpenVPN 2.5 ha substituït ncp-ciphers per data-ciphers, i ha apujat la versió mínima de TLS per defecte a 1.2. També ha canviat el tractament de la compressió, de manera que es rebutja un parell que ofereix compressió tret que la configuració ho permeti explícitament, i ha deixat obsolets noms d’opció més antics com ns-cert-type en favor de remote-cert-tls. Cadascun d’aquests canvis converteix una configuració que abans funcionava en una fallada d’anàlisi o de negociació.

El mode de fallada depèn de la directiva. Una opció desconeguda o eliminada atura el dimoni en arrencar, i aquest és el teu listener mort. Un desajust de negociació deixa el dimoni funcionar i rebutja els clients, cosa que des del client sembla un problema de tallafoc.

Llegeix el primer error del registre, no l’últim. L’anàlisi s’atura a la primera directiva dolenta, i tot el que ve després és soroll de l’aturada.

Els requisits previs específics de Broadcom

A les compilacions de Broadcom el dispositiu de túnel ha d’existir abans que el dimoni el pugui fer servir. Comprova que el mòdul tun estigui carregat i que /dev/net/tun hi sigui, perquè un dispositiu absent produeix una fallada d’arrencada que no té res a veure amb els certificats. El mateix val per als scripts auxiliars que DD-WRT genera per a rutes i DNS: si falten o no són executables, el dimoni pot arrencar i tot i així no acabar la seva configuració.

Executa el dimoni en primer pla amb més verbositat sobre la configuració generada quan necessitis el missatge real. Una execució en primer pla imprimeix l’error d’anàlisi que l’script init s’ha empassat.

Després restaura el servei normal, perquè un dimoni en primer pla i l’script init es barallaran pel port.

Demostra que el listener existeix abans de depurar els clients

Confirma el procés i el sòcol per separat: una ordre per al dimoni en execució, una altra per a un port UDP lligat a l’adreça esperada. Un procés sense sòcol vol dir que encara s’està configurant o que està lligat a la interfície equivocada. La parella és una prova útil precisament perquè una meitat no pot ser certa sense l’altra.

La depuració del costat del client només té sentit després que el listener existeixi. Llavors comprova que el xifratge i la configuració TLS del client coincideixin amb la data-ciphers del servidor i la seva versió mínima, i que el port estigui realment reenviat al router.

Guarda la configuració generada i la línia de registre que va demostrar la correcció. La propera actualització de firmware pot tornar a canviar els valors per defecte, i aquest registre és el que converteix una repetició en una comprovació de cinc minuts.

Articles relacionats