Linux PAM pam_succeed_if.so

1

Eu especifiquei um grupo de segurança do AD no PAM para restringir quais usuários do domínio podem fazer o login. Eu também restrinjai sessões para usuários do AD para este grupo. Isso impede que um usuário conectado faça um "su -" a um usuário do AD fora do grupo.

O mapeamento de uid Winbind é configurado para que os usuários do AD tenham UID > = 10000000.

Funcionam como esperado com a configuração do PAM abaixo.

/etc/pam.d/system-auth

auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so user ingroup AD_group debug
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_krb5.so use_first_pass
auth        sufficient    pam_winbind.so use_first_pass
auth        required      pam_deny.so

account     required      pam_access.so
account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     [default=bad success=ok user_unknown=ignore] pam_krb5.so
account     [default=bad success=ok user_unknown=ignore] pam_winbind.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    sufficient    pam_krb5.so use_authtok
password    sufficient    pam_winbind.so use_authtok
password    required      pam_deny.so

session     [default=1 success=ignore] pam_succeed_if.so quiet uid >= 10000000
session     requisite     pam_succeed_if.so user ingroup AD_group debug
session     optional      pam_mkhomedir.so umask=0077 skel=/etc/skel
session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     optional      pam_mkhomedir.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_krb5.so

Agora, gostaria de adicionar uma regra para que um usuário específico do AD fora do AD_group possa fazer login. Eu tentei adicionar a seguinte linha após a linha 3 no arquivo:

auth        requisite     pam_succeed_if.so user=AD_user_1 debug

Mas isso resultou em todos os usuários do AD sendo autorizados a fazer o login.

Qualquer ideia seria apreciada.

    
por kernelpanic 01.03.2013 / 05:31

1 resposta

1

Todos os usuários que obtiverem êxito na autenticação são interessantes, pois isso implica que o teste de associação ao grupo agora também está sendo ignorado. (por meu comentário acima, não parece que você está pulando) Isso soa mais como sufficient than requisite para mim.

Você verificou novamente se não está testando usuários que passariam a condição sufficient pam_unix.so ? Verifique sua tabela de sombra e certifique-se de que alguém não adicionou senhas locais para usuários em seu pool de testes quando você não estava procurando.

Também é possível que o módulo auth esteja sendo ignorado (a autenticação de chave SSH vem à mente). Nesse caso, suas verificações de acesso em auth , em vez de account , serão um problema. Seja essa a causa ou não, recomendo movê-las para account para que você não tenha lacunas na política de acesso.

auth = qualquer coisa relacionada à autenticação

account = qualquer coisa relacionada à autorização (verificações de acesso)

    
por 01.03.2013 / 06:00