Google Authentificator pouze pro uživatele root

Google Authentificator pouze pro uživatele root
« kdy: 01. 07. 2022, 12:14:14 »
Jak v Alma Linuxu nastavím Google Authentificator pouze na uživatele root a ostatní uživatele, aby se mohli přihlašovat heslem/ssh klíčem?
Potřebuju aby se řádek 1 použil pro všechny mimo root a řádek s google auth pro všechny mimo root:

Kód: [Vybrat]
auth       substack     password-auth
auth       include      postlogin
auth       required     pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator nullok
account    required     pam_sepermit.so
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    optional     pam_motd.so
session    include      password-auth
session    include      postlogin

Trápím se s tím celé dopoledne a nemůžu to sladit. V článcích co jsem hledal nacházím pouze řešení typu, že se GA použije pouze pro určitou skupinu,  ale nikde se neřeší zapnutí hesla/klíče pro ostatní ;(

Předem děkuji za rady.


Re:Google Authentificator pouze pro uživatele root
« Odpověď #1 kdy: 01. 07. 2022, 12:41:04 »
a proč nenapíšeš, co jsi zkoušel, co ti nefungovalo a proč. Máš tam nullok flag, ten způsobí, že pam_google_authenticator.so skončí jako success v momentě, kdy uživatel nemá soubor ${HOME}/.ssh/google_authenticator a tady máš chybu, pam.d soubory se nespouští pod kontextem uživatele, ale běží pod rootem, nemůžeš tam používat takhle proměnné (nezkoušeno, ale myslím si to). Osobně bych tam dal raději ~/.ssh/google_authenticator

Pokud to chceš zapnout pro všechny ostatní, vygeneruj všem uživatelům nějaký klíč, ať už správný nebo špatný, zároveň u uprav template home složky pro nové uživatele a také tam nechat nějaký náhodný klíč.

Raději tohle nastavení řeším o trochu dál na nějakém IDM/ldap serveru, mohu totiž dávat locky při bruteforce, tady to nelze snadno. Uživatele si pak klíče a hesla mohou spravovat sami přes rozhraní, nemusím jim to dělat nějak složitě přímo na serveru.

Re:Google Authentificator pouze pro uživatele root
« Odpověď #2 kdy: 01. 07. 2022, 12:42:55 »
teda ty to chceš obráceně, takže nech soubor .ssh/google_authenticator jen pro roota a pro ostatní ho měj smazaný, neexistující. Mělo by to fungovat.

Re:Google Authentificator pouze pro uživatele root
« Odpověď #3 kdy: 01. 07. 2022, 14:16:59 »
Jde o to, že když nechám aktuvní první řádek -
Kód: [Vybrat]
auth       substack     password-authtak jako root končím na
Kód: [Vybrat]
Failed password for root from 2001:1ae9:2e8:fa00:21c:c0ff:fec8:7bdb port 34420 ssh2a když ho zakomentuju, tak se jako root přihlásím,  ale jako normální uživatel hesle už ne, protože autentizaci heslem tím zakomentováním zakážu.



Re:Google Authentificator pouze pro uživatele root
« Odpověď #5 kdy: 01. 07. 2022, 14:43:06 »
v tom případě tam ten tam ten řádek nech a uprav sshd_config, tam přidej (či uprav) řádek PermitRootLogin yes, možná tam máš něco jako prohibit-password.

Podle toho návodu ta proměnná $(HOME) tam asi funguje, to nevím, nepoužívám. Zároveň bys pod rootem tedy neměl mít soubor ~/.ssh/google_authenticator. Máš to tak?

Tyhle různé podmínky a pravidla je opravdu lepší řešit přes nějakou službu a nikoliv přímo v pam.d a sshd_configu, tam ty možnosti nejsou tak velké a vše se blbě testuje.

Re:Google Authentificator pouze pro uživatele root
« Odpověď #6 kdy: 01. 07. 2022, 14:55:13 »
Nakonec jako poslední pokus se mi podařilo vymyslet toto:
Kód: [Vybrat]
%PAM-1.0
auth [success=1 default=ignore] pam_succeed_if.so user ingroup root debug
auth       substack     password-auth
auth       include      postlogin
auth       required     pam_google_authenticator.so secret=${HOME}/.ssh/google_authenticator nullok debug
account    required     pam_sepermit.so
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    optional     pam_motd.so
session    include      password-auth
session    include      postlogin
Díky za nasměrování a rady  ;)