Una interfície gràfica d'escriptori manté la connexió de gestió, així que un script de monitoratge que intenta obrir-ne una de pròpia no llegeix res o, pitjor, la interfície deixa de respondre als avisos. La conclusió habitual és que el dimoni és inestable. Al dimoni de la comunitat la limitació és deliberada: la interfície de control serveix un sol client de gestió connectat alhora, i aquest nombre no té res a veure amb quants usuaris pot suportar la VPN.

Un sòcol, un titular

El canal de gestió accepta un sol client connectat. Quan n'arriba un segon mentre el primer és actiu, espera o és rebutjat, i no hi ha cap mode de subscriptor paral·lel amagat darrere una opció. Desconnectar el titular actual permet al dimoni acceptar el següent, i això és una transferència, no un segon canal.

Això converteix cada eina addicional en una competidora. Si la interfície posseeix la connexió, un script d'enquestació o bé no s'hi connecta o bé només ho aconsegueix després que la interfície hagi renunciat, i la seqüència es repeteix a la reconnexió següent. Si el script es connecta primer, la interfície perd el seu camí de control i els seus avisos deixen de funcionar. Cap de les eines no informa del conflicte, perquè cadascuna només veu la seva pròpia ordre fallida.

What you needMechanism that fitsWhat it cannot do
Periodic list of connected clientsStatus file written on an intervalDeliver events as they happen
Interactive prompts and session controlThe single management connectionServe two controllers at once
Multiple consumers of eitherOne owner process that fans outExist without you writing it

Decidiu quin component posseeix el control

Trieu un sol titular per al canal interactiu i deixeu que sigui l'única cosa que es connecta. Una interfície que gestiona la connexió, un script que respon als avisos d'autenticació i un controlador que acaba sessions compten tots com a titulars, i només un pot ocupar el paper.

Quan una interfície posseeix la connexió, feu servir la integració que ofereix en lloc de lluitar-hi. Competir amb el titular pel sòcol produeix fallades intermitents que als usuaris els semblen aleatòries, i qui depura normalment només veu la segona meitat de la cursa. Anoteu quin procés es connecta primer després d'un reinici, perquè aquest ordre decideix cada vegada qui guanya. Un monitor que arrenca abans que la interfície mantindrà el canal fins que la interfície renunciï.

Feu servir instantànies d'estat per als recol·lectors

La major part del monitoratge necessita una llista, no una conversa. Un fitxer d'estat periòdic ho respon sense tocar el canal de control, i continua funcionant mentre la interfície roman connectada.

status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix

L'interval és el pressupost de frescor, així que fixeu-lo segons el que el tauler necessita realment i no segons el valor més petit que sembli segur. Una instantània escrita cada pocs segons és barata; un script que es reconnecta al sòcol de control cada pocs segons no ho és, perquè cada reconnexió competeix amb el titular.

Una instantània no és un historial ni un flux d'esdeveniments. Les connexions que arriben i se'n van dins d'un mateix interval no apareixen mai, així que un requisit d'auditoria no es pot satisfer enquestant un fitxer que se sobreescriu a si mateix. Si necessiteu saber si un usuari s'ha connectat, encara que sigui un cop, la instantània és l'instrument equivocat.

La difusió és un disseny, no un mode

Si diversos consumidors necessiten de debò dades de gestió en directe, poseu un sol component de confiança davant del sòcol i deixeu que publiqui observacions estretament triades per als altres. Aquest component posseeix la reconnexió, els avisos d'autenticació i la decisió sobre què és segur exposar.

Construïu-lo deliberadament: definiu quines consultes estan permeses, registreu qui les ha demanat i eviteu que la capa de difusió esdevingui per accident un panell de control remot. El dimoni no té cap mode multiclient per activar, i cap línia de configuració no en crea un. Tracteu el titular com a part de la frontera de seguretat, perquè té una interfície que pot desconnectar persones. Reiniciar-lo hauria de ser una operació rutinària amb un camí de recuperació documentat.

Tracteu el sòcol com un privilegi, no com a mètriques

La interfície de gestió pot desconnectar usuaris, canviar l'estat i llegir esdeveniments que anomenen persones. La seva contrasenya autentica el client i no xifra el transport, així que un oïdor de xarxa exposa la conversa a qualsevol que la pugui observar.

Preferiu un sòcol local o un oïdor estrictament restringit, i comproveu a quin procés s'adreça realment el vostre recol·lector, ja que els productes de servidor porten les seves pròpies API de gestió que es comporten diferent. Un recol·lector apuntat al dimoni equivocat produeix conclusions segures i errònies. Confirmeu el camí i el procés propietari abans de depurar una consulta que no retorna res.

Articles relacionats