Корпоративная почта с Tunderbird и LDAP адресная книга. Адресная книга ldap


Общая адресная книга на LDAP Active Directory

Исходные данные:

Сервер - доменный контроллер на Windows 2003 (роли AD, DNS, DHCP)

Машины - Windows XP, Windows 7

Основные этапы:

1. Создать нужные OU, которые будут хранить контакты компаний

2. Добавить в эти OU контакты из файла с форматом "точка запятая"

3. Прописать на почтовых клиентах адресные книги

 

Для решения задачи нам потребуется:

1. Файл Excel с именами, фамилиями, телефонами сотрудников компаний для базы контактов LDAP. Который мы потом сохраним в формате - точка, запятая.

2. Командный файл который занесет контакты в Active Directory

Примерный xls файл выглядит так:

 

Далее полученный файл сохраните под именем CNames.txt как текст с разделителями (точка, запятая) на диск C:  (C:\Cnames.txt) доменного контроллера на котором Active Directory.

И примените к нему следующий adding.bat файл командой:

c:\adding.bat

Батник и файл контактов должны лежать в корне диска С, можно это поменять в батнике.

Предварительно надо создать нужные OU.

Например:

company.local\adressbook\rogaikopita

company.local\adressbook\firma2

Далее в тексте батника перед добавлением каждой адресной книги, меняйте переменные:

SET OUName=OU=ADRESSBOOK,DC=COMPANY,DC=LOCAL

Текст файла adding.bat:

:: ===============:: READ THIS FIRST:: ===============:::: * This script require "CNames.txt" file on C: drive root from where it will pick user names (CN).:: * CNames.txt file should be in following format::        <CN Name>:<FirstName>:<LastName>:<EmailAddress>:<Description>::   Like:::        Farhan Kazi:Farhan:Kazi:[email protected]:NetSec ::   Specialist:::: * You need to set OUName variables value to the actual OU name::   Like:::       :: SET OUName=OU=ACCOUNTS,DC=TRAINING,DC=COM:::: * Successful run will generate "ContactReport.txt" file on C: drive root.:: * Copy and paste following script in notepad and save it with any name having .bat extension.:::: *** SCRIPT START ***@Echo OffSETLOCAL

IF NOT EXIST C:\CNames.txt Goto ShowErrFOR %%R IN (C:\CNames.txt) Do IF %%~zR EQU 0 Goto ShowErrIF EXIST C:\ContactReport.txt DEL /F /Q C:\ContactReport.txt

SET OUName=OU=ADRESSBOOK,DC=COMPANY,DC=LOCAL

FOR /F "delims=: tokens=1-13" %%c IN (C:\CNames.txt) Do (Echo Crerating Contact: %%cDSAdd Contact "CN=%%c,%OUName%" -FN "%%d" -LN "%%e" -Display "%%f" -office "%%g" -Email "%%i" -tel "%%h" -Title "%%m" -mobile "%%k"  -fax "%%j" -hometel "%%l" -dept "%%n" -company "%%o" >>C:\ContactReport.txt)REM DSAdd Contact "CN=%%c,%OUName%" -FN "%%d" -LN "%%e" -Display "%%f" -Email "%%g" -Title REM "%%h" -mobile "%%i" -office "%%j" -fax "%%k" -hometel "%%l" -dept "%%m" -company "%%n"Goto EndScript:ShowErrEcho "C:\CNames.txt" file does not exist or file is empty!:EndScriptENDLOCAL:: *** SCRIPT END ***

После у вас появятся контакты в Active Directory в OU ADRESSBOOK\COMPANY

Далее необходимо настроить Outlook на нашу адресную книгу.

Заходим в меню Сервис -> Настройка учетный записей. После выбираем вкладку Адресные книги.

Нажимаем кнопку создать

Вводим IP адрес нашего доменного контроллера, ставим галочки и нажимаем кнопку Другие настройки

Вводим ou=AdressBook,dc=Company,dc=local

И нажимаем кнопку ОК.

Закрываем все.

И проверяем как работает наша простая адресная книга )

Данное решение очень кривое, так как приходится настраивать на каждом компьютере эту книгу. Если у вас много компьютеров, это будет сплошным гемором. Да и если добавятся новые контакты в виде OU, то опять таки придется идти и настраивать все компьютеры. Возможно можно попытаться писать настройки адресной книги в реестр компьютеров через ГПО, что было бы правильным для системного администратора большего парка машин.

Более красиво выглядит решение в виде использования Exchange Server , Sharepoint или просто сайта с контактами в MySQL с синхронизацией с Active Directory. Последнее решение, я видел в Интернете.

Хорошо было бы с помощью скрипта добавлять и удалять адресные книги.

Или делать  это же с помощью групповых политики.

Готовый бат файл и примерный файлы xls можете скачать с файлообменника:

http://download.files.namba.kz/files/11994031

www.bulygin.su

Общая адресная книга на LDAP Active Directory

Простая адресная книга на основе Active Directory.

В данной короткой записке написано как сделать простейшую адресную книгу с контактами сотрудников.

Исходные данные:

Сервер - доменный контроллер на Windows 2003 (роли AD, DNS, DHCP)

Машины - Windows XP, Windows 7

 

Основные этапы:

1. Создать нужные OU, которые будут хранить контакты компаний

2. Добавить в эти OU контакты из файла с форматом "точка запятая"

3. Прописать на почтовых клиентах адресные книги

 

Для решения задачи нам потребуется:

1. Файл Excel с именами, фамилиями, телефонами сотрудников компаний для базы контактов LDAP. Который мы потом сохраним в формате - точка, запятая.

2. Командный файл который занесет контакты в Active Directory

Примерный xls файл выглядит так:

 

Далее полученный файл сохраните под именем CNames.txt как текст с разделителями (точка, запятая) на диск C:  (C:\Cnames.txt) доменного контроллера на котором Active Directory.

И примените к нему следующий adding.bat файл командой:

c:\adding.bat

Батник и файл контактов должны лежать в корне диска С, можно это поменять в батнике.

Предварительно надо создать нужные OU.

Например:

company.local\adressbook\rogaikopita

company.local\adressbook\firma2

Далее в тексте батника перед добавлением каждой адресной книги, меняйте переменные:

SET OUName=OU=ADRESSBOOK,DC=COMPANY,DC=LOCAL

Текст файла adding.bat:

:: ===============:: READ THIS FIRST:: ===============:::: * This script require "CNames.txt" file on C: drive root from where it will pick user names (CN).:: * CNames.txt file should be in following format::        <CN Name>:<FirstName>:<LastName>:<EmailAddress>:<Description>::   Like:::        Farhan Kazi:Farhan:Kazi:[email protected]:NetSec ::   Specialist:::: * You need to set OUName variables value to the actual OU name::   Like:::        :: SET OUName=OU=ACCOUNTS,DC=TRAINING,DC=COM:::: * Successful run will generate "ContactReport.txt" file on C: drive root.:: * Copy and paste following script in notepad and save it with any name having .bat extension.:::: *** SCRIPT START ***@Echo OffSETLOCAL

IF NOT EXIST C:\CNames.txt Goto ShowErrFOR %%R IN (C:\CNames.txt) Do IF %%~zR EQU 0 Goto ShowErrIF EXIST C:\ContactReport.txt DEL /F /Q C:\ContactReport.txt

SET OUName=OU=ADRESSBOOK,DC=COMPANY,DC=LOCAL

FOR /F "delims=: tokens=1-13" %%c IN (C:\CNames.txt) Do (Echo Crerating Contact: %%cDSAdd Contact "CN=%%c,%OUName%" -FN "%%d" -LN "%%e" -Display "%%f" -office "%%g" -Email "%%i" -tel "%%h" -Title "%%m" -mobile "%%k"  -fax "%%j" -hometel "%%l" -dept "%%n" -company "%%o" >>C:\ContactReport.txt)REM DSAdd Contact "CN=%%c,%OUName%" -FN "%%d" -LN "%%e" -Display "%%f" -Email "%%g" -Title REM "%%h" -mobile "%%i" -office "%%j" -fax "%%k" -hometel "%%l" -dept "%%m" -company "%%n"Goto EndScript:ShowErrEcho "C:\CNames.txt" file does not exist or file is empty!:EndScriptENDLOCAL:: *** SCRIPT END ***

После у вас появятся контакты в Active Directory в OU ADRESSBOOK\COMPANY

Далее необходимо настроить Outlook на нашу адресную книгу.

Заходим в меню Сервис -> Настройка учетный записей. После выбираем вкладку Адресные книги.

Нажимаем кнопку создать

Вводим IP адрес нашего доменного контроллера, ставим галочки и нажимаем кнопку Другие настройки

Вводим ou=AdressBook,dc=Company,dc=local

И нажимаем кнопку ОК.

Закрываем все.

И проверяем как работает наша простая адресная книга )

Данное решение очень кривое, так как приходится настраивать на каждом компьютере эту книгу. Если у вас много компьютеров, это будет сплошным гемором. Да и если добавятся новые контакты в виде OU, то опять таки придется идти и настраивать все компьютеры. Возможно можно попытаться писать настройки адресной книги в реестр компьютеров через ГПО, что было бы правильным для системного администратора большего парка машин.

Более красиво выглядит решение в виде использования Exchange Server , Sharepoint или просто сайта с контактами в MySQL с синхронизацией с Active Directory. Последнее решение, я видел в Интернете.

Хорошо было бы с помощью скрипта добавлять и удалять адресные книги.

Или делать  это же с помощью групповых политики.

Готовый бат файл и примерный файлы xls можете скачать с файлообменника:

http://download.files.namba.kz/files/11994031

 

yvision.kz

Общая адресная книга без Exchange через LDAP

У меня в конторе почтовый сервер вынесен на сервера яндекса, это очень удобно было в тот момент сделать, но в этом есть и большие минусы, один из главных минусов это адресная книга которая у нас очень часто обновляется в связи с принятием на работу новых сотрудников либо увольнением старых. И вот на этой неделе была последняя капля и решил закрыть дурацкий вопрос с адресными книгами, потому как до сегодняшнего момента использовал ручной способ обновления адресных книг что очень напрягало.  Сейчас настроил синхронизацию адресных посредствам LDAP. В инете есть уже инструкции, но я напишу свою более развернутую и так сказать для чайников, мало ли кому то пригодится.

Для того что бы реализовать общую адресную книгу без Exchange через LDAP нам в первую очередь необходим Домен. Потому как все основные действия будут происходить с ним.

В моей инструкции уже учитывается что у вас уже есть домен и организация работает в доменной структуре.

поехали

  1. Заходим на контроллер домена и открываем приложение Active Directory — пользователи и компьютеры
  2. Определяем где мы будем вести нашу адресную книгу (я использовал папку которая уже есть по умолчанию CONTACT )

  3. создаем там тестовый контакт Создать -> Контакт (обратите внимание не пользователя а КОНТАКТ) 
  4. заполните профиль этого контакта те поля которые вы хотите что бы отображалось (ФИО, тел, номер кабинета, e-mail и т.д.)
  5. Откройте командную строку Пуск-cmd
  6. Делаем экспорт данной группы контактов, что бы у нас был шаблон для заполнения  след командой csvde -f c:\ad2.csv -d «OU=contact,DC=домен,DC=ru» -u

    примечание:

              — экспорт импорт делаем командой csvde          — экспорт делаем в формате CSV (удобней потом редактировать)

    — заносим свои данные в OU и DC (тут я надеюсь понятно что откуда)

    — в конце ставим ключ -u это что бы кодировка была в Юникоде </p>

  7. На выходе на диске С у нас есть файл ad2.csv его импортируем в в excel или гугл документ (я все делаю через гугл, очень удобно)
  8. у нас будет две строчки и много столбцов и вторая строчка как раз будет с нашим тестовым юзером которого мы создали
  9. Далее дело за малым удалить лишние столбцы (те в которых идут индефикаторы(там где много цифр ))) ))  и далее на основе тестового юзера внести всех остальных пользователей и заполнением всех полей (ФИО, тел, номер кабинета, e-mail и т.д.)
  10. сохраняете данный файл кладете его на диск С контроллера домена и вводим команду импорта  csvde -i -f c:\ad3.csv -k -u

    примечание:

              — импорт делаем командой csvde

    — при импорте указываем файл CSV который мы заполнили в в excel или гугл

    — ключ -k означает пропускать ошибки или уже имеющиеся повторяющиеся контакты

    — u это что бы кодировка была в Юникоде

  11. На это все

Но как и везде тут есть свой НЮАНС!!!

С первого раза у меня не получилось все это загрузить какие бы я варианты не пробовал потому как при загрузке у меня контакты выглядели след образом:

как видите у меня билась кодировка при импорте в Active Directory и я начал делать перебор кодировок что бы найти ту которая будет нормально все загружать.

В итоге панацея  была найдена и после этого все прогрузилось красиво и быстро

 

Вывод: перед тем как начнете делать большой импорт протестите сначала на импорте 1-2 контактов и когда увидите что все ок, грузите уже весь список!

 

Подключение общей адресной книги в Outlook 2010 через  LDAP

Как Вы поняли это было только первая часть инструкции, потому как теперь ее надо подключить адресную книгу в outlook. Для этого делаем следующие:

  1. Открываем Outlook 2010(у вас может быть любой клиент, логика не меняется)
  2. Идем в меню Файл ->Сведения  ->Настройка Учетных записей ->открываем вкладку Адресная книга -> нажимаем создать

  3. Выбираем пункт Служба каталогов Интернета (LDAP)

  4. далее в имя сервера вводим либо имя контролера домена либо его IP адрес, активируете две галочки в пункте Вход в систему и нажимаем Другие настройки

  5. В след пункте Имя указываем имя как у нас будет отображаться адресная книга в списке и переходим на вкладку ПОИСК

  6. Тут ставим переключатель на Другая и вносим данные откуда будут браться контакты и обязательно ставим галочку в пункте ПРОСМОТР

на этом все очень надеюсь что моя инструкция кому то  поможет сэкономить время и нервы.  И если Вам эта статья реально помогла, то буду признателен Вам если Вы поможете моему интернет магазину обуви и поставите на нем свой лайк или красивый отзыв :-)))

http://www.nibbl.ru/operation_system/microsoft/obshhaya-adresnaya-kniga-bez-exchange-cherez-ldap/

nibbl.livejournal.com

Настройка LDAP телефонной книги в аппаратах Grandstream

Есть у вас есть домен, в нем у пользователей прописаны номера телефонов, то почему бы не отображать их на дисплее телефона при звонке?

  • Автоматическое отображение
  • Нет необходимости вручную вносить данные в телефонную книгу
  • Актуальная информация

Итого, что нам потребуется для выполнения данной задачи?

  • Контроллер домена
  • Заполненные данные в учетных записях пользователей
  • Пользователь, по которому телефон будет авторизовываться в AD и брать инфу
  • Ну и сам телефонный аппарат

Первое, что нам надо — сделать пользователя в AD, по которому телефон будет авторизовываться в AD для считывания данных

Создаем пользователя к примеру — LDAPPHONE, ставим галку «срок действия пароля не ограничен» ну и какой нить хороший пароль ему )))Прав обычного пользователя ему хватит за глаза, не давайте ему прав администратора!

Идем далее.Заходим на «морду» IP телефона Grandstream, идем в «Телефонная книга -> LDAP» (Phonebook -> LDAP) (Рисунок кликабильный)

Server Address:

IP контроллера домена

Port :

389

Base: (В каком лесу искать)

ou=Users, dc=domain, dc=lan

User Name: (имя пользователя для LDAP)

[email protected]

Password: (Пароль от данного пользователя)

superparol

LDAP Number Filter:

(telephoneNumber=%)

LDAP Name Filter:

(&(displayName=%) (telephoneNumber=*))

LDAP Version:

Version 3

LDAP Name Attributes: (какое имя отображать)

displayName

LDAP Number Attributes: (в каком поле брать номер телефона)

telephoneNumber

LDAP Display Name:

%displayName %telephonenumber

Max. Hits:

3000

Search Timeout:

30

Sort Results:

Yes

LDAP Lookup: (ставим галку, при каких звонках мы хотим видеть имя абонента, я выбрал оба варианта)

Incoming Calls Outgoing Calls

Lookup Display Name:

displayName

Собственно на этом вся настройка заканчивается. Если Вы все настроили верно, то при звонках вы теперь будите видеть имена пользователей из AD.

Так же из AD можно сделать простой телефонный справочник, но об этом в следующий раз

Спасибо за внимание.

Поделиться ссылкой:

sysadmin-note.ru

Электронные подписи и централизованная адресная книга в каталоге LDAP

Взято: http://solaris.opennet.ru/docs/RUS/mail_cert_ldap/

Автор: Афлетдинов Андрей Оригинал: andrek.ipsp.ru

В организации стал вопрос по созданию корпоративной почты с поддержкой электронных сертификатов пользователей.Имеем внутренний настроенный dns с доменом domain.ruСервер где поднимаем LDAP называем ldap.domain.ru

Создание сертификата организации

  • с помощью этого сертификата, будем в дальнейшем подписывать все остальные сертификаты пользователей, и сертификаты системных служб
openssl genrsa -des3 -out ca.key 2048openssl req -new -x509 -days 1825 -utf8 -key ca.key -out ca.cert

Создание пользовательского подписанного сертификата

openssl genrsa -out user.key 1024openssl req -new -key user.key -out user.csr -utf8openssl x509 -req -in user.csr -out user.cert -CA ca.cert -CAkey ca.key -CAcreateserial -days 1095
  • Генерируем приватный ключ
  • Генерируем запрос для подписания сертификата
  • Подписываем сертификат

Приватный ключ ca.key надежно сохраняем, а публичный ключ ca.cert в дальнейшем распространим по машинам и пользователям.По умолчанию в системе RedHat:

  • приватные ключи сохраняем в /usr/share/ssl/private
  • публичные ключи и сертификаты в /usr/share/ssl/certs

Большая часть сетевых служб использует сертификат формата service.pemФормат этого файла подразумевает оба ключа (публичный и приватный) в одном файле:

cat service.key > service.pemcat service.cert >> service.pem

В системе установлен пакет:

Вся настройка проводилась именно для ветки 2.2 OpenLDAP.

Настройка серверной части openldap

Файл конфигурации /etc/openldap/slapd.conf по умолчанию,из опций добавлено:

TLSCertificateFile /usr/share/ssl/private/slapd.pemTLSCertificateKeyFile /usr/share/ssl/private/slapd.pemTLSCACertificateFile /usr/share/ssl/certs/ca.cert

suffix "dc=domain,dc=ru"rootdn "cn=admin,dc=domain,dc=ru"

Генерируем публичный и приватный ключ как описано выше.Отвечаем на вопросы, не забываем про самый главный ответ (в моей системе было так)

Common Name (eg, YOUR name) []: ldap.domain.ru

Устанавливаем права:

chmod 440 /usr/share/ssl/private/slapd.pemchown .ldap /usr/share/ssl/private/slapd.pem

Запускаем

service ldap start

Проверяем

netstat -atn | grep LISTENtcp 0 0 0.0.0.0:389 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN

Отлично! Редактируем строку запуска сервиса в файле /etc/rc.d/init.d/ldap (для систем RedHat)

#daemon ${slapd} -u ldap -h 'ldap:/// ldaps:///' $OPTIONS $SLAPD_OPTIONSdaemon ${slapd} -u ldap -h 'ldaps:///' $OPTIONS $SLAPD_OPTIONS

Командуем

service ldap restartnetstat -atn | grep LISTEN

Результат:

tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN

Это то, что нам нужно!

Настройка клиентской части openldap

Файл конфигурации /etc/openldap/ldap.conf, добавляем:

BASE dc=domain,dc=ruURI ldaps://ldap.domain.ruTLS_CACERT /usr/share/ssl/certs/ca.cert

Создадим базовый ldif файл, с содержанием:

dn: dc=domain,dc=ruobjectClass: dcObjectobjectClass: organizationdc: domaino: Organization

dn: cn=admin,dc=domain,dc=ruobjectClass: organizationalRolecn: admindescription: Administrator LDAP

И добавим его в базу:

ldapadd -D"cn=admin,dc=domain,dc=ru" -W -x -f base.ldifEnter LDAP Password:adding new entry "dc=domain,dc=ru"

adding new entry "cn=admin,dc=domain,dc=ru"

Таким образом имеем работающие ldap сервер и клиент с SSL поддержкой.

Авторизация LDAP

Настраиваем на примере клиентскую систему с именем redhat72.domain.ruТак же в системе провели настройку клиентской части openldap, как описано выше.В системе установлен пакет:

Файл конфигурации /etc/nsswitch.conf, изменяем строки:

passwd: files ldapshadow: files ldapgroup: files ldap

Файл конфигурации /etc/ldap.conf:

host ldap.domain.rubase dc=domain,dc=ru

rootbinddn cn=login,dc=domain,dc=ruscope one

nss_base_passwd ou=users,dc=domain,dc=ru?onenss_base_shadow ou=users,dc=domain,dc=ru?onenss_base_group ou=group,dc=domain,dc=ru?one

ssl yes

В файл конфигурации /etc/openldap/slapd.conf на сервере ldap.domain.ru добавляем необходимые схемы

include /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/nis.schemainclude /etc/openldap/schema/inetorgperson.schema

Создаем ниже пользователя login, которому доступны необходимые данные для чтения, для этого определим права ACL:

access to attr=userPasswordby self writeby anonymous authby dn.base="cn=admin,dc=domain,dc=ru" writeby dn.base="cn=login,dc=domain,dc=ru" readby * none

access to attr=userPKCS12by self writeby anonymous authby dn.base="cn=admin,dc=domain,dc=ru" writeby * none

access to *by self writeby dn.base="cn=admin,dc=domain,dc=ru" writeby * read

Файл login.ldif:

dn: cn=login,dc=domain,dc=ruobjectClass: topobjectClass: personcn: loginsn: loginuserPassword: {CRYPT}lVT9EK/cNnd/2

Для генерации хеша пароля, используем команду:

slappasswd -h{crypt}

Так же и в файле /etc/ldap.secret необходимо сохранить етот пароль.Далее сохраняем все в базу:

ldapadd -D"cn=admin,dc=domain,dc=ru" -W -x -f login.ldifEnter LDAP Password:adding new entry "cn=login,dc=domain,dc=ru"

Создаем две группы, файл group.ldif:

dn: ou=users,dc=domain,dc=ruobjectClass: topobjectClass: organizationalUnitou: users

dn: ou=group,dc=domain,dc=ruobjectClass: topobjectClass: organizationalUnitou: group

Сохраняем в базе:

ldapadd -D"cn=admin,dc=domain,dc=ru" -W -x -f group.ldifEnter LDAP Password:adding new entry "ou=users,dc=domain,dc=ru"

adding new entry "ou=group,dc=domain,dc=ru"

Создаем пользователя nikolas

:

dn: cn=nikolas,ou=users,dc=domain,dc=ruobjectClass: topobjectClass: accountobjectClass: posixAccountobjectClass: shadowAccountcn: nikolasuid: nikolasuidNumber: 3001gidNumber: 3001homeDirectory: /home/nikolasloginShell: /bin/bashuserPassword: {CRYPT}Dre676jtUt6tg

dn: cn=nikolas,ou=group,dc=domain,dc=ruobjectClass: topobjectClass: posixGroupcn: nikolasgidNumber: 3001memberUid: nikolas

Заносим в базу, стандартной последовательностью команд.Проверяем стандартной последовательностью команд, в списках пользователей и групп должны быть и наши данные:

[[email protected] test]$ getent passwd. . . .test:x:500:500::/home/test:/bin/bashsandy:x:3001:3001:sandy:/home/sandy:/bin/bashnikolas:x:3002:3002:nikolas:/home/nikolas:/bin/bash

[[email protected] test]$ getent shadowsandy:x:::::::0nikolas:x:::::::0

[[email protected] test]$ getent group. . . .test:x:500:sandy:x:3001:sandynikolas:x:3002:nikolas[[email protected] test]$

Так же в файл /etc/pam.d/login, полезно добавить:

session optional /lib/security/pam_mkhomedir.so umask=077

После этого можно подключиться пользователем nikolas локально в систему:

Red Hat Linux release 7.2 (Enigma)Kernel 2.4.26-grsec on an i686

redhat72 login:

nikolasPassword:Creating directory '/home/nikolas'.[[email protected] nikolas]$ cd ..[[email protected] home]$ ls -latotal 12drwxr-x-r-x 3 root root 4096 May 5 15:56 .drwxr-x-r-x 19 root root 4096 May 5 10:00 ..drwx------- 2 nikolas nikolas 4096 May 5 15:50 nikolas

После установки пакета:

Желательно в файле /etc/ssh/sshd_config раскомментировать опцию:

UsePAM yes

После этих манипуляций также подключаемся и удаленно.

[[email protected] andrek]$ ssh -lnikolas redhat72Password:Last login: Wed May 5 16:15:45 2004[[email protected] nikolas]$

Сервер электронной почты.

В системе установлены пакеты:

  • sendmail-8.13.0
  • imap-2004

Настраиваем авторизацию в системе, как описано выше.После этой процедуры, службы ( pop, imap, sendmail) будут работать с пользователями как с локальными.

Для включения встроенных функций поддержки ldap в sendmail, его необходимо собрать с поддержкой ldap, если используете стандартный из дистрибутива, то она присутствует по умолчанию.Иначе при сборке необходимо в файл devtools/Site/site.config.m4 добавить строки:

APPENDDEF(`confMAPDEF',`-DLDAPMAP')APPENDDEF(`confLIBS',`-lldap -llber -lldap_r')

Добавляем поддержку необходимой схемы sendmail.shema в файл конфигурации slapd.conf на стороне сервера ldap.domain.ru.

include /etc/openldap/schema/sendmail.schema

Включаем альясы в файле конфигурации sendmail, путем определения параметров в файле sendmail.mc:

define(`confLDAP_CLUSTER', `servers')define(`confLDAP_DEFAULT_SPEC',`-w 3 -H ldaps:///ldap.domain.ru -b ou=aliases,dc=domain,dc=ru')define(`ALIAS_FILE',`ldap:')

Работоспособность альяса будет ограничена в рамках значения sendmailMTACluster = serversКлючи -w (использовать протокол LdapV3) и -H появились именно в ветке 8.13.

Так же при использовании этой ветки, столкнулся со следующей ситуацией:При отправлении почты на почтовый альяс, адресат получает письмо.Но отправитель также получает сообщение об ошибке, в которой говорится что невозможно доставить письмо также адресатам

  • sendmailmtaaliasobject
  • sendmailmtaalias
  • sendmailmta
  • top

На сайте предложено решение переопределить значение: define(`ALIAS_FILE',`ldap: -k (&(objectCla ... и т.д.Но не смотря на многочисленные варианты у меня это не сработало, у кого хватило терпения разобраться в проблеме прошу поделиться вариантом решения.Я поступил проще - добавил как служебных пользователей.

Для поддержки SSL при сборке необходимо в файл devtools/Site/site.config.m4 добавить строки:

APPENDDEF(`confENVDEF',`-DSTARTTLS')

И в файле конфигурации sendmail.mc определить:

define(`confCACERT_PATH',`/usr/share/ssl/certs')define(`confCACERT',`/usr/share/ssl/certs/ca.cert')define(`confSERVER_CERT',`/usr/share/ssl/private/sendmail.pem')define(`confSERVER_KEY',`/usr/share/ssl/private/sendmail.pem')

DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')

И не забываем перегенерировать:

m4 sendmail.mc > sendmail.cf

Пакет imap-2004 рекомендую собирать также c поддержкой SSL:

make lnp SSLDIR=/usr SSLCERTS=/usr/share/ssl/private

Соответственно в каталоге /usr/share/ssl/private должны быть сертификаты ipop3d.pem и imapd.pem .

Централизованная адресная книга, и пользовательские сертификаты в каталогах LDAP.Краткое вступление:

  • для получения аттрибута mail, необходимо определить для пользователей objectClass (person, organizationalPerson, inetOrgPerson )
  • для сохранения пользовательских сертификатов предназначены аттрибуты userCertificate и userPKCS12
  • на клиентской стороне, в почтовой программе необходимо настроить адресную книгу для чтения каталогов LDAP, а так же добавить наш сертификат организации в список CA ROOT сертификатов.

Процесс этот утомительный, если в системе порядочное количество пользователей.Я позволил себе написать (небольшой скрипт управления корпоративной почты) CGI сценарий, с помощью которого можно решать следующие задачи:

  • управлять пользователями
  • управлять группами
  • управлять альясами sendmail

При добавлении пользователя, сертификаты автоматически добавляются в каталог LDAP.

Несколько скриншотов:

Взять можно здесь.Настройка вся в файле конфигурации.Система работает естественно с глюками :))Планирую в дальнейшем добавить полную поддержку sendmail, а также более упрощеный вариант управления служб DNS и DHCP.

Небольшая информация о клиентских программах.

  • The Bat! версии 2.11.Возможно столкнетесь с проблемами подключения к серверу LDAP. Не понимает протокол LdapV3 и так же не работает по протоколу ldaps:///.Для включения поддержки протокола LdapV2 определите в конфигурационном файле slapd.conf опцию: 'allow bind_v2'
  • Thunderbird версии 0.7 (win32).Работает по протоколу ldaps:///, понимает LdapV3, удобный поиск адресов в базе LDAP (достаточно ввести пробел и появляются адреса).
  • Outlook Express версии 6.00.3790Работает по протоколу ldaps:///, понимает LdapV3, не удобный поиск адресов в базе LDAP.

www.mianet.ru

Корпоративная почта с Tunderbird и LDAP адресная книга

Имеется парк в 50 машин, которые обслуживает CDS - файлопомойка, чатик, почта и т.п. Разговор пойдёт о почте. У пользователей разный уровень компьютерной грамотности и обновлять почтовую книгу в почтовом клиенте Thunderbird - значит делать это вручную. Но адреса уже хранятся в LDAP, значит осталось только к ним подключиться!Для этого требуется следующая последовательность действий:

Заходим в адресную книгу ThunderbirdФайл -> Создать -> Каталог LDAP...Вкладка "Основное"
  • Название - произвольное. Я назвал "Адресная книга LDAP"
  • Имя сервера - имя (можно и FQDN) LDAP сервера в сети, при условии, что у вас настроен DNS сервер, либо IP адрес
  • Корневой элемент (Base DN) - ou=Users,ou=Mail,ou=Services,dc=calculate
  • Порт- стандартный порт 389 (если Вы ничего не изменяли)
  • Имя пользователя (Bind DN) - ou=Users,ou=Mail,ou=Services,dc=calculate

Корневой элемент и Имя пользователя, как и пароль для подключения берётся из файла /var/lib/calculate/calculate.ldap раздел [mail].

Адресная книга показывает адреса только после поиска. Для отображения всех адресов задаём в поиске символ @.Для поиска требуется указать пароль и, желательно, его сохранить, чтобы в дальнейшем он не запрашивался вновь. Хочу заметить, что зная пароль можно "натворить дел", и что пароль сохраняется в клиенте, где его в дальнейшем можно просмотреть.

В процессе написания нового письма удобно включить "Панель контактов F9", выбрать из выпадающего списка Адресную книгу (в моём случае "Адресная книга LDAP") и использовать поиск. После нахождения требуемого адреса(ов) можно использовать двойной клик, перетягивание, кнопки "Кому" (для добавления в поле "Кому"), "Копия", "Скрытая копия" для добавления адресатов в соответствующие поля.

Для автоподстановки адресата (без "Панель контактов F9") в поле по совпадению первых букв ФИО или email выставить:Настройка -> Составление -> Вкладка Адресация -> Автодополнение адресов -> Сервер каталогов "Адресная книга LDAP"

P.S. На Windows машинах при поиске по маске @ отображаются как почтовые адреса, так и почтовые группы, а вот мой CLD почему-то отображает только почтовые адреса.P.P.S. На паре машин "слетело" Имя пользователя (Bind DN), хотя на других всё в порядке. Пока не понял почему.

www.calculate-linux.org

Адресная книга на LDAP за пять минут

Взято: http://www.linuxcenter.ru/lib/articles/soft/address_book_ldap.phtml

Эта шпаргалка не претендует на какую либо замену официальной документаци. RTFM – рулез форева, однако сие творение позволит быстро настроить и запустить собственно адресную книгу общего пользования – штуку довольно удобную. Ну а дальше уже можно обвешать все это дело разными спецфигнями, типа авторизации etc.

 

Итак, Steb-by-step lamers LDAP adresbook guide :-) (шутка)

 

Качаем с www.openldap.org собственно LDAP сервер. Если хотите в качестве backenda BerkleyDB, тогда качаем и его (www.sleepycat.com) Надоть версию 4. Кого устроит gdbm – берем его. Меня устроило – ибо он у меня уже был :). Итак, считаем, DB установлен. OpenLDAP.tar.gz лежит в /usr/src. Идем туда.

tar -zxvf ./OpenLDAP.tar.gz

cd OpenLDAP

./configure –help > conf.help

читаем получившийся файл, выбираем опции по вкусу

./configure

у меня было:

./configure –with-prefix=/usr/local/openldap --enable-bdb=no --enable-ldbm --with-ldbm-api=gdbm –enable-debug

БерклейДБ запретил (он включен по умолчанию), ldbm разрешил, без последнего демон не будет писать логи.

make depend

make

make test

su - root -c make install

Идем в /usr/local/openldap/etc, редактируем slapd.conf Для адресной книги у меня

подключены три схемы:

include /usr/local/openldap/schema/core.schema

include /usr/local/openldap/schema/cosine.schema

include /usr/local/openldap/schema/inetorgperson.schema

затем обязательно надо сказать:

allow bind_v2 – по умолчанию поддерживается протокол V3, а на сколько я понял , ни мышь, ни мозила по нему работать не умеют. Впрочем это мое имхо, если я не прав – поправьте.

pdfile /var/lock/slapd.pid

argsfile /var/lock/slapd.args

loglevel -1 -в лог пишется ВСЯ отладочная информация.

database ldbm

suffix “o=MyOrganization,c=ru” - вместо MyOrganization поставьте, ну скажем, аббревиатуру своей.

rootdn “cn=admin, o=MyOrganization,c=ru ” - фактически – учетная звпись администратора.

rootpw MyZuperSecretPassword – его пароль.

directory /usr/local/openldap/var/openldap-data - каталог, где буде база храниться.

index default pres, eq

Все, запускаем сервер -

/usr/local/openldap/sbin/slapd

Смотрим лог – в конце должно стоять что-то типа daemon started. Ага, потираем руки, идем пить пиво.

Напимшись, делаем базу: создаем пустой текстовый файл

cd /usr/local/openldap/var/openldap-data

touch mybase.ldif

dn: o:myorganization,c=ru ; Описываем уникальный ключ корневого каталога

objectclass: dcobject ;Указываем, какие классы объектов доступны (т.е атрибуты каких

objectclass: organization ;классов можно описывать для этого каталога

o: myorganization ; Собственно описываем атрибуты

dc: myorganization ;o и c – сокращение атрибутов organization и country

 

dn: ou=users,o=sngi,c=ru

ou: users

objectclass: top ;указывает на родительские объекты (?)

objectclass: organizationalunit ;дочерний объект от organization

 

dn: cn=John S Doe,ou=users,o=myorganization,c=ru

objectclass:top

objectclass: organizationalperson

objectclass: inetorgperson

cn: John Doe ;Общее имя – их может быть несколько, тогда для кажлого – новая строка

mail: [email protected]

gn: John ; givenname - Имя

sn: Doe ; surname - Фамилия

 

Таким образом мы будем иметь следующую структуру каталогов:

корневой: myorganization.ru (/)

в корневом пока один: users.myorganization.ru (/users)

в users один пользователь: djohn doe.users.myorganization.ru (/users/john doe)

если вы не хотите пихать всех в одну структурную единицу – создайте для каждого отдела свою:

dn: ou=cooladmin,o=sngi,c=ru

ou: cooladmin

objectclass: top ;указывает на родительские объекты (?)

objectclass: organizationalunit ;дочерний объект от organization

 

Теперь собственно создадим базу:

slapadd -f ./mybase.ldif -D “cn=admin.o=myorganization,c=ru” -W

-ппосле ключа -D идет УЗ админа, которую вы прописали в конфе

-W – запрос пароля, указанного там-же

Проверим:

ldapsearch -x -b “o=sngi,c=ru” “(objectclass=*)” -P 2

последнеий ключ -указываем протокол v2 (иначе Bat, например, не работает)

 

Можно проверить Bat – создаем новую книгу, на вкладке LDAP прописываем имя или адрес LDAP сервера, в базе поиска указываем o=myorganization,c=ru

Жмем Ок и F7. Вводим в поле e-mail @. После некоторого раздумья получим адын результат.

Все. Готово.

PS. Русские символы хранятся в базе в base64 кодировке:

givenName::0JTQvNC40YLRgNC40Lk= -Например в таком виде надо указывать в ldif-файле имя Дмитрий.

!обратите внимание на двойное двоеточие после наименование аттрибута – оно указывает как раз на то, что он base64 закодирован.

WBR, DebosH.

www.mianet.ru