Modul PAM není znám: který proces vlastně selhal
Zpráva pojmenovává sdílený objekt a vstupní bod, nikoli heslo. Najděte proces, který ji zapsal, a pak zkontrolujte načítání, symboly a záruky zásobníku.
Čtěte tuto frázi jako tvrzení o sdíleném objektu a ukazateli na funkci, ne o heslu. Stejná slova mohou pocházet z OpenVPN pluginu, ze zásobníku PAM načteného pro jednu službu nebo zevnitř démona RADIUS, a to jsou tři různá vyšetřování. Nejprve určete proces.
Následující kontroly předpokládají, že zpráva vyšla přes integraci Linux-PAM při přihlášení VPN. Pokud přišla z vlastní konfigurace serveru RADIUS, začněte u důkazů tohoto démona.
Pojmenujte proces dřív než balíček
Tři komponenty se nazývají modul a žádná není zaměnitelná. Plugin pro ověřování OpenVPN načítá démon VPN a implementuje rozhraní zpětného volání tohoto démona. Modul PAM je sdílený objekt, který načítá libpam pro pojmenovanou službu, a který implementuje vstupní body jako pam_sm_authenticate. Modul FreeRADIUS je součástí vlastní konfigurace tohoto démona. Zpráva se stejnými slovy může přijít z kteréhokoli ze tří, takže první otázka je, který řádek logu ji vytvořil.
Spojte časové razítko jednoho neúspěšného pokusu v logu VPN a v systémovém logu ověřování, pak si přečtěte řádky před shrnutím. Konkrétní zpráva zavaděče už tam obvykle je.
Přečtěte chybu načítání, pak vstupní bod
PAM hlásí neznámý modul, když nemůže načíst vybraný sdílený objekt, nebo když načtený objekt neposkytuje funkci, kterou tento záznam zásobníku vyžaduje. To jsou různé opravy: první je problém cesty, balení nebo ABI a druhá je neshoda vstupního bodu. Řádek auth potřebuje pam_sm_authenticate zatímco řádek účtu potřebuje pam_sm_acct_mgmt, a knihovna, která implementuje jen jeden z nich, selže u druhého, jak kód dispečeru ukazuje. Nalezení souboru na disku nedokazuje ani jedno.
Vzít knihovnu s podobným názvem z jiné distribuce nebo architektury procesoru není oprava a může nechat proces načítat modul, který nikdy nebyl testován proti jeho libpam. Před jakoukoli změnou zkontrolujte balíček, který vlastní zamýšlenou cestu, a skutečnou architekturu souboru.
Zachovejte záruky, které zásobník dával
Nejrychlejší způsob, jak tuto chybu umlčet, je také nejhorší: označit povinný modul za volitelný, smazat fázi účtu, nebo vložit bezpodmínečné povolení. Každé z toho mění neúspěšnou kontrolu na chybějící kontrolu a přihlášení pak uspěje z důvodů, které nikdo nezamýšlel. Resetování hesel a změny sdíleného tajemství také chybějící funkci nedodají, protože selhání nastane dřív, než se jakýkoli údaj dostane do backendu.
Zásobník s více moduly mohl před selhávajícím záznamem spustit jiný backend, takže chyba nedokazuje, že nebyl odeslán žádný požadavek RADIUS.
Ověřte přihlášení, ne modul
Po opravě neshody otestujte skutečnou cestu vstupu. Platný účet by měl projít, neplatné přihlašovací údaje by měly stále selhat a zakázaný účet by měl být stále odmítnut. Ověřte také, že požadavek na certifikát nebo další faktor se stále vynucuje, protože opravený zásobník, který přeskakuje fázi, vypadá z pohledu klienta jako úspěch.
Čisté načtení modulu je pokrok, ne dokončený test.
Zapište, které jméno služby, které soubory zásad a které vstupní body byly zapojeny, spolu s jediným pokusem, který jste použili jako důkaz. Právě tento záznam dělá z příštího výskytu hledání místo archeologického cvičení.