Понадобилась общая адресная книга в небольшой сети без домена, основной почтовый клиент Mozilla Thunderbird. Решено было использовать OpenLDAP для этих целей.
Имеем минимально настроенный сервер с CentOS7.
Приступаем к установке и настройке OpenLDAP. Устанавливаем пакеты openldap и migrationtools:
yum install -y openldap* migrationtools
Создаем пароль администратора LDAP:
slappasswd
New password:
Re-enter new password:
Получаем пароль в зашифрованном виде – {SSHA}bHSiwuPJEypHS6z***2Uy7M69sQjmkPL, сохраняем в блокноте.
Меняем настройки конфигурационного файла:
cd /etc/openldap/slapd.d/cn=config mcedit olcDatabase={2}hdb.ldif
Первым делом меняем параметры “olcSuffix” и “olcRootDN” на свои. Добавляем три строчки в файл (“olcRootPW” используем сохраненный ранее зашифрованный пароль администратора):
olcRootPW: {SSHA}bHSiwuPJEypHS6z***2Uy7M69sQjmkPL olcTLSCertificateFile: /etc/pki/tls/certs/cheminldap.pem olcTLSCertificateKeyFile: /etc/pki/tls/certs/cheminldapkey.pem
Изменяем конфигурацию еще одного файла:
mcedit olcDatabase={1}monitor.ldif olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadmin,dc=chemin,dc=local" read by * none
Ранее, в конфигурацию были добавлены пути к сертификатам, сгенерируем их (сроком на 10 лет):
openssl req -new -x509 -nodes -out /etc/pki/tls/certs/cheminldap.pem -keyout /etc/pki/tls/certs/cheminldapkey.pem -days 3650
Вводим свои данные при генерации сертификата: Country Name (2 letter code) [XX]:RU State or Province Name (full name) []:KKR Locality Name (eg, city) [Default City]:Krasnodar Organization Name (eg, company) [Default Company Ltd]:Chemical Industry LLC Organizational Unit Name (eg, section) []:Office Common Name (eg, your name or your server's hostname) []:ldap.chemin.local Email Address []:sa@chemin.ru
Проверяем наличие сертификатов в папке /etc/pki/tls/certs/:
ll /etc/pki/tls/certs/*.pem
Проверяем конфигурацию:
slaptest -u
Ошибки “checksum” можно пропустить.
Включаем и запускаем сервис:
systemctl start slapd systemctl enable slapd
Проверка:
netstat -lt | grep ldap
Конфигурируем LDAP Database. Копируем “Sample Database” файл конфигурации и назначаем права к нему:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown -R ldap:ldap /var/lib/ldap/
Добавляем “LDAP Schemas”
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
Создаем базу объектов OpenLDAP, используя установленный ранее пакет “migrationtools”. Меняем настройки файла “migrate_common.ph”
cd /usr/share/migrationtools/ mcedit migrate_common.ph
Строка 71 – свое имя домена: $DEFAULT_MAIL_DOMAIN = “chemin.local”;
Строка 74 свое имя базы $DEFAULT_BASE = “dc=chemin,dc=local”;
Строка 90 включаем $EXTENDED_SCHEMA = 1;
Сохраняем файл.
Генерируем base.ldif файл:
touch /root/base.ldif
Вставляем свои данные в этот файл:
mcedit /root/base.ldif
Создадим локального пользователя:
useradd sa echo "redhat" | passwd --stdin sa
Filter out these user from /etc/passwd to another file:
grep ":10[0-9][0-9]" /etc/passwd > /root/passwd
Filter out user group from /etc/group to another file:
grep ":10[0-9][0-9]" /etc/group > /root/group
Конвертируем файл локальных пользователей в LDAP Data Interchange Format (LDIF). Генерируем ldif файл для пользователей
./migrate_passwd.pl /root/passwd /root/users.ldif
Генерируем ldif файл для групп
./migrate_group.pl /root/group /root/groups.ldif
Импортируем эти LDIF-файлы в LDAP Database:
ldapadd -x -W -D "cn=ldapadmin,dc=chemin,dc=local" -f /root/base.ldif ldapadd -x -W -D "cn=ldapadmin,dc=chemin,dc=local" -f /root/users.ldif ldapadd -x -W -D "cn=ldapadmin,dc=chemin,dc=local" -f /root/groups.ldif
Тест конфигурации:
ldapsearch -x cn=sa -b dc=chemin,dc=local
Если не отключали – сконфигурируем файервол. Добавим порты ldap:
firewall-cmd --permanent --add-port=389/tcp firewall-cmd --permanent --add-port=636/tcp firewall-cmd --permanent --add-port=9830/tcp
Перезапуск файервола:
firewall-cmd --reload
Для удобства администрирования используется утилита LDAPAdmin в Windows. Параметры подключения к LDAP:
Все действия с учетными записями и группами можно производить из этой утилиты:
Подключим адресную книгу в почтовик
Фильтруем поиск по mail
Вводим символ @ в строке поиска и видим все записи LDAP-сервера, у которых прописан e-mail