LINUX.ORG.RU
ФорумAdmin

OpenLDAP + openssh

 , ,


1

1

В общем есть задача: надо настроить openldap, чтобы можно было через него шла авторизация по ssh, и в его базе хранились бы ssh-ключи. Дистр Scientific Linux 6.4, сам openldap поставил, настроил, поставил пакет openssh-lpk. Только вот дальше не пойду как теперь добавить схему с openssh-lpk через ldapadd, может есть у кого опыт? поделитесь, если не сложно.

Ответ на: комментарий от no-dashi

если пакет не ставить, то демон

UseLPK yes
LpkServers ldap://10.10.10.10/ # адрес сервера LDAP
LpkUserDN ou=People,dc=office # где искать пользователей
LpkGroupDN ou=group,dc=office # где искать группы
LpkBindDN cn=admin,dc=office # под каким пользователем биндиться, если не анонимно
LpkBindPw secret # пароль
LpkServerGroup developers # каким группам разрешено заходить на этот сервер
LpkForceTLS no # Если у вас настроен TLS, то включаем.
LpkSearchTimelimit 3 # Лимиты по поиску и подключению в секундах
LpkBindTimelimit 3 #
LpkPubKeyAttr sshPublicKey # что забирать из LDAP

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

К тому же еще пытаюсь подключиться к базе cn=config, задал пароль в файле /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif,говорит:

result: 34 Invalid DN syntax
text: invalid DN
Какой DN ему нужен и где его указывать нужно, если в файле у меня RootDN: cn=config?

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

Вот пример моего конфига:

[sssd]
config_file_version = 2
reconnection_retries = 3
sbus_timeout = 30
services = nss, pam

domains = OURCOMPANY

[nss]
filter_groups = root
filter_users = root
reconnection_retries = 3

[pam]
reconnection_retries = 3

[domain/OURCOMPANY]

ldap_id_use_start_tls = False
enumerate = True
ldap_search_base = dc=domain,dc=com
min_id = 10000
max_id = 60000

id_provider = ldap
auth_provider = ldap
chpass_provider = ldap

#
# Общие настройки
# Для auth_provider=ldap и chpass_provider=ldap
# использование ldaps обязательно!
#
ldap_uri = ldaps://ldap.domain.com/
ldap_default_bind_dn = uid=sssd,ou=Special users,dc=domain,dc=com
ldap_default_authtok_type = password
ldap_default_authtok = PutYourPasswordHere
tls_reqcert = demand
ldap_tls_cacert = /etc/pki/domain.com/cacert.pem

ldap_user_search_base = ou=Users,dc=domain,dc=com
ldap_user_object_class = posixaccount
ldap_user_uid_number = uidNumber
ldap_user_gid_number = gidNumber
ldap_user_home_directory = homeDirectory
ldap_user_shell = loginShell
ldap_user_name = uid
ldap_pwd_policy = none

#
# Критерии групп юзеров
#
ldap_group_search_base = ou=Users,dc=domain,dc=com
ldap_group_object_class = posixgroup
ldap_group_name = cn
ldap_group_gid_number = gidNumber
ldap_schema = rfc2307bis
ldap_group_member = uniqueMember

Для OpenLDAP может потребоваться изменить ldap_schema и ldap_group_***

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

А как определить ldap_schema? Т.е. вот это не правильно?

olcRootDN: cn=config

reddaemon ()
Ответ на: комментарий от no-dashi

поставил пакет openssh-lpk

Нахрена? for i in authconfig sssd ; do man $i ;done

А без этого будет работать авторизация по ключам из ldap?

ventilator ★★★ ()
Ответ на: комментарий от no-dashi

Конфиг SSH трогать _не_надо_

Если нужна авторизация по ключам, то как минимум нужно будет AuthorizedKeysCommand подсовывать в случае sssd.

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

Если нужна авторизация по ключам, то как минимум нужно будет AuthorizedKeysCommand подсовывать в случае sssd.

Если нужна аутентификация по ключам, хранящимся в LDAP, то «что-то пошло не так», поскольку аутентификация по ключам нужна только для выполнения пакетных заданий.

no-dashi ★★★★★ ()
Последнее исправление: no-dashi (всего исправлений: 1)
Ответ на: комментарий от no-dashi

что значит «пакетных заданий»? аутентификация по ключам нужна для работы по ssh, не вводя пароль, или я что-то не понимаю?

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

как ты это сделал, если не секрет?

ну это же во всех доках написано, с помощью slappasswd задаешь его, она возвращает хеш пароля его и вставляешь в файл:olcRootPW: хеш пароля

конечная цель все-таки в чем состоит?

Конечная цель, чтобы ключи ssh хранились в базе ldap, и брались оттуда при аутентификации на сервере, ну и соотвественно пользователей тоже хранить там же. Т.е. чтобы каждый раз вручную не добавлять везде пользователя.

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

вставляешь в файл:olcRootPW: хеш пароля

точно так же во всех доках написано, что руками править эти файлы нельзя в принципе. так даже в самом файле написано. и не зря.

может поможет http://itdavid.blogspot.ca/2012/05/howto-centos-6.html

ну и зитракс потом вышеупомянутый. хотя некий Ховард Чу к ним симпатий не питает. может быть по разным причинам...

mos ★★☆☆☆ ()
Ответ на: комментарий от mos
точно так же во всех доках написано, что руками править эти файлы нельзя в принципе. так даже в самом файле написано. и не зря.

В каком файле это написано? Если имеешь ввиду slapd.conf то от него все отказались уже, в пользу конфигурирования с помощью ldif файлов.

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

Note that OpenLDAP no longer reads its configuration from the /etc/openldap/slapd.conf file. Instead, it uses a configuration database located in the /etc/openldap/slapd.d/ directory. If you have an existing slapd.conf file from a previous installation, you can convert it

официальная дока red hat

у тебя страшная каша в голове

проще всего так сказать, может лучше объяснишь, как надо настраивать, если у тебя все так четко и ясно

reddaemon ()
Ответ на: комментарий от no-dashi

аутентификация по ключам нужна только для выполнения пакетных заданий

щито

vasily_pupkin ★★★★★ ()
Ответ на: комментарий от no-dashi

поскольку аутентификация по ключам нужна только для выполнения пакетных заданий.

ORLY?

/me посмотрел на свои сервера авторизующие меня по SSH-ключу

Ключ естественно с паролем.

Подобная практика также имеется в инфраструктуре Gentoo, где все разработчики коннектятся используя SSH-ключи(как для получения шелла, так и для коммитов в CVS/Git)

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от reddaemon

1) я лишь для себя разбирался в LDAP и в курсе, что пока не освоишься, «объяснять» какие-то куски по этой теме бесполезно.
2) ссылку я привел выше. одну из квадриллиона.

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

ORLY?

Именно.

Подобная практика также имеется в инфраструктуре Gentoo

Знаешь чем отличается «инфраструктура Gentoo» от нормальной корпоративной инфраструктуры? Наличием (точнее, отсутствием) SSO, который в корпоративной структуре как бы ожидается быть, и которым и рекомендуется пользоваться. В корпоративной инфраструктуре юзер получает тикет и потом с ним ходит по всем ресурсам.

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

Наличием (точнее, отсутствием) SSO

SSH-ключ выступает здесь тикетом. Которых можно иметь любое количество на любых машинах. Kerberos в данном случае избыточен, а местами даже вреден.

В ОДНОРОДНОЙ корпоративной инфраструктуре - без проблем, Kerberos как правило заруливает любые другие решения.

Pinkbyte ★★★★★ ()
Ответ на: c TLS бы еще разобраться от reddaemon

1. Имя субъекта сертификата должно совпадать с хостом, на который делается коннект и который указан в -H

2. Корневой сертификат должен находиться в том месте, где их ищут openldap-tools

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

А можешь описать полную процедуру генерации корневого и остальных сертификатов, ключей? Или дать ссылку на то, где это правильно описано?

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