Límite de sesións dunha conta VPN compartida: por que cae un dispositivo
Un inicio de sesión compartido chega ao seu tope de sesións simultáneas e un dispositivo cae. Le a mensaxe do cliente, conta as sesións no servidor e logo corrixe o modelo de identidade.
Engades un segundo portátil á conta que xa funciona no teu teléfono, e o túnel do teléfono cae en menos dun minuto. Ou o dispositivo novo nunca remata de conectarse, e o cliente acaba nunha mensaxe de política en lugar dun tempo de espera. A rede está ben en ambos os casos; a decisión tomouse por riba dela. Un inicio de sesión compartido é unha identidade, e a maioría dos servizos VPN contan esa identidade en vez do número de dispositivos que posúes. Traballo desde a pantalla do cliente cara a fóra, porque normalmente mostra que capa te rexeitou.
Le a mensaxe do cliente antes de tocar a rede
Tres fallos parécense e non o son. Un tempo de espera significa que os teus paquetes non chegaron a nada. Un erro de TLS ou de certificado significa que o extremo respondeu pero o apretón de mans fallou. Un rexeitamento de autenticación ou de política significa que a pasarela leu as túas credenciais e despois rexeitounas. Só o terceiro pertence a unha historia de límite de sesións, así que fíxao primeiro.
Os clientes de OpenVPN gardan as liñas interesantes no seu panel de rexistro. Desprázate ata o último intento de conexión e non ata o bucle de reintentos que o segue, e busca AUTH_FAILED ou unha cadea de motivo enviada. O cliente adoita informar dun rexeitamento xenérico sen explicación, así que o seguinte paso é o servidor, non a configuración do cliente. As aplicacións do provedor son peores: unha mensaxe de límite de dispositivos é útil, pero unha conexión que se derruba aos dous segundos é unha decisión de política, non un contrasinal incorrecto. Anota o nome do dispositivo e a hora exacta en calquera caso; un operador pode emparellar ese par cun rexistro de acceso en segundos.
Conta as sesións onde as conta o servidor
O contador que importa vive na pasarela. OpenVPN escribe un ficheiro de estado cando o servidor se inicia con --status, listando cada cliente conectado co seu nome común, o seu enderezo real e os seus contadores de tráfico.
cat /var/log/openvpn-status.log
# or query the management socket directly
echo "status 2" | socat - UNIX-CONNECT:/run/openvpn/server.sock
Dúas filas co mesmo nome común son dúas sesións vivas baixo un certificado. Por defecto OpenVPN non mantén ambas: sen --duplicate-cn, unha segunda conexión co mesmo certificado substitúe a primeira, e o dispositivo máis antigo perde o seu túnel. Esa substitución é a sinatura dun límite de identidade. Unha perda de paquetes aleatoria non desconecta con educación exactamente un dispositivo no momento en que aparece outro.
WireGuard non ten táboa de sesións que inspeccionar. wg show wg0 imprime os pares e o seu último apretón de mans, e cada dispositivo rexistrado é un par coa súa propia clave. Unha conta compartida alí é un ficheiro de configuración copiado a varias máquinas, e o límite vén do que reparta esas configuracións: un portal do provedor, un reconto de asentos ou unha regra ligada ao teu enderezo público. O manual de OpenVPN 2.6 documenta as opcións do lado do servidor se mantés a túa propia pasarela.
Separa os catro límites que se esconden tras unha soa mensaxe
A maioría dos tickets de conta compartida son unha de catro decisións de admisión. O cliente non pode distinguilas, pero o patrón de que dispositivo falla si.
A mesma identidade, segunda conexión. O dispositivo novo funciona e o vello morre no mesmo instante. É unha regra de concorrencia por identidade que aplica a pasarela ou o sistema de contas. Nada está roto; o servizo fai o que di a súa política.
Reconto de asentos ou dispositivos no plan. Os primeiros dispositivos seguen conectados e o seguinte é rexeitado mentres os demais seguen funcionando. Revisa a lista de dispositivos do provedor antes de cambiar un cliente, porque un límite de licenza non se pode arranxar desde o lado do cliente.
Un tope ligado ao teu enderezo público. Dous portátiles tras un só router doméstico fallan mentres o mesmo inicio de sesión funciona desde un punto de acceso do teléfono. Move o segundo dispositivo a outra rede para probalo. Se alí se conecta, estás a ver unha regra por enderezo ou unha regra NAT, non o reconto da conta.
Un máximo de todo o servidor. Todos na pasarela fallan na mesma hora punta, incluídas contas que onte estaban ben. O --max-clients de OpenVPN compórtase así, e non ten nada que ver cos dispositivos que rexistrases.
Limpa as sesións obsoletas antes de mercar máis asentos
Unha sesión que rematou mal pode seguir ocupando unha praza. A contabilidade RADIUS escribe un rexistro cando comeza unha sesión e péchao cando a sesión se detén; cando un cliente desaparece, a parada nunca chega e o servidor mantén a sesión ata que caduca unha actualización intermedia ou un tempo de espera. Nunha pasarela FreeRADIUS podes ver os rexistros abertos:
SELECT username, acctsessionid, acctstarttime
FROM radacct WHERE acctstoptime IS NULL;
Un rexistro aberto cunha hora de inicio antiga e sen tráfico pertence a un dispositivo que xa non está. Péchao desde a consola do operador ou cunha solicitude de desconexión, antes de supor que o límite era real. Os teléfonos reconéctanse cando o Wi-Fi pasa á rede móbil, e un portátil pode levar un túnel no sistema operativo e outro dentro dunha aplicación do provedor, o que conta como dúas sesións dunha soa máquina.
Deixa de compartir unha identidade entre dispositivos que funcionan xuntos
A solución duradeira é estrutural. Dálle a cada dispositivo o seu propio certificado cun nome común único, ou a súa propia conta, e rexistra que persoa e que máquina o ten. En OpenVPN iso significa un certificado de cliente por dispositivo, con --duplicate-cn desactivado salvo que queiras comportamento de toma de control; en WireGuard, un par de chaves por dispositivo, xerado alí e nunca copiado.
Clonar un perfil para saltar un límite de dispositivos rompe a revocación: revogar unha copia corta cada dispositivo que a comparte, e o rexistro xa non pode dicir que máquina fixo que. Se o límite é comercial, a solución honesta é un asento engadido; se é política interna, pide unha segunda identidade cos mesmos dereitos de acceso.
Verifica nunha orde fixa
Proba a reparación do mesmo xeito cada vez, para que o resultado signifique algo.
- Pecha a sesión en cada dispositivo e confirma que a lista activa do servidor está baleira; unha entrada que non se limpa é unha sesión obsoleta, non un erro do cliente.
- Conecta os dispositivos un a un e observa a lista entre conexións.
- Se dous deben funcionar xuntos, confirma que ambas as filas levan identidades distintas e que as dúas manteñen o seu apretón de mans fresco.
- Repíteo tras un traspaso de Wi-Fi a móbil, xa que unha reconexión pode crear un segundo rexistro.
Se o dispositivo vello segue caendo cando se conecta o novo, a pasarela aplica unha regra por identidade para a que non che concederon excepción. Leva ao operador os nomes dos dispositivos, as marcas de tempo e a lista de sesións activas; iso converte unha queixa vaga nunha pregunta de política que poden responder.