Mantén cada compte capaç d'iniciar sessió amb normalitat, però permet que només un grup utilitzi la VPN. PAM pot expressar aquesta diferència sense un segon magatzem de contrasenyes, i el connector d'OpenVPN es pot apuntar a un servei que només contingui les comprovacions que vols. El truc és construir aquest servei sense heretar accidentalment una pila d'àmbit del sistema.

Aquest recorregut comença pel nom del servei del connector, construeix una política i després prova els tres resultats que importen: un membre, un extern amb una contrasenya vàlida i una credencial dolenta.

Per què un servei PAM a part

El connector auth-pam pren un nom de servei com a argument. Aquest nom selecciona un fitxer sota /etc/pam.d, i la pila d'aquest fitxer és el que s'executa durant un inici de sessió VPN. Si hi passes el mateix nom que fa servir un inici de sessió del sistema, hereves cada decisió d'aquesta pila, incloses les que s'hi afegiran després per motius no relacionats.

Crea un servei dedicat en lloc d'això. Parteix d'una pila funcional que ja autentiqui contra el backend previst, com ara un fitxer de contrasenyes local, SSSD o un servei de directori, i després afegeix-hi la regla d'elegibilitat. Copiar dues línies en un fitxer buit és l'error habitual: la caducitat de la contrasenya, el bloqueig del compte i altres comprovacions poden viure a la pila que no has copiat.

Separar el servei també limita l'abast del dany. Una regla només per a la VPN en una pila compartida pot denegar l'accés SSH o de consola a tothom, cosa que converteix un canvi d'accés en una caiguda.

Escriure la regla del grup

La comprovació d'elegibilitat pertany a la fase de compte, després que s'hagi verificat la credencial. Una regla com account required pam_succeed_if.so user ingroup vpnusers permet que el processament continuï només quan l'usuari autenticat és membre d'aquest grup.

Aquesta línia és un fragment, no un servei complet. Integra-la on hi arribi cada camí acceptat i revisa els indicadors de control del voltant. Un control sufficient o un salt anterior a la pila pot acabar el processament abans que s'executi la teva regla, cosa que converteix la restricció en un suggeriment.

No afegeixis use_uid per costum. Sense això, el mòdul avalua l'usuari que s'autentica; amb això, el mòdul avalua el compte sota el qual s'executa el procés d'OpenVPN, que normalment és root o un compte de servei i, per tant, no és la persona que inicia sessió.

La pertinença al grup ve de la resolució d'identitat del sistema, no d'un nom que reconeguis. Per als usuaris de directori, confirma que el mateix backend respon les consultes de grup d'aquest usuari, perquè un grup local amb un nom familiar és un objecte diferent del grup de directori amb el mateix nom.

Trampes d'ordre i identitat

Col·loca la regla del grup després de la pila d'autenticació i després de qualsevol comprovació que encara hagi d'aplicar-se, però abans o al costat de les comprovacions de compte que mantinguis. PAM avalua els mòduls en ordre de fitxer, i el valor de control de cada línia decideix si un error és definitiu.

Vigila les piles duplicades. Un patró habitual és una inclusió que ja conté una regla de compte, seguida de la teva pròpia regla de grup, cosa que produeix dues decisions on n'esperaves una. Llegeix el fitxer inclòs, no només el que has editat. Una manera ràpida de veure l'ordre efectiu és llegir el fitxer de dalt a baix i anotar cada valor de control.

Mantén intactes els altres requisits d'admissió. Una contrasenya correcta no substitueix les comprovacions de certificat, un segon factor ni l'autorització posterior a la connexió, i aquesta política no substitueix cap d'ells. Només decideix si el compte és elegible per ser considerat per a l'accés a la VPN.

Provar membres, externs i contrasenyes dolentes

Prova tres casos abans de donar la política per acabada. Un membre es connecta correctament. Un compte vàlid fora del grup autentica la seva contrasenya però se li denega l'accés a la VPN. Una contrasenya incorrecta per a qualsevol dels dos comptes es rebutja a la fase d'autenticació, no per la regla del grup.

Mira l'error visible al client i el registre del servidor alhora, perquè tots dos errors poden semblar iguals a la persona que es connecta. La distinció importa per al suport: un extern amb la contrasenya correcta necessita un canvi de grup, mentre que una contrasenya incorrecta necessita restablir la credencial.

Mantén una segona sessió oberta mentre edites PAM i verifica també l'inici de sessió SSH normal després del canvi. El sentit del servei dedicat és que l'inici de sessió del sistema hauria de quedar intacte, i l'única manera de saber-ho és provar-ho.

Si alguna cosa es trenca, restaura el fitxer de servei anterior des d'una còpia. La regla que vols és simple d'enunciar: la pertinença fa que un compte sigui elegible per a l'accés a la VPN, i tota altra comprovació obligatòria continua aplicant-se.

Articles relacionats