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

1

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

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

requisito de autenticação pam_succeed_if.so ingroup do usuário ad_group debug

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

% ad_group ALL = (ALL) ALL

Estes 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] senha do usuário:
Criando o diretório '/ home / jdoe'.
Criando o diretório '/home/jdoe/.mozilla'.
Criando o diretório '/home/jdoe/.mozilla/plugins'.
Criando o diretório '/home/jdoe/.mozilla/extensions'.
[jdoe @ server01 ~] $

Aqui está a saída / var / log / secure:

25 de outubro 09:42:42 server01 su: pam_unix (su-l: session): sessão aberta para o usuário jdoe pelo kernelpanic (uid = 0)
25 de outubro 09:43:53 server01 su: pam_unix (su-l: session): sessão fechada para o usuário jdoe

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

kernelpanic
fonte

Respostas:

1

Eu acredito que a primeira linha em se /etc/pam.d/suparece com isso:

auth            sufficient      pam_rootok.so

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

O que você pode fazer é adicionar sua pam_succeed_iflinha /etc/pam.d/suou, muito melhor, adicionar uma entrada /etc/pam.d/system-auth, mas modificá-la para que authfique sessionassim:

session requisite pam_succeed_if.so user ingroup ad_group debug

Isso será acionado mesmo na situação descrita e não permitirá que um usuário do non ad_group abra um shell. Isso também teria o infeliz efeito colateral de impedir a rootabertura de um shell (conforme indicado nos comentários); portanto, você pode precisar aplicá-lo apenas a 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, sshtambém pode ignorar o PAM se você estiver autenticando com uma chave pública; portanto, é melhor usá-lo em sessionvez de auth.

chutz
fonte
Troquei auth por session para essa linha no system-auth, mas causou a quebra de "sudo su -".
Kernelpanic
Ponto justo. Eu atualizei minha resposta para acomodar isso.
Chutz 26/10/12