LINUX.ORG.RU
решено ФорумAdmin

Проблема входа в LDAP


0

1

Настроил LDAP, добавил к нему связку smb. Администрированию поддаётся, самба работает на ура. Решил сегодня завести одну линуксовую машину в домен, но возникла проблема. `getent {passwd|group|shadow}` выдают данные о новом пользователе, `su %ldap_user%` срабатывает, но по ssh доступ на ету линуксовую машину отвергается.

На сервере ситуация почти обратная. По ssh под пользователем зайти могу, однако заходит в sh, хотя в ldap для него указано /bin/bash. Если набрать bash, то в строке приглашения значится «У меня нет имени!@server». И такая же строка, если просто набрать `su %ldap_user%`.

Операционка на обоих компах Ubuntu Server 12.04

Конфиги сервера:

# cat /etc/ldap.conf | grep -vE '^#'
host 192.168.1.200
base dc=mydomain,dc=local
uri ldapi:///mydomain.local
ldap_version 3
binddn cn=proxyuser,dc=mydomain,dc=local
bindpw PASSWORD
rootbinddn cn=admin,dc=mydomain,dc=local
pam_password md5
nss_initgroups_ignoreusers avahi,backup,bin,colord,daemon,firebird,ftp,games,gnats,irc,landscape,libuuid,libvirt-dnsmasq,libvirt-qemu,list,lp,mail,man,messagebus,news,openldap,postgres,proftpd,proxy,root,sshd,statd,sync,sys,syslog,usr1cv8,uucp,whoopsie,www-data

# cat /etc/nsswitch.conf 
passwd:         files ldap
group:          files ldap
shadow:         files ldap

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

Конфиги клиента:

# cat /etc/ldap.conf | grep -vE '^#'
host 192.168.1.200
base dc=mydomain,dc=local
uri ldap:///192.168.1.200
ldap_version 3
binddn cn=proxyuser,dc=example,dc=net
bindpw PASSWORD
rootbinddn cn=admin,dc=mydomain,dc=local
pam_password md5
nss_initgroups_ignoreusers backup,bin,daemon,games,gnats,irc,landscape,libuuid,list,lp,mail,man,messagebus,news,proxy,root,sshd,sync,sys,syslog,uucp,whoopsie,www-data

/etc/pam.d/common-{auth,account,password} идентичны на обоих компах. Предполагаю, дело не в них, но при надобности выложу

/etc/pam.d/common-session отличается одной строкой (есть на сервере, нету на клиенте):

session	optional			pam_ck_connector.so nox11
Предполагаю, добавилась с библиотеками x11, которые нужны были при компиляции какой-то левой фигни когда-то

Логи сервер: (auth.log)

Nov 20 14:16:06 localhost sshd[9105]: Received disconnect from 192.168.1.111: 11: disconnected by user
Nov 20 14:16:06 localhost sshd[9105]: pam_unix(sshd:session): session closed for user root
Nov 20 14:16:12 localhost sshd[9559]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=box.localnet.antora  user=ldap_user
Nov 20 14:16:12 localhost sshd[9559]: Accepted password for ldap_user from 192.168.1.111 port 44191 ssh2
Nov 20 14:16:12 localhost sshd[9559]: pam_unix(sshd:session): session opened for user ldap_user by (uid=0)
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldapi:///mydomain.local: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: reconnecting to LDAP server...
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: failed to bind to LDAP server ldapi:///mydomain.local: Invalid credentials
Nov 20 14:16:14 localhost -bash: nss_ldap: reconnecting to LDAP server (sleeping 1 seconds)...
Nov 20 14:16:15 localhost -bash: nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials
Nov 20 14:16:15 localhost -bash: nss_ldap: failed to bind to LDAP server ldapi:///mydomain.local: Invalid credentials
Nov 20 14:16:15 localhost -bash: nss_ldap: could not search LDAP server - Server is unavailable
Nov 20 14:16:16 localhost sshd[9702]: Received disconnect from 192.168.1.111: 11: disconnected by user
Nov 20 14:16:16 localhost sshd[9559]: pam_unix(sshd:session): session closed for user ldap_user
Тут повторюсь - ето логи сервера, который пускает по ssh.

Логи клиента (auth.log):

Nov 20 14:17:22 localhost sshd[1469]: Received disconnect from 192.168.1.111: 11: disconnected by user
Nov 20 14:17:22 localhost sshd[1469]: pam_unix(sshd:session): session closed for user root
Nov 20 14:17:27 localhost sshd[1711]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=box.localnet.antora  user=ldap_user
Nov 20 14:17:27 localhost sshd[1711]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Nov 20 14:17:27 localhost sshd[1711]: pam_ldap: reconnecting to LDAP server...
Nov 20 14:17:27 localhost sshd[1711]: pam_ldap: ldap_simple_bind Can't contact LDAP server
Nov 20 14:17:29 localhost sshd[1711]: Failed password for ldap_user from 192.168.1.111 port 59674 ssh2

Что необходимо подправить, чтобы на сервере:

- определялось имя пользователя в bash

- сессия ssh открывалась в том процессоре, который указан для пользователя (например /bin/bash)

а на клиенте:

- пускал бы по ssh

?

И впридачу: сервер:

# cat /etc/hosts
127.0.0.1	localhost server.localnet.mydomain server
127.0.1.1	server.mydomain.local

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

клиент:

# cat /etc/hosts
127.0.0.1	localhost client.localnet.mydomain client
127.0.1.1	client.mydomain.local

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

abr_linux ()
Ответ на: комментарий от chegeware

У меня есть каталог /etc/ldap/slap.d, файл slap.conf не создавался при установке. Если его создавать вручную, ничего не меняется. Я так понимаю, там какая-та структура каталога:

# ls /etc/ldap/slapd.d
cn=config  cn=config.ldif
Не подскажете, в каком файле там искать? Да и при такой структуре, может, утилита есть?

abr_linux ()
Ответ на: комментарий от abr_linux

Поправка, slapd.conf. Я Убунту не знаю, как там устроены шаблоны конфигурирования OpenLDAP.

chegeware ()
Ответ на: комментарий от chegeware

Нашёл, как работать с ним - ldaputils.

Проверил, пароль для cn=admin,dc=mydomain,dc=local установлен верно.

Куда покопать щё?

abr_linux ()

nss_ldap: failed to bind to LDAP server ldap://192.168.1.200: Invalid credentials

По-моему тут все понятно.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

По-моему тут все понятно

zgen, можно Вас попросить давать ответ хоть капельку обширнее? Я же упомянул, что пароль и доменной имя авторизации совпадают. Скажите хотя бы, по каким тегам grep-ать?

abr_linux ()
Ответ на: комментарий от abr_linux

Включайте логи, увидите, под каким DN'ом происходят попытки подключения, найдете/установите пароль для DN'а, проверите подключение под ним с паролем вручную (через ldapsearch) - и как только вы это проделаете, все заработает.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

А ошибка-та рядом крылась. Вместо «uri ldap:///192.168.1.200» надо писать «uri ldap://192.168.1.200», лишний слеш. Теперь с клиента заходит

abr_linux ()
Ответ на: комментарий от abr_linux

При логине на сам сервер так и открывается sh, а не bash. Хотя, атрибут из LDAP достаётся. Как посмотреть, почему не логинится под bash?

abr_linux ()
Ответ на: комментарий от abr_linux

Как посмотреть, почему не логинится под bash?

getent passwd user.name

и смотри, что прописано.

zgen ★★★★★ ()
Ответ на: комментарий от zgen

Всё, я окончательно суматоху навеял. Оказывается, ето bash, просто без логина и имени хоста:

# ssh username@localhost
$
$ zzz
-bash: command not found
$ sh
$ zzz
sh: 1: not found
$

abr_linux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.