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

Ограничить su для пользователя домена в интеграции Winbind / Kerberos Linux AD

У нас есть несколько серверов RHEL 5, подключенных к AD с помощью Winbind / Kerberos, который в целом работает хорошо.

Я указал группу безопасности AD в PAM, чтобы ограничить доступ пользователей домена к системе.

auth        requisite     pam_succeed_if.so user ingroup ad_group debug

Я также указал ту же группу в sudoers, чтобы они могли получить root-доступ.

%ad_group ALL=(ALL)     ALL

Они работают должным образом.

Однако я заметил, что «su -» позволит мне стать пользователем домена, не входящим в группу безопасности.

Допустим, jdoe отсутствует в "ad_group":

[kernelpanic@server01 ~]$ sudo su - jdoe
[sudo] password for user:
Creating directory '/home/jdoe'.
Creating directory '/home/jdoe/.mozilla'.
Creating directory '/home/jdoe/.mozilla/plugins'.
Creating directory '/home/jdoe/.mozilla/extensions'.
[jdoe@server01 ~]$

Вот вывод / var / log / secure:

Oct 25 09:42:42 server01 su: pam_unix(su-l:session): session opened for user jdoe by kernelpanic(uid=0)
Oct 25 09:43:53 server01 su: pam_unix(su-l:session): session closed for user jdoe

Есть ли способ ограничить пользователей от «su -» до пользователя домена, которому изначально не разрешено входить в систему?

Я верю в первую строчку /etc/pam.d/su выглядит так:

auth            sufficient      pam_rootok.so

Другими словами, когда su пытается разрешить вам стать jdoe, все выглядит нормально.

Что вы можете сделать, так это добавить свой pam_succeed_if линия к /etc/pam.d/suили, что еще лучше, добавьте запись в /etc/pam.d/system-auth, но измените его так, чтобы auth становится session вот так:

session requisite pam_succeed_if.so user ingroup ad_group debug

Это будет срабатывать даже в описанной вами ситуации и не позволит пользователю из не ad_group когда-либо открыть оболочку. Это также имело бы неприятный побочный эффект ограничения root от открытия оболочки (как указано в комментариях), поэтому вам может потребоваться применить ее только для идентификаторов пользователей в правильном диапазоне:

session [default=1 success=ignore] pam_succeed_if.so quiet uid >= 1000
session requisite pam_succeed_if.so user ingroup ad_group debug

Кстати, ssh также может обходить PAM, если вы аутентифицируетесь с открытым ключом, поэтому все же лучше использовать session вместо того auth.