Restringindo a autenticação dos usuários LDAP sem um shell válido

1

O que eu estou tentando realizar é se eu mudei os atributos do usuário no LDAP para não ter shell; por exemplo: / etc / noshell, eu não quero que o usuário ssh com sucesso. Eu mudei o atributo de um usuário:

# check62, people, wh.local
dn: uid=check62,ou=people,dc=wh,dc=local
uid: check62
cn: Johnny Appleseed
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e1NTSEF9dklpL2pQcWtNWDBFSUs1eUVDMUMxL2FjWHdJNGRuUXY=
shadowLastChange: 15140
shadowMax: 99999
shadowWarning: 7
uidNumber: 6002
gidNumber: 6002
homeDirectory: /home/check62
loginShell: /bin/noshell

# check62, group, wh.local
dn: cn=check62,ou=group,dc=wh,dc=local
objectClass: posixGroup
objectClass: top
cn: check62
gidNumber: 6002
userPassword:: e0NSWVBUfXg=

Aqui está o meu arquivo /etc/pam.d/sshd

#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user        context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth

O usuário autentica com sucesso com / bin / bash. Um show stopper. Qualquer ajuda será muito apreciada.

Aqui está o meu arquivo de autenticação de senha

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        sufficient    pam_ldap.so use_first_pass
auth        required      pam_deny.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_ldap.so
account     sufficient    pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3 type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_ldap.so
    
por usa ims 08.03.2013 / 17:40

1 resposta

0

Colocar files ou compat antes de ldap in /etc/nsswitch.conf é uma prática comum, mas se a pessoa tiver uma conta local, ela substituirá as configurações LDAP.

Tente isto: getent passwd check62

Isso mostrará a entrada do banco de dados passwd para esse usuário de todas as fontes. Se a entrada mais superior contiver /bin/bash em vez de /bin/noshell , você precisará fazer a alteração do shell no banco de dados que seu servidor está priorizando ou ajustar a ordem para apresentar o LDAP primeiro. Este último geralmente não é recomendado.

(Isenção de responsabilidade: Se você estiver usando nss_ldap da PADL em vez de nss-pam-ldapd , colocar ldap primeiro é uma idéia ainda pior, já que as pesquisas LDAP não são enviadas a um daemon e todo processo tem que lidar com tempos limite Pesquisas NSS Sempre certifique-se de que você sabe como seu servidor irá se comportar quando o servidor LDAP estiver inacessível.

    
por 08.03.2013 / 18:34