S’ha afegit un usuari al servidor, la contrasenya s’ha escrit correctament i la connexió encara acaba amb AUTH_FAILED. La línia del connector normalment explica per què: la paraula després de la ruta del connector és un nom de servei PAM i decideix quina pila de mòduls respon la pregunta. No és un nom d’usuari ni un punter a un fitxer de contrasenyes que OpenVPN llegeix ell mateix.

Què selecciona la segona paraula

La línia de configuració pren una ruta de connector i un argument:

plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn

Aquest argument es passa a la biblioteca PAM com a nom de servei, cosa que fa que s’executi la pila de /etc/pam.d/openvpn. Si hi escriviu login, obteniu la política d’inici de sessió interactiva, amb els mòduls que aquesta política inclogui a la vostra distribució.

Utilitzeu la ruta del connector que proporciona el paquet instal·lat, no una ruta copiada d’un altre amfitrió. El nom del fitxer i el directori difereixen entre distribucions, i una ruta incorrecta falla en arrencar amb un error de càrrega del connector, no en autenticar.

On la pila llegeix realment els comptes

PAM és un despatxador. El fitxer de servei llista els mòduls en ordre, i el primer que pot respondre decideix el resultat. Una pila que crida pam_unix llegeix comptes locals; una pila que crida un mòdul LDAP o RADIUS envia les credencials a un altre lloc.

Llegiu el fitxer al qual resol el nom de servei, incloent-hi tot el que inclou:

cat /etc/pam.d/openvpn
grep -H pam_ /etc/pam.d/openvpn /etc/pam.d/common-auth

Si la pila delega en un directori, afegir un compte local no canvia res. Si llegeix comptes locals, crear l’usuari al directori tampoc no canvia res. El compte ha d’existir on mira la pila, i aquesta és tota la diagnosi en la majoria d’aquests informes.

Un intent, dos registres

Correlacioneu una única connexió fallida a banda i banda. El registre d’OpenVPN mostra el resultat del connector i el rebuig del client; el registre d’autenticació del sistema mostra quin mòdul es va executar i què va decidir. Llegir-los en la mateixa finestra temporal és el que separa un fitxer de servei absent d’un temps d’espera del backend. Un buit al registre d’autenticació significa que la pila no es va arribar a tocar.

journalctl -u openvpn-server@server --since "-2 min"
journalctl -t sshd -t sudo --since "-2 min"

Proveu el servei directament amb una utilitat que parli PAM, perquè no depureu la VPN i la pila alhora. Una prova directa correcta amb el mateix nom de servei i compte redueix el problema a com el dimoni passa les credencials, no al compte.

pamtester openvpn alice authenticate

Si la prova directa falla amb les mateixes credencials que funcionen a la consola, la pila no llegeix la font de comptes que suposàveu. Si té èxit, mireu la conversa que executa el connector i què va enviar realment el client. Executeu-la també una vegada amb una contrasenya deliberadament incorrecta, per veure la diferència entre un rebuig i un error de mòdul. Aquests dos resultats semblen idèntics al registre de la VPN i completament diferents aquí.

Un servei dedicat és millor que editar l’inici de sessió

Doneu a la VPN el seu propi fitxer de servei quan els seus requisits difereixen de l’inici de sessió interactiu, com sol passar. Editar login o common-auth canvia la política de tots els programes que els inclouen, i la propera persona que depuri un problema d’inici de sessió no relacionat heretarà el vostre canvi.

Copieu els mòduls que necessiteu en un fitxer de servei petit, manteniu l’ordre explícit i anoteu qui n’és el propietari. Aquest fitxer és el que cal comprovar quan un restabliment de contrasenya sembla no tenir efecte.

Què envia el client i què no

El client proporciona un nom d’usuari i una contrasenya mitjançant la seva sol·licitud o fitxer compatible. El connector del servidor passa aquests valors a la conversa PAM; no els llegeix de la configuració del servidor. Una línia del costat del servidor que sembla definir una contrasenya no ho fa, i cap edició de perfil crearà un compte.

El nom d’usuari i la contrasenya poden conviure amb els certificats de client, i activar PAM no és cap motiu per deixar de verificar certificats. Manteniu les capes que el desplegament pretenia i corregiu només la font de comptes.

L’acceptació és de dues bandes: el compte previst té èxit i un compte que s’hauria de rebutjar encara falla. El README del connector auth-pam documenta l’argument de servei i els backends que pot encapçalar, i és el lloc on confirmar l’organització que intenteu construir.

Articles relacionats