Modul PAM tidak dikenali: proses mana yang sebenarnya gagal
Mesej itu menamakan objek kongsi dan titik masuk, bukan kata laluan. Cari proses yang merekodkannya, kemudian semak pemuatan, simbol dan jaminan tindanan.
Baca frasa itu sebagai pernyataan tentang objek kongsi dan penuding fungsi, bukan tentang kata laluan. Perkataan yang sama boleh datang daripada OpenVPN pemalam, daripada tindanan PAM yang dimuatkan untuk satu perkhidmatan atau dari dalam daemon RADIUS, dan itu tiga siasatan berbeza. Tentukan prosesnya dahulu.
Semakan di bawah menganggap mesej itu muncul melalui integrasi Linux-PAM semasa log masuk VPN. Jika ia datang daripada konfigurasi pelayan RADIUS itu sendiri, bukti daemon itu tempat bermula.
Namakan proses sebelum menamakan pakej
Tiga komponen dipanggil modul dan tiada satu pun boleh ditukar ganti. Pemalam pengesahan OpenVPN dimuatkan oleh daemon VPN dan melaksanakan antara muka panggil balik daemon itu. Modul PAM ialah objek kongsi yang dimuatkan libpam untuk perkhidmatan bernama, dan yang melaksanakan titik masuk seperti pam_sm_authenticate. Modul FreeRADIUS ialah sebahagian daripada konfigurasi daemon itu sendiri. Mesej dengan perkataan yang sama boleh datang daripada mana-mana ketiga-tiganya, jadi soalan pertama ialah baris log mana yang menghasilkannya.
Kaitkan cap masa satu percubaan yang gagal antara log VPN dan log pengesahan sistem, kemudian baca baris sebelum ringkasan. Mesej pemuat yang khusus biasanya sudah ada di sana.
Baca ralat pemuatan, kemudian titik masuk
PAM melaporkan modul tidak dikenali apabila ia tidak dapat memuatkan objek kongsi yang dipilih, atau apabila objek yang dimuatkan tidak menyediakan fungsi yang diperlukan oleh entri tindanan itu. Ini pembaikan yang berbeza: yang pertama ialah masalah laluan, pembungkusan atau ABI, dan yang kedua ialah titik masuk yang tidak sepadan. Baris pengesahan memerlukan pam_sm_authenticate manakala baris akaun memerlukan pam_sm_acct_mgmt, dan pustaka yang melaksanakan hanya satu daripadanya akan gagal pada yang lain, seperti yang kod penghantar tunjukkan. Menemui fail itu pada cakera tidak membuktikan kedua-duanya.
Mengambil pustaka dengan nama serupa daripada pengedaran atau seni bina CPU lain bukan pembaikan, dan ia boleh membiarkan proses memuatkan modul yang tidak pernah diuji terhadap libpamnya. Semak pakej yang memiliki laluan yang dimaksudkan dan seni bina sebenar fail sebelum mengubah apa-apa.
Kekalkan jaminan yang diberikan oleh tindanan itu
Cara terpantas untuk mendiamkan ralat ini juga yang paling buruk: menandakan modul wajib sebagai pilihan, memadam peringkat akaun, atau memasukkan kebenaran tanpa syarat. Setiap satunya menukar semakan yang gagal menjadi semakan yang tiada, dan log masuk kemudian berjaya atas sebab yang tiada siapa niatkan. Set semula kata laluan dan perubahan rahsia kongsi juga tidak menyediakan fungsi yang hilang, kerana kegagalan berlaku sebelum sebarang kelayakan sampai ke backend.
Tindanan berbilang modul mungkin telah menjalankan backend lain sebelum entri yang gagal, jadi ralat itu tidak membuktikan tiada permintaan RADIUS dihantar.
Sahkan log masuk, bukan modulnya
Setelah ketidaksepadanan diperbaiki, uji laluan kemasukan sebenar. Akaun sah sepatutnya berjaya, kelayakan tidak sah sepatutnya masih gagal, dan akaun terlarang sepatutnya masih ditolak. Sahkan juga bahawa sebarang keperluan sijil atau faktor tambahan masih dikuatkuasakan, kerana tindanan yang dibaiki tetapi melangkau satu peringkat kelihatan seperti kejayaan dari pihak klien.
Modul yang dimuatkan dengan bersih ialah kemajuan, bukan ujian yang selesai.
Catatkan nama perkhidmatan, fail dasar dan titik masuk yang terlibat, bersama satu-satunya percubaan yang anda gunakan sebagai bukti. Catatan itulah yang menjadikan kejadian seterusnya satu carian dan bukan latihan arkeologi.