вторник, 1 апреля 2008 г.

OpenLDAP+GSSAPI начало

Буду описывать краткими кусочками : )
Если хочется полного описания, хотя, на мой взгляд, довольно таки дурацкого, то вам сюда -> http://www.bayour.com/LDAPv3-HOWTO.html
У меня же тут будет все попроще для понимания, я надеюсь. В любом случае на родном оно сподручнее читать.

Нам надо сделать аутентификацию, при обращении к каталогу ldap, по GSSAPI. Можно конечно и по сертификатам, но мне нравится kerberos. Ключевое при получении авторизационной информации машинами клиентами, это аутентификация сервера. Это важно - если вашим машинам подставят другой сервер, и на нем скажут, что вот Вася Пупкин админ, то, согласитесь, радости это нам доставит мало.

На примере ubuntu (мне думается, что debian в этом плане сильно не отличается), мы просто делаем любимое aptitude install slapd.

Далее изменения в конфиг:

backend bdb

#######################################################################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend
+sasl-realm REALM.TLD # Ваша сфера kerberos
+sasl-host ldap.realm.tld # Имя машины, на которой это все присходит
+authz-regexp uid=([^,]*),cn=realm.tld,cn=gssapi,cn=auth # А вот тут нужно почитать
+ ldap:///dc=realm,dc=tld??sub?(uid=$1) # справку, что бы понять

Суть такова - вы указываете сферу, имя, и настраиваете отображение имен. Это довольно важный момент - когда пользователь аутентифицируется, его имя выглядит как uid=anyuser,cn=realm.tld,cn=gssapi,cn=auth, но системе надо знать его dn, те uid=anyuser,ou=users,dc=town,dc=realm,dc=tld. По идее, конечно, и в таком виде сойдет, но тогда в ваших списках доступа не будут иметь смысла записи self, и пользователь не сможет сменить себе /bin/bash на любимый zsh, ну и пароль.

По идее далее идут настройки acl, которые довольно хорошо выполнены по ссылке выше. Но о чем стоит вспомнить, так это о том, что slapd запускается под пользователем openldap и доступа к /etc/krb5.keytab не имеет. Ну это не большая проблема, просто ключ надо сохранить в, например, /etc/ldap/slapd.keytab, поправить права, а демону перед стартом пояснить где его искать. Это можно сделать например редактированием стартового скрипта /etc/init.d/slapd. Вносим вначале файла export KRB5_KTNAME="FILE:/etc/ldap/slapd.keytab" и всех делов.

На первый раз хватит, я думаю. Некоторые возникающие вопросы это поможет решить.

Комментариев нет: