|
www.lissyara.su
—> статьи
—> FreeBSD
—> почтовые системы
—> OpenLDAP адресная книга
Создание адресной книги на OpenLDAP
Автор: Cancer.
В один прекрасный день надоело при появлении нового сотрудника или списка рассылок экспортировать адресную книгу .txt LDIF итд итп и отправлять все это дело по филиалам что бы они загрузили себе. Решил использование сервера каталогов OpenLDAP и вынести его в МИР так же можно и внутри его использовать, думаю это лучшее решение.
Всем понятно что это удобно, особенно когда бух не знает как набрать фамилию свою на английском =).
В инете достаточно инфы по этому поводу, но все таки хотел написать подробнее как это все делается, как оказалось все очень просто.
Инфа:
OpenLDAP – бесплатный сервер каталогов, который содержится в большинстве дистрибутивов Linux и FreeBSD. Он обладает достаточной функциональностью и полностью совместим с Outlook Express, Mozilla и Mozilla Thunderbird.
Устанавливаем Apache, PHP и модули PHP, не забываем про php5-ldap
Установка OpenLDAP клиента
//> cd /usr/ports/net/openldap23-client/
/usr/ports/net/openldap23-client/> make install clean
/usr/ports/net/openldap23-client/> rehash
|
Установка OpenLDAP сервера
//> cd /usr/ports/net/openldap23-server/
/usr/ports/net/openldap23-server/> make config
|
+--------------------------------------------------------------------+
| Options for openldap-server 2.3.43 |
| +----------------------------------------------------------------+ |
| | [ ] SASL With (Cyrus) SASL2 support | |
| | [ ] PERL With Perl backend | |
| | [ ] SHELL With Shell backend (disables threading) | |
| | [ ] ODBC With SQL backend | |
| | [ ] SLP With SLPv2 (RFC 2608) support | |
| | [ ] SLAPI With Netscape SLAPI plugin API | |
| | [X] TCP_WRAPPERS With tcp wrapper support | |
| | [X] BDB With BerkeleyDB support | |
| | [ ] ACCESSLOG With In-Directory Access Logging overlay| |
| | [ ] AUDITLOG With Audit Logging overlay | |
| | [ ] DENYOP With Deny Operation overlay | |
| | [ ] DYNGROUP With Dynamic Group overlay | |
| | [ ] DYNLIST With Dynamic List overlay | |
| | [ ] LASTMOD With Last Modification overlay | |
| | [ ] PPOLICY With Password Policy overlay | |
| | [ ] PROXYCACHE With Proxy Cache overlay | |
| | [ ] REFINT With Referential Integrity overlay | |
| | [ ] RETCODE With Return Code testing overlay | |
| | [ ] RWM With Rewrite/Remap overlay | |
| | [ ] SYNCPROV With Syncrepl Provider overlay | |
| | [ ] TRANSLUCENT With Translucent Proxy overlay | |
| | [ ] UNIQUE With attribute Uniqueness overlay | |
| | [ ] VALSORT With Value Sorting overlay | |
| | [ ] ACI With per-object ACIs (experimental) | |
| | [X] DYNAMIC_BACKENDS Build dynamic backends | |
| | [X] SLURPD Build slurpd replication daemon | |
+-+------v(+)------------------------------------------------------+-+
| [ OK ] Cancel |
+--------------------------------------------------------------------+
|
/usr/ports/net/openldap23-server/> make install clean
/usr/ports/net/openldap23-server/> rehash
|
Генерируем пароль администратора OpenLDAP командой slappasswd, хеш которого мы ниже добавим в конфиг OpenLDAP
//> slappasswd -s root
New password:*******
Re-enter new password:*******
{SSHA}HaXoFVeJ5HOmvVbFnSB00lCYjIw8N0y+
//>
|
Теперь займемся конфигом OpenLDAP
//> ee /usr/local/etc/openldap/slapd.conf
|
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetorgperson.schema
include /usr/local/etc/openldap/schema/misc.schema
include /usr/local/etc/openldap/schema/nis.schema
include /usr/local/etc/openldap/schema/openldap.schema
# Define global ACLs to disable default read access.
# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral ldap://root.openldap.org
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
# Load dynamic backend modules:
modulepath /usr/local/libexec/openldap
# moduleload back_bdb
# moduleload back_ldap
moduleload back_ldbm
# moduleload back_passwd
# moduleload back_shell
# Sample security restrictions
# Require integrity protection (prevent hijacking)
# Require 112-bit (3DES or better) encryption for updates
# Require 63-bit encryption for simple bind
# security ssf=1 update_ssf=112 simple_bind=64
# Sample access control policy:
# Root DSE: allow anyone to read it
# Subschema (sub)entry DSE: allow anyone to read it
# Other DSEs:
# Allow self write access
# Allow authenticated users read access
# Allow anonymous users to authenticate
# Directives needed to implement policy:
access to dn.base="" by * read
access to dn.base="cn=Subschema" by * read
access to *
by self write
by users read
by anonymous auth
#
# if no access controls are present, the default policy
# allows anyone and everyone to read anything but restricts
# updates to rootdn. (e.g., "access to * by * read")
#
# rootdn can always read and write EVERYTHING!
#######################################################################
# BDB database definitions
#######################################################################
database ldbm
suffix "dc=mail,dc=local"
rootdn "cn=root,dc=mail,dc=local"
# Cleartext passwords, especially for the rootdn, should
# be avoid. See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw {SSHA}HaXoFVeJ5HOmvVbFnSB00lCYjIw8N0y+
# The database directory MUST exist prior to running slapd AND
# should only be accessible by the slapd and slap tools.
# Mode 700 recommended.
directory /var/db/openldap-data
loglevel 256
# Indices to maintain
index objectClass eq
index cn eq
|
Добавляем в автозагрузку
ldap://127.0.0.1/ - указывем что бы OpenLDAP слушал localhost
ldap://192.168.1.9/ - указывем что бы OpenLDAP слушал Ethernet интерфейс
slapd_enable="YES"
## Этот параметр пишите в одну строку без переноса "\"
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/ \
ldap://192.168.1.9/"'
########
slapd_sockets="/var/run/openldap/ldapi"
|
Запускаем OpenLDAP
//> /usr/local/etc/rc.d/slapd start
Starting slapd.
//>
|
Проверяем работает ли он
//> ps axw | grep openldap
|
1729 ?? Ss 0:00,02 /usr/local/libexec/slapd -h ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/ ldap://192.168.1.9/ -u ldap -g ldap
1780 p0 R+ 0:00,00 grep openldap
|
//> netstat -nap tcp | grep 389
|
tcp4 0 0 192.168.1.9.389 *.* LISTEN
tcp4 0 0 127.0.0.1.389 *.* LISTEN
|
Создаем КОРЕНЬ
//> ee /var/db/openldap-data/base.ldif
|
dn: dc=mail, dc=local
objectClass: dcObject
objectClass: organization
objectClass: top
dc: mail
o: mail
| Добавим схему в OpenLDAP
/var/db/openldap-data/>ldapadd -x -D "cn=root,dc=mail,dc=local" \
-h 192.168.1.9 -W -f base.ldif
Enter LDAP Password:
adding new entry "dc=mail, dc=local"
/var/db/openldap-data/>
|
//> cd /usr/ports/net/phpldapadmin
/usr/ports/net/phpldapadmin/> make install clean
/usr/ports/net/phpldapadmin/> rehash
|
Добавляем алиас в апач
//> ee /usr/local/etc/apache/httpd.conf
|
Alias /phpldapadmin "/usr/local/www/phpldapadmin/htdocs/"
<Directory "/usr/local/www/phpldapadmin/htdocs">
Options none
AllowOverride none
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.1.0/24 .domain.local
</Directory>
|
Слегка правим конфиг
//> ee /usr/local/www/phpldapadmin/config/config.php
|
$ldapservers->SetValue($i,'server','host','127.0.0.1');
|
Создание адресной книги
Настройка Thunderbird для использование адресной книги
Документация:
http://www.lissyara.su/?id=1277
http://www.samag.ru/cgi-bin/go.pl?q=articles;n=10.2006;a=01
размещено: 2009-07-22,
последнее обновление: 2009-07-31,
автор: Cancer
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Комментарии пользователей [19 шт.]