GNU/Linux >> Znalost Linux >  >> Linux

Jak zakázat přístup k zakázaným účtům AD přes kerberos v pam_krb5?

Četl jsem jinde další lidé, kteří žádají o „opravu“ SSH, aby se zamčené účty nemohly přihlásit přes SSH. (viz chyba Debianu 219377) Tento požadavek byl zamítnut jako oprava, "protože porušuje některá očekávání uživatelů [kteří byli] zvyklí na passwd -l pouze zamykání passwd." (viz chyba Debianu 389183)např. někteří lidé CHTĚLI mít možnost uzamknout účty před přihlášením heslem, ale přesto umožnit přístup pomocí klíče SSH.

PAM neodmítne autentizaci pomocí klíče SSH účtům, které byly právě uzamčeny (např. kvůli neplatným pokusům o heslo, protože autentizace klíčem SSH je navržena tak, aby nevěnovala žádnou pozornost poli hesla, odkud se účty obvykle zamykají.)

Chápu, že položka hash hesla je implicitně kontrolována v čase pam_authenicate(), nikoli v čase pam_acct_mgmt(). pam_unix.so pam_sm_acct_mgmt() vůbec nekontroluje hash hesla a pam_authenticate() není voláno během ověřování veřejným klíčem.

Pokud je vaším záměrem mít možnost centrálně zakázat účtům přihlašování, existují další možná řešení, včetně:

Změna přihlašovacího prostředí.

(znovu) přesunutí jejich souboru autorizovaných klíčů.

Další možností, jak zakázat přístup, by mohlo být nějaké použití DenyGroups nebo AllowGroups v sshd_config. (poté přidání uživatele do skupiny "sshdeny" nebo jeho odebrání ze skupiny "sshlogin", aby se jim zakázalo přihlášení.)( čtěte zde:https://help.ubuntu.com/8.04/serverguide/user-management.html )

Z http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuLI čtěte:"Problém je, že pam_unix kontroluje pouze data vypršení platnosti stínové položky, nikoli obsah pole hash hesla."Pokud je to pravda, vypršení platnosti místo zamykání účtu dělá to, co potřebujete?

Odpověď na vaši otázku je možná „ano, pokud deaktivujete je někde jinde než v poli hesla"


Udělal jsem další domácí úkol a odpovídám na svou vlastní otázku.

V pam_krb5 od RedHat (pam_krb5-2.3.14-1/src/acct.c ), pokud se modul neúčastnil fáze ověřování, funkce pam_sm_acct_mgmt() vrací buď PAM_IGNORE nebo PAM_USER_UNKNOWN v závislosti na konfiguraci modulu. Proto by to vyžadovalo změny v kódu pam_krb5, abych dělal, co chci.

Odpověď JohnGH je dobrým řešením; pomocí atributů „proxy“ k vyjádření stejného významu, jako je rozbití shellu nebo přidání do skupiny „disabled-users“.

Dalším řešením (částečně testovaným) je nastavit datum vypršení platnosti účtu v minulosti a použít modul, jako je pam_unix, aby kontroly účtu neprošly. To používá LDAP, spíše než KRB5, ale dotazy na stejný centrálně spravovaný uživatelský adresář.


Autentizace založená na klíči SSH je nezávislá na PAM. Máte následující řešení:

  • zakázat ověřování pomocí klíče v sshd_config
  • změňte a znovu zkompilujte sshd a přidejte háček, aby autentizace na základě klíče zkontrolovala také, zda je účet platný přes pam.

Pokud chcete používat přihlašování bez hesla přes kerberos, musíte se ujistit, že:

  • nepoužíváte pam pro sshd
  • máte správně nakonfigurovaný kerberos. Např. můžete udělat kinit -k host/[email protected]
  • váš sshd je nakonfigurován pro použití gssapi:

    KerberosAuthentication yesGSSAPIAuthentication yesGSSAPICleanupCredentials yesUsePAM no

  • používáte kerberizovaného ssh klienta, jako je PuTTY v0.61 nebo novější.


Linux
  1. Jak zakázat přihlášení uživatele root přes SSH

  2. Ssh – Jak vzdáleně upravovat soubory přes Ssh?

  3. Jak Scp přes střední stroj?

  1. Jak zadat heslo pro více Windows?

  2. Jak vytvořit nového uživatele s přístupem Ssh?

  3. Jak odepřít přístup ke konkrétnímu souboru na vašem webu přes .htaccess

  1. Jak zakázat přihlášení SSH pomocí hesla

  2. Jak scp přes prostřední stroj?

  3. Jak zjistit, zda jsem přihlášen přes SSH?