Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  FreeBSD Mail Howto
  exim & dovecot
  exim & courier-imap
  squirrelmail
  exim + saslauthd + courier-imap
  postfix -> exim
  sendmail -> exim
  imapsync
  Postfix + LDAP
  maildrop & postfix
  DSPAM
  Exim + LDAP
  ISPmanager
  Backup MX
  exim + exchange
  exim + dovecot + win2003 AD
  RoundCube
  qmail-ldap + AD
  spamooborona
  exim&dovecot + fetchmail + SSL
  Postfix + DBMail
  Mailgraph
  smfsav
  Exim+PgSQL
  Postfix + Dovecot + Clamav + SpamAssasin + LDAP vs MYSQL
  Simplemail Admin
  MTA qmail full install
  OpenLDAP адресная книга
  POSTFIX Статистики
  Backup MX (exim)
  Exim + dovecot + PgSQL + web
  Exim+dovecot2+dspam
  Возможности Dovecot 2
  Dovecot2 configfiles RUS
  Почтовый сервер по шагам ч.1
  Почтовый сервер по шагам ч.2
  Почтовый сервер по шагам ч.3
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


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 интерфейс
//> ee /etc/rc.conf

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/>






Установка phpLDAPadmin

//> 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



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=20&t=18909.

размещено: 2009-07-22,
последнее обновление: 2009-07-31,
автор: Cancer

оценить статью:

Kot_Off, 2009-07-22 в 11:54:52

Спасибо за труд! Очень актуально и нужно.

aks, 2009-07-22 в 12:00:26

Хорошая статья.
особенно спасибо за скрины phpldap.

Только не понятно почему ldap 2.3, а не 2.4

Raven2000, 2009-07-22 в 12:03:05

Баян )
OpenLDAP, addressbook, web интерфейс и все все все. + в форуме линк был

BoOgie, 2009-07-22 в 12:43:44

А исчо если юзается мелкософтовский АД, то система та же (тока сервер каталогов соответственно контроллер домена). В свое время насильно пересадил всю контору с бата на громоптицу и не имею проблем с обновлениями (собсно не в абуках было дело, просто бат не канал). Плюс к этому у меня постфикс работает через тот же контроллер по ldap\'у.

Cancer, 2009-07-22 в 13:37:16

Кстати никто не видел скрипт какой нить синхронизации типа, AD=>OpenLDAP (именно ФИО.e-mail итд итп)??
Все что нужно для контакта.

Гост, 2009-07-22 в 13:44:35

А будет ли это работать с ms outlook из состава офиса мелкософтовского?

macuser, 2009-07-22 в 14:28:36

Еще бы синхронизацию календариков через CalDAV...

Kirill, 2009-07-22 в 19:24:20

Для only-read книги не нужна авторизация для входа, а в данном случае, как я понял, преследуется именно эта цель.
Другое дело, если каждый может вести вести свою адресную книгу

Ы, 2009-07-22 в 19:47:42

Безопасностью автор не озаботился, буратины вельком делать как тут расписано :) А всего то дел было сделать как в мане написано и спать спокойно :)

Cancer, 2009-07-22 в 22:05:17

Ну а что мешает создать пользователя в отдельном контейнере users и права дать токо на чтение!
Не думаю что это так сложно!

У меня так и сделано пользователь ldap у которого права токо на чтение.

vitiko007, 2009-07-22 в 23:22:31

Писать рутовый dc и хранить его же пароль в почтовике - просто непростительно... Автор ведь указал в конфиге возможность использования анонимной учетной записи :)
к тому же есть интересный модуль к почтовику который сразу же вытаскивает список адресов с сервера...
статья хорошая, сам так делал, еще год назад... но безопасностью тут и не пахнет увы...

Cancer, 2009-07-22 в 23:51:10

Это я указал как пример, а так вообще
uid=ldap,ou=users,dc=mail,dc=local

Думаю не стоит писать как создать контейнер и пользователя, так как это все очень просто!

JoyStick, 2009-07-23 в 10:57:54

Спс Cancer, нужная штука!

xmaster, 2009-07-24 в 3:53:14

два месяца уже с этим трахаюсь ! спасибо буду тестить )

kind21, 2009-07-28 в 11:54:36

Если кто использует php-5.2.10 то надо phpldapadmin пишет ошибку, правим: lib/AJAXTree.php

(Change $level=0 to $level on draw_dn() function declaration).

lib/AJAXTree.php 1.2.2.2

Ivan2susr, 2009-07-29 в 8:40:21

> kind21

хм... на 5.2.10 у меня phpldapadmin не завелся, ссылаяcь на то что нет поддержки модуля ldap, поставил phpldapadmin 1.2.0 и все завелось с пол пинка

Pavel, 2009-11-16 в 0:38:51

При попытке добавить запись через phpldapadmin ошибка
Контейнер  является листом . Что делать?

bbk, 2011-10-05 в 20:05:38

Делал по аналогии с этим http://www.lissyara.su/?id=1278  (для пущей безопасности)
и этим
http://ubuntuforums.org/showthread.php?t=271629 (для Mozilla thunderbird схемка)

Добавлю только что для безопасности запускал с параметром в rc.conf'е
slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/ ldaps://192.168.1.9/"'
Локал хост оставил нешифрованным, чтобы phpLDAPadmin работал без пробелм.

Связка работает с Ергтвукишкв 7.0 и SLDAP 2.4

Sparta, 2016-06-30 в 13:58:39

"Устанавливаем Apache, PHP и модули PHP, не забываем про php5-ldap"
не расписано как делать вот это.


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
2011-01-21, m4rkell
Syslog server

Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
2011-01-07, lissyara
Canon/gphotofs

Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
2010-12-13, Al
IPSec

Описание принципов работы IPSEC и способов аутентификации.
2010-12-07, manefesto
FreeBSD on flash

Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
2010-12-05, Fomalhaut
root ZFS, GPT

Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
2010-09-05, Cancer
Настройка аудиоплеера на ximp3

Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
2010-08-31, Cancer
Установка и настройка OpenVPN

На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
2010-08-25, manefesto
freebsd lvm

Использование linux_lvm для работы с LVM разделами из-под FreeBSD. Проблемы которые возники при монтирование lvm раздела
2010-04-30, gonzo111
proftpd file auth&quota

Proftpd - квоты и авторизация из файлов, без использования базы данных и/или системных пользователей
2010-04-22, lissyara
tw_cli

Пошаговая инструкция по восстановлению RAID на контроллере 3ware, из которого выпал один диск. Настройка мониторинга состояния рейда и отчётов о его состоянии на email.
2010-04-14, fox
MySQL Master+Master

MySQL (Master Master) and (Master Slave) Как настроить репликацию…
2010-03-22, Mufanu
named 9.7.0

Система доменных имен (Domain Name Service, DNS) - одна из тех незаметных, закулисных программ, которым не уделяется и половины того внимания, которого они заслуживают.
2010-03-09, terminus
DNS zones

Краткий ликбез про управление DNS зонами. Примеры проведения делегирования прямых и обратных DNS зон.
2010-03-09, aspera
Squid+AD (group access)

Настройка прокси сервера SQUID с автроризацией пользователей в AD. Разделение пользователей на группы
2010-03-02, BlackCat
Шлюз: Часть 4

Настройка дополнительных сервисов: синхронизация времени (OpenNTPD), клиент DynDNS.org.
2010-03-01, BlackCat
Шлюз: Часть 3

Настройка DHCP и DNS серверов для работы внутри частной сети, c поддержкой внутренних (частных зон) DNS, а так же интеграция DHCP и DNS сервисов.
2010-03-01, BlackCat
Шлюз: Часть 2

Конфигурация МСЭ pf для проброса портов с изменением порта назначения и без, а так же поддержки активного режима FTP и ограничения максимального размера сегмента
2010-03-01, BlackCat
Шлюз: Часть 1

Быстрая настройка шлюза/маршрутизатора с установлением PPPoE-соединения, поддержкой NAT и DNS-forwarding.
2010-02-23, Morty
darkstat

Простая считалка траффика, со встроенным веб-сервером. Очень маленькая, может делать отчеты трафика по хостам, портам, протоколам, а также строить графики
2010-01-23, gonzo111
squid+sams+sqstat

Пилим squid и sams - примеры конфигов с объяснениями. Установка SqStat.
2009-12-19, schizoid
mpd5 + radius + ng_car + Abills

Настройка pppoe-сервера с биллинговой системой Abills и шейпером ng_car
2009-11-16, lissyara
UFS->ZFS

Удалённая миграция с UFS на ZFS. Загрузка с раздела zfs. Настройка для работы с малым количеством памяти под архитектурой i386.
2009-11-13, gx_ua
fusefs-ntfs

Установка, настройка и использование fusefs-ntfs, драйвер NTFS, предназанченного для монтирования NTFS разделов под FreeBSD
2009-11-12, Morty
LiveCD

Создание собственного LiveCD с необходимыми вам изменениями, автоматизирование данного процесса, а так же вариант скоростной сборки СД.
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 25 чел.
За последние 30 мин было: 82 человек
За сегодня было
7849 показов,
1155 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.1572 секунд
Из них PHP: 60%; SQL: 40%; Число SQL-запросов: 89 шт.
Исходный размер: 157455; Сжатая: 26394