OpenVPN PAM: sisselogimise argument on teenus, mitte kasutaja
Sõna pärast auth-pam pistikprogrammi teed valib PAM-i virna. Lugege seda virna, leidke selle kontode allikas ja testige seda pamtesteriga enne profiilide muutmist.
Serverile lisati kasutaja, parool sisestati õigesti ja ühendus lõpeb ikkagi AUTH_FAILED-ga. Pistikprogrammi rida selgitab tavaliselt, miks: sõna pärast pistikprogrammi teed on PAM-i teenuse nimi ja see otsustab, milline moodulite virn küsimusele vastab. See ei ole kasutajanimi ega viide paroolifailile, mida OpenVPN ise loeb.
Mida teine sõna valib
Konfiguratsioonirida võtab pistikprogrammi tee ja ühe argumendi:
plugin /usr/lib/openvpn/plugins/openvpn-plugin-auth-pam.so openvpnSee argument antakse PAM-i teegile teenuse nimena, mistõttu käivitub virn asukohas /etc/pam.d/openvpn. Kui kirjutate sinna login, saate hoopis interaktiivse sisselogimispoliitika, koos nende moodulitega, mis see poliitika teie distributsioonis juhtub sisaldama.
Kasutage pistikprogrammi teed, mille paigaldatud pakett pakub, mitte teisest hostist kopeeritud teed. Failinimi ja kataloog erinevad distributsioonide vahel ning vale tee ebaõnnestub käivitamisel pistikprogrammi laadimise veaga, mitte autentimisel.
Kust virn kontosid tegelikult loeb
PAM on suunaja. Teenusefail loetleb moodulid järjekorras ja esimene, mis suudab vastata, otsustab tulemuse. Virn, mis kutsub pam_unix, loeb kohalikke kontosid; virn, mis kutsub LDAP- või RADIUS-moodulit, saadab mandaadid hoopis mujale.
Lugege faili, millele teenuse nimi laheneb, sealhulgas kõike, mida see kaasab:
cat /etc/pam.d/openvpn
grep -H pam_ /etc/pam.d/openvpn /etc/pam.d/common-authKui virn delegeerib kataloogile, ei muuda kohaliku konto lisamine midagi. Kui see loeb kohalikke kontosid, ei muuda ka kasutaja loomine kataloogis midagi. Konto peab eksisteerima seal, kuhu virn vaatab, ja see on enamikus neist aruannetest kogu diagnoos.
Üks katse, kaks logi
Korreleerige üks ebaõnnestunud ühendus mõlemal pool. OpenVPN-i logi näitab pistikprogrammi tulemust ja kliendi tagasilükkamist; süsteemi autentimislogi näitab, milline moodul töötas ja mida see otsustas. Nende lugemine samas ajavahemikus on see, mis eristab puuduvat teenusefaili backend'i ajalõpust. Autentimislogi tühik tähendab, et virnani ei jõutud üldse.
journalctl -u openvpn-server@server --since "-2 min"
journalctl -t sshd -t sudo --since "-2 min"Testige teenust otse PAM-iga suhtleva tööriistaga, et te ei siluks korraga VPN-i ja virna. Õnnestunud otsene test sama teenuse nime ja kontoga kitsendab probleemi sellele, kuidas deemon mandaate edastab, mitte kontole endale.
pamtester openvpn alice authenticateKui otsene test ebaõnnestub samade mandaatidega, mis konsoolis töötavad, ei loe virn teie oletatud kontoallikat. Kui see õnnestub, vaadake vestlust, mida pistikprogramm peab, ja seda, mida klient tegelikult saatis. Käivitage see ka üks kord meelega vale parooliga, et näeksite erinevust keeldumise ja mooduli vea vahel. Need kaks tulemust näevad VPN-i logis identsed ja siin täiesti erinevad.
Eraldi teenus on parem kui sisselogimisfaili muutmine
Andke VPN-ile oma teenusefail, kui selle nõuded erinevad interaktiivsest sisselogimisest, mis tavaliselt nii on. login või common-auth muutmine muudab poliitikat iga programmi jaoks, mis need kaasab, ja järgmine inimene, kes silub seotud sisselogimisprobleemi, pärib teie muudatuse.
Kopeerige vajalikud moodulid väikesesse teenusefaili, hoidke järjekord selgesõnaline ja märkige, kellele see kuulub. See fail on see, mida kontrollida, kui parooli lähtestamine näib mõju puuduvat.
Mida klient saadab ja mida mitte
Klient esitab kasutajanime ja parooli oma toetatud viiba või faili kaudu. Serveri pistikprogramm annab need väärtused PAM-i vestlusse; see ei loe neid serveri konfiguratsioonist. Serveripoolne rida, mis näib parooli määratlevat, ei tee seda, ja ükski profiili muutmine ei loo kontot.
Kasutajanimi ja parool võivad eksisteerida koos kliendisertifikaatidega, ja PAM-i lubamine ei ole põhjus sertifikaatide kontrollimist lõpetada. Säilitage kihid, mida juurutus kavatses, ja parandage ainult kontoallikat.
Vastuvõtt on kahesuunaline: kavandatud konto õnnestub ja konto, mis tuleks tagasi lükata, ebaõnnestub endiselt. Fail auth-pam pistikprogrammi README dokumenteerib teenuse argumendi ja taustaprogrammid, mida see saab teenindada, ja see on koht, kus kinnitada lahendust, mida proovite ehitada.