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

Ограничение аутентификации пользователей LDAP без действующей оболочки

Я пытаюсь добиться, если я изменил атрибуты пользователя в LDAP, чтобы не было оболочки; например: / etc / noshell, я не хочу, чтобы пользователь успешно использовал ssh. Я изменил атрибут одного пользователя:

# 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=

Вот мой файл /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

Пользователь успешно аутентифицируется с помощью / bin / bash. Выставочная пробка. Любая помощь будет оценена.

Вот мой файл с паролем

#%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

Размещение files или compat перед ldap в /etc/nsswitch.conf - обычная практика, но если у человека есть локальная учетная запись, она переопределит настройки LDAP.

Попробуй это: getent passwd check62

Это покажет вам passwd запись в базе данных для этого пользователя из всех источников. Если самая верхняя запись содержит /bin/bash вместо того /bin/noshell, вам нужно будет либо изменить оболочку в базе данных, которую ваш сервер определяет в качестве приоритета, либо настроить порядок, чтобы сначала представить LDAP. Последнее обычно не рекомендуется.

(Отказ от ответственности: если вы используете PADL nss_ldap вместо того nss-pam-ldapd, размещение ldap first - еще худшая идея, поскольку поисковые запросы LDAP не отправляются демону, и каждый процесс должен иметь дело с тайм-аутом во время поиска NSS. Всегда проверяйте, как будет вести себя ваш сервер, когда сервер LDAP недоступен.)