Restringir su ao usuário do domínio na integração Winbind / Kerberos Linux AD

1

Temos alguns servidores RHEL 5 associados ao AD usando o Winbind / Kerberos, que está funcionando bem no geral.

Eu especifiquei um grupo de segurança do AD no PAM para restringir quais usuários do domínio podem fazer o login.

auth        requisite     pam_succeed_if.so user ingroup ad_group debug

Eu também especifiquei o mesmo grupo em sudoers para que eles possam obter acesso root.

%ad_group ALL=(ALL)     ALL

Funcionam como esperado.

No entanto, notei que "su -" permitirá que eu me torne um usuário de domínio que não esteja no grupo de segurança.

Digamos que o jdoe não esteja no "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 ~]$

Aqui está a saída / 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

Existe uma maneira de restringir os usuários de um "su -" a um usuário de domínio que não tem permissão para fazer login na caixa em primeiro lugar?

    
por kernelpanic 25.10.2012 / 15:51

1 resposta

1

Acredito que a primeira linha em /etc/pam.d/su seja assim:

auth            sufficient      pam_rootok.so

Em outras palavras, quando você tenta autorizar o seu se tornar jdoe, tudo parece bem.

O que você pode fazer é adicionar sua pam_succeed_if linha a /etc/pam.d/su ou, muito melhor, adicionar uma entrada a /etc/pam.d/system-auth , mas modificá-la para que auth se torne session assim:

session requisite pam_succeed_if.so user ingroup ad_group debug

Isso será acionado mesmo na situação que você descreveu e não permitirá que um usuário do non ad_group abra um shell. Isso também teria o infeliz efeito colateral de restringir root de abrir um shell (como apontado nos comentários), então você pode precisar aplicá-lo apenas para ids de usuários no intervalo correto:

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

A propósito, ssh também pode ignorar o PAM se você estiver autenticando com uma chave pública, então é melhor usar session em vez de auth .

    
por 25.10.2012 / 17:07