Hindi kilala ang module ng PAM: aling proseso ang talagang nabigo
Binabanggit ng mensahe ang isang pinagsasaluhang object at entry point, hindi ang password. Hanapin ang prosesong nag-log nito, pagkatapos suriin ang pag-load, mga simbolo at mga garantiya ng stack.
Basahin ang pariralang iyon bilang pahayag tungkol sa isang pinagsasaluhang object at function pointer, hindi tungkol sa password. Ang parehong mga salita ay maaaring magmula sa isang OpenVPN plugin, mula sa isang PAM stack na na-load para sa isang serbisyo o mula sa loob ng RADIUS daemon, at ito ay tatlong magkaibang imbestigasyon. Piliin muna ang proseso.
Ipinapalagay ng mga pagsusuri sa ibaba na ang mensahe ay lumitaw sa pamamagitan ng isang integrasyon ng Linux-PAM sa isang pag-login sa VPN. Kung nagmula ito sa sariling konfigurasyon ng RADIUS server, magsimula sa ebidensya ng daemon na iyon.
Pangalanan ang proseso bago pangalanan ang pakete
Tatlong komponente ang tinatawag na module at wala sa kanila ang mapagpapalit. Isang OpenVPN authentication plugin ang inilo-load ng VPN daemon at ipinapatupad nito ang callback interface ng daemon na iyon. Ang PAM module ay isang pinagsasaluhang object na inilo-load ng libpam para sa isang pinangalanang serbisyo, at ipinapatupad ang mga entry point tulad ng pam_sm_authenticate. Ang FreeRADIUS module ay bahagi ng sariling konfigurasyon ng daemon na iyon. Ang isang mensaheng may parehong mga salita ay maaaring magmula sa alinman sa tatlo, kaya ang unang tanong ay aling linya ng log ang gumawa nito.
Iugnay ang timestamp ng isang nabigong pagtatangka sa pagitan ng VPN log at ng system authentication log, pagkatapos basahin ang mga linyang bago ang buod. Ang partikular na mensahe ng loader ay karaniwang naroon na.
Basahin ang error sa pag-load, pagkatapos ang entry point
Nag-uulat ang PAM ng hindi kilalang module kapag hindi nito ma-load ang napiling pinagsasaluhang object, o kapag ang na-load na object ay hindi nagbibigay ng function na kailangan ng stack entry na iyon. Ito ay magkaibang pag-aayos: ang una ay problema sa path, packaging o ABI, at ang pangalawa ay entry point na hindi tugma. Ang isang auth line ay nangangailangan ng pam_sm_authenticate samantalang ang isang account line ay nangangailangan ng pam_sm_acct_mgmt, at ang isang library na nagpapatupad lamang ng isa sa mga ito ay mabibigo sa isa pa, tulad ng ipinapakita ng code ng dispatcher. Hindi pinapatunayan ng paghahanap ng file sa disk ang alinman sa dalawa.
Ang pagkuha ng library na may katulad na pangalan mula sa ibang distribusyon o arkitektura ng CPU ay hindi pag-aayos, at maaari nitong iwanan ang isang prosesong naglo-load ng module na hindi kailanman nasubok laban sa libpam nito. Suriin ang paketeng nagmamay-ari ng nilalayong path at ang tunay na arkitektura ng file bago baguhin ang anuman.
Panatilihin ang mga garantiya na ibinigay ng stack
Ang pinakamabilis na paraan upang mapatahimik ang error na ito ay ang pinakamasama rin: markahan ang kinakailangang module bilang opsyonal, burahin ang yugto ng account, o magsingit ng walang kondisyong pahintulot. Ang bawat isa sa mga ito ay ginagawang nawawalang pagsusuri ang isang nabigong pagsusuri, at ang pag-login ay nagtatagumpay pagkatapos dahil sa mga dahilang walang sinumang naglayon. Ang pag-reset ng password at pagbabago ng pinagsasaluhang lihim ay hindi rin nagbibigay ng nawawalang function, dahil nangyayari ang pagpalya bago pa man makarating ang anumang kredensyal sa isang backend.
Ang isang stack na may maraming module ay maaaring nagpatakbo ng ibang backend bago ang nabigong entry, kaya hindi pinapatunayan ng error na walang ipinadalang kahilingan sa RADIUS.
I-verify ang pag-login, hindi ang module
Kapag naayos na ang pagkakaiba, subukan ang tunay na daan ng pagtanggap. Dapat pumasa ang isang wastong account, dapat pa ring mabigo ang mga di-wastong kredensyal, at dapat pa ring tanggihan ang isang ipinagbabawal na account. Tiyakin din na ipinapatupad pa rin ang anumang kinakailangan sa sertipiko o karagdagang salik, dahil ang isang naayos na stack na lumalaktaw sa isang yugto ay mukhang tagumpay mula sa panig ng kliyente.
Ang malinis na pag-load ng module ay pag-unlad, hindi isang tapos na pagsubok.
Itala kung aling pangalan ng serbisyo, aling mga file ng patakaran at aling mga entry point ang nasangkot, kasama ang nag-iisang pagtatangka na ginamit mo bilang ebidensya. Ang talaang iyon ang gumagawa sa susunod na pangyayari na isang paghahanap at hindi isang pagsasanay sa arkeolohiya.