Недавно мы начали предоставлять доступ к нашим Linux-машинам пользователям Windows Active Directory. Выбран метод kerberos + samba + sssd, и он работает нормально.
Наш следующий шаг - разрешить определенным группам AD иметь права sudo, и мы должны сделать это без добавления атрибутов unix в нашу Active Directory (это ограничение исходит от отдела и ничего не может с этим поделать).
Прежде чем я начал включать каждую машину, я провел несколько тестов на новой машине, и все работало нормально, но после репликации конфигураций на остальных пользователях ни один пользователь не имеет прав sudo.
Это файлы:
/etc/krb5.conf
includedir /etc/krb5.conf.d/
[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log
[libdefaults]
ticket_lifetime = 24h
renew_lifetime = 7d
default_realm = DOMAIN.COM
[realms]
DOMAIN.COM = {
kdc = 172.20.10.12
default_domain = DOMAIN.COM
}
[kdc]
profile = /etc/krb5kdc/kdc.conf
[domain_realm]
.domain.com = DOMAIN.COM
domain.com = DOMAIN.COM
/etc/samba/smb.conf (в файле есть больше, но не актуально)
[global]
workgroup = DOMAINWORKGROUP
security = ads
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = DOMAIN.COM
idmap config * : range = 3000-9999
idmap config * : backend = tdb
idmap config DOMAIN : range = 10000-19999
idmap config DOMAIN : backend = nss
/etc/sssd/sssd.conf
[sssd]
config_file_version = 2
services = nss,pam
domains = DOMAIN.COM
[nss]
[pam]
[domain/domain.com]
id_provider = ad
auth_provider= ad
access_provider = simple
default_shell = /bin/bash
fallback_homedir = /home/%u
ldap_id_mapping = true
simple_allow_groups = produ
/etc/nsswitch.conf (в основном конфигурация по умолчанию)
passwd: files sss
shadow: files sss
group: files sss
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files
rpc: files
services: files sss
netgroup: files sss
publickey: nisplus
automount: files
aliases: files nisplus
sudoers: files
/ и т.д. / sudoers (здесь только разрешение группы, остальная часть файла по умолчанию)
%produ ALL=(ALL) ALL
Это содержимое / var / log / secure для тестовой машины, на которой работает sudo:
Apr 1 12:16:58 testlinuxauth sshd[795]: Authorized to pgarcia, krb5 principal pgarcia@DOMAIN.COM (ssh_gssapi_krb5_cmdok)
Apr 1 12:16:58 testlinuxauth sshd[795]: Accepted gssapi-with-mic for pgarcia from 172.19.20.35 port 53139 ssh2
Apr 1 12:16:58 testlinuxauth sshd[795]: pam_unix(sshd:session): session opened for user pgarcia by (uid=0)
Apr 1 12:17:03 testlinuxauth sudo: pam_sss(sudo:auth): authentication success; logname=pgarcia uid=1731417387 euid=0 tty=/dev/pts/1 ruser=pgarcia rhost= user=pgarcia
Apr 1 12:17:03 testlinuxauth sudo: pgarcia : TTY=pts/1 ; PWD=/home/pgarcia ; USER=root ; COMMAND=/bin/pwd
Apr 1 12:17:03 testlinuxauth sudo: pam_unix(sudo:session): session opened for user root by pgarcia(uid=0)
Apr 1 12:17:03 testlinuxauth sudo: pam_unix(sudo:session): session closed for user root
Это содержимое того же файла для другой машины, на которой sudo не работает:
Apr 1 12:09:34 em13 sshd[30061]: Authorized to pgarcia, krb5 principal pgarcia@DOMAIN.COM (ssh_gssapi_krb5_cmdok)
Apr 1 12:09:34 em13 sshd[30061]: Accepted gssapi-with-mic for pgarcia from 172.19.20.35 port 53031 ssh2
Apr 1 12:09:34 em13 sshd[30061]: pam_unix(sshd:session): session opened for user pgarcia by (uid=0)
Apr 1 12:09:49 em13 sudo: pam_unix(sudo:auth): authentication failure; logname=pgarcia uid=1731417387 euid=0 tty=/dev/pts/1 ruser=pgarcia rhost= user=pgarcia
Apr 1 12:09:49 em13 sudo: pam_ldap(sudo:auth): error reading from nslcd: Connection restarted by the remote machine <- I had to translate this, so maybe is not accurate at all?
Apr 1 12:09:53 em13 sudo: pam_unix(sudo:auth): conversation failed
Apr 1 12:09:53 em13 sudo: pam_unix(sudo:auth): auth could not identify password for [pgarcia]
Apr 1 12:09:53 em13 sudo: pam_ldap(sudo:auth): failed to get password: Authentication token tampering error <- I had to translate this too
Apr 1 12:09:53 em13 sudo: pgarcia : 1 incorrect password attempt ; TTY=pts/1 ; PWD=/home/pgarcia ; USER=root ; COMMAND=/bin/pwd
Примечание: pgarcia - мой пользователь и член производственной группы.
Файлы конфигурации одинаковы для обеих машин. Так что, очевидно, мне не хватает того, что я делал на тестовой машине, но не могу найти, что и где. Я прочитал здесь массу вопросов и решений на других веб-сайтах, включая документацию по Redhat, но мне не повезло. Не уверен, почему pam_sss заботится о sudo на первой машине, но угадайте, это то, что мне нужно для успеха?
Спасибо вам всем