Назад | Перейти на главную страницу

Включение групп Windows Active Directory в файле Sudoers

Недавно мы начали предоставлять доступ к нашим 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 на первой машине, но угадайте, это то, что мне нужно для успеха?

Спасибо вам всем