Аутентификация по SSH через клиент LDAP

Аутентификация по SSH через клиент LDAPПосле настройки сервера вы можете настроить вход в систему по записям LDAP, обеспечив таким образом централизованную  аутентификацию. Вот что для этого нужно. В первую очередь включить аутентификацию при помощи LDAP путем конфигурации записи соответствующим образом, а затем настроить клиент LDAP. После этого можно входить по SSH с аутентификацией через LDAP.

Предварительная подготовка

Перед настройкой клиента нужно обеспечить возможность входа в систему по SSH. Для этого необходимо задать записи на сервере LDAP соответствующие атрибуты:

# ldapmodify -D "cn=admin,dc=mydomain,dc=com" -W
Enter LDAP Password: 

dn: uid=jsmith,dc=mydomain,dc=com
changetype: add
uid: jsmith
uidNumber: 20000
gidNumber: 20000
cn: John
sn: Smith
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: shadowAccount
loginShell: /bin/bash
homeDirectory: /home/jsmith
userPassword: {SSHA}2xAywmFEnDX8lKjv7Kjlx/yFw6eO3sZB

Обратите внимание: нужно задать классы объекта posixAccount и shadowAccount, а также поля uidNumber, gidNumber, loginShell и homeDirectory. Если этих полей нет, то система не знает, как обслуживать такого пользователя, и по SSH с этой учетной записью вы войти не сможете.

После создания или изменения существующей учетной записи можно переходить уже непосредственно к настройке клиента.

Установка пакетов

Установить пакеты можно командой:

apt-get install libnss-ldap libpam-ldap nscd

По зависимостям установится еще несколько пакетов.

Конфигурация

После установки автоматически запустится конфигурация пакетов и будут запрошены настройки. Сначала будет сконфигурирован пакет libnss-ldap.

Аутентификация по SSH через клиент LDAPВводим адрес сервера LDAP, нажимаем ОК.

Аутентификация по SSH через клиент LDAPВводим базовое имя для поиска. В нашем случае «dc=mydomain,dc=com». Нажимаем ОК.

Аутентификация по SSH через клиент LDAP

Выбираем 3 версию протокола LDAP, нажимаем ОК.

Аутентификация по SSH через клиент LDAP

Выбираем учетную запись, которая будет использоваться для запросов с привелегиями root. В нашем случае это «cn=admin,dc=mydomain,dc=com». Нажимаем ОК.

Аутентификация по SSH через клиент LDAP

Теперь задаем пароль для указанной ранее учетной записи и нажимаем ОК.

Аутентификация по SSH через клиент LDAP

Видим сообщение о том, что необходимо будет изменить файл /etc/nsswitch.conf. Нажимаем ОК. После этого запускается настройка пакета libpan-ldap.

Аутентификация по SSH через клиент LDAP

 

На вопрос о разрешении учетной записи вести себя как root отвечаем «Нет».

Аутентификация по SSH через клиент LDAP

И на последний вопрос отвечаем «Нет».

Теперь нужно отредактировать файл /etc/nsswitch.conf. В нем нужно строки

passwd:     compat
group:      compat
shadow:     compat
...
netgroup:   nis

изменить следующим образом:

passwd:     compat ldap
group:      compat ldap
shadow:     compat ldap
...
netgroup:   ldap

После этого перезапустить сервис nscd

service nscd restart

Теперь нужно в конец файла /etc/pam.d/common-session в самый конец добавить строчку:

session	 required	        pam_mkhomedir.so

И всё!

Вход в систему через клиент LDAP

Теперь можно входить по SSH:

jsmith@smith-laptop:/home/jsmith$ ssh jsmith@192.168.0.18
jsmith@192.168.0.18's password: 
Creating directory '/home/jsmith'.
Linux debian-ldapclient 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt4-3 (2015-02-03) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Apr 5 12:17:30 2015 from 192.168.0.6
jsmith@debian-ldapclient:~$

Вот так будет выглядеть успешный вход в систему. Как вы видите, при входе создается домашняя директория пользователя. И теперь можно работать с системой.

Аутентификация по SSH через клиент LDAP: 2 комментария

  1. Александр

    Настроил все как написано в статье на чистый Debian8, при попытке подключения к LDAP-серверу по ssh выдает ошибку «Permision denied». В логах сервера /var/log/auth.log:
    Invalid user testuser from 192.168.0.20
    input_userauth_request: invalid user testuser [preauth]
    pam_unix(sshd:auth): check pass; user unknown
    pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=192.168.0.20
    Failed password for invalid user testuser from 192.168.0.20 port 41768 ssh2

    1. Maxim Norin Автор записи

      А вот эту статью вы читали? https://mnorin.com/ldap-ustanovka-i-nastrojka-ldap-servera.html

Обсуждение закрыто.