четверг, 3 марта 2011 г.

Адресная книга на базе FreeBSD 8.x + OpenLDAP 2.4.x


Цель: поднять адресную книгу на 400 контактов, для почтовых клиентов
Инструменты: FreeBSD 8,1, OpenLDAP 2.4.23, phpLDAPadmin, LDAPAdmin 1,1
Решение:
0 Обновление системы

Если FreeBSD свежеустановленная, то необходимо обновить дерево портов следующим образом:
#portsnap fetch extract
Если обновление уже проводилось, то достаточно выполнить:
#portsnap fetch update
1 Установка OpenLDAP сервера
#cd /usr/ports/net/openldap24-server
#make config
#make install clean
Добавление в автозагрузку:
#ee /etc/rc.conf
#slapd_enable=»YES»
#slapd_flags='-h «ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://0.0.0.0/»'
#slapd_sockets=»/var/run/openldap/ldapi»
При этом OpenLDAP будет слушать все сетевые интерфейсы.
2 Настройка OpenLDAP сервера
#/usr/local/sbin/slappasswd —s ПАРОЛЬ
В выводе будет {SSHA}ХЭШ_ПАРОЛЯ
Копирование стандартного файла настроек:
#cp /usr/local/etc/openldap/slapd.conf.default /usr/local/etc/openldap/slapd.conf
#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_hdb
# moduleload    back_ldap

# 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 * read
access to attrs=userPassword
       by self write
       by anonymous auth
       by * none
# 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        bdb
suffix          «dc=kvarta,dc=local»
rootdn          «cn=root,dc=kvarta,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}ХЭШ_ПАРОЛЯ
# 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
# Indices to maintain
index   objectClass     eq
index   cn              eq
Указание прав доступа для папки, как рекомендовано:
#chmod 0700 /var/db/openldap-data
Копирование стандартной базы:
cp /usr/local/etc/openldap/DB_CONFIG.example /var/db/openldap-data/DB_CONFIG
Запуск:
#/usr/local/etc/rc.d/slapd start
Проверка:
#ps —ax | grep slap
1392  ??  Is     0:00,03 /usr/local/libexec/slapd —h ldapi://%2fvar%2frun%2fop
21953   2  S+     0:00,00 grep slap
#netstat —nap tcp | grep 389
tcp4       0      0 *.389                  *.*                    LISTEN
 
3 Конфигурация OpenLDAP сервера
Создание корня 
#ee /usr/local/etc/openldap/kvarta.local.ldif
dn: dc=kvarta,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
dc: kvarta
o: altecon

dn: ou=addressbook,dc=kvarta,dc=local
objectClass: top
objectClass: organizationalUnit
ou: addressbook
Добавление корня:
#/usr/local/bin/ldapadd —x —h localhost —f /usr/local/etc/openldap/kvarta.local.ldif —D «cn=root,dc=kvarta,dc=local» -W
Потребует ввода пароля root (хэш которого сгенерирован)
adding new entry «dc=kvarta,dc=local»
adding new entry «ou=addressbook,dc=kvarta,dc=local»
4 Проверка на возможные ошибки в работе OpenLDAP сервера
#ee /etc/syslog.conf
Добавить в конец файла:
!slapd
*.*                                             /var/log/ldap.log
Создание файла лога:
#touch /var/log/ldap.log
#chmod 600 /var/log/ldap.log
Применение изменений:
#/etc/rc.d/syslogd reload
После проверки на ошибки подобное логирование стоит отключать, разрастается быстро.
5 Способы администрирования
5.1 phpLDAPadmin

Установка подразумевает что Apache (в примере Apache 2,2), php и php-extencions установлены верно:
#cd /usr/ports/net/phpldapadmin
#make install clean
#ee /usr/local/etc/apache22/Includes/phpldapadmin.conf
Alias /phpldapadmin/ "/usr/local/www/phpldapadmin/htdocs/»

< Directory "/usr/local/www/phpldapadmin/htdocs» >
  Allow from all
< /Directory >
#apachectl graceful
После этих действий по адресу http://IP_сервера/phpldapadmin/ будет доступна админ панель
логин: cn=root,dc=kvarta,dc=local
пароль: пароль для которого создавался хэш
5.2 LDAP Admin
Это Windows клиент для подключения к LDAP (OpenLDAP/Windows AD).
После запуска необходимо выбрать Start- >Connect- >New Connection
 5.3 Apache Directory Studio
LDAP- >New Connection…
Указывается только IP адрес, зтаем «Далее»
 После этих действий ничего настраивать больше не нужно.
6 Настройка клиентов
6.1 Thunderbird

Инструменты- >Адресная книга (Ctrl+Shift+B)- >Файл- >Создать- >Каталог LDAP…
 6.2 Microsoft Outlook 2010
Файл- >Настройка учетных записей- >Адресные книги- >Создать…- >Слежба каталогов Интернета (LDAP)- >Имя сервера (указать IP OpenLDAP сервера)- >Другие настройки- >Поиск

1 комментарий:

  1. Отличненько, только как настроить чтобы в веб интерфейсе список адресов отображался русскими символами, а то просто отображает пустое поле, и в логах не видит русских букв, а просто отображает "п╟п╢п╣п╤п╢п╟ пM-^Zп╟яM-"

    ОтветитьУдалить