SCROLL
Среднее время на прочтение: 4 мин.

Создаем адресную книгу используя OpenLDAP на Debian

Понадобилось на работе организовать корпоративную адресную книгу, простую в содержании, легко редактируемую и чтобы ее можно было использовать в почтовых клиентах пользователей (MS Outlook, Mozilla Thunderbird).

 

JUQwJUEwJUQwJUI1JUQwJUIwJUQwJUJCJUQwJUI4JUQwJUI3JUQwJUJFJUQwJUIyJUQwJUIwJUQxJTgyJUQxJThDJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQxJTg3JUQxJTgzJTIwJUQxJTgwJUQwJUI1JUQxJTg4JUQwJUI4JUQwJUJCJTIwJUQxJTgxJTIwJUQwJUJGJUQwJUJFJUQwJUJDJUQwJUJFJUQxJTg5JUQxJThDJUQxJThFJTIwT3BlbkxEQVAlMjAlRDAlQjglMjAlRDAlQjIlRDElODElRDAlQjUlMjAlRDAlQkQlRDAlQjglRDAlQjYlRDAlQjUlMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDElOEIlRDAlQjIlRDAlQjAlRDAlQjUlRDAlQkMlRDAlQkUlRDAlQjUlMjAlRDAlQjElRDElODMlRDAlQjQlRDAlQjUlRDElODIlMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQjQlRDAlQkUlRDAlQkMlRDAlQjUlRDAlQkQlRDAlQjAlQzIlQTBqYWtvbmRhLmxvY2FsLg==

 

Установка OpenLDAP

Обновляем информацию о репозиториях и обновляем установленные пакеты:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get update && sudo apt-get upgrade -y

 

JUQwJUEzJUQwJUJBJUQwJUIwJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwRlFETiVDMiVBMChGdWxseSUyMFF1YWxpZmllZCUyMERvbWFpbiUyME5hbWUpJUMyJUEwJUQwJUI4JUQwJUJDJUQxJThGJTIwJUQxJTgxJUQwJUI4JUQxJTgxJUQxJTgyJUQwJUI1JUQwJUJDJUQxJThCJTJDJTIwJUQwJUIyJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUI1JUMyJUEwJTJGZXRjJTJGaG9zdG5hbWUlM0E=

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
debian.jakonda.local
debian.jakonda.local
debian.jakonda.local

Файл /etc/hosts приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP хоста:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
127.0.0.1 localhost
192.168.1.10 debian.jakonda.local debian
127.0.0.1 localhost 192.168.1.10 debian.jakonda.local debian
127.0.0.1 localhost
192.168.1.10 debian.jakonda.local debian

 

JUQwJUEzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI4JUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwT3BlbkxEQVAuJTIwJUQwJTkyJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTg2JUQwJUI1JUQxJTgxJUQxJTgxJUQwJUI1JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUI1JTIwJUQwJUIxJUQxJTgzJUQwJUI0JUQwJUI1JUQxJTgyJTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUJGJUQwJUIwJUQxJTgwJUQwJUJFJUQwJUJCJUQxJThGJTIwJUQwJUJFJUQxJTgyJTIwJUQxJTgzJUQxJTg3JUQwJUI1JUQxJTgyJUQwJUJEJUQwJUJFJUQwJUI5JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQwJUI4JUQxJTgxJUQwJUI4JTIwYWRtaW4u

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get install slapd ldap-utils
sudo apt-get install slapd ldap-utils
sudo apt-get install slapd ldap-utils

 

JUQwJTlGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUI4JUQwJUJDJTIwJUQxJTgwJUQwJUIwJUQwJUIxJUQwJUJFJUQxJTgyJUQwJUIwJUQwJUI1JUQxJTgyJTIwJUQwJUJCJUQwJUI4JUMyJUEwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQwJUIwJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUJFJUQwJUIyJTIwc2xhcGQlMkMlMjAlRDAlQjIlRDElOEIlRDAlQkYlRDAlQkUlRDAlQkIlRDAlQkQlRDAlQjglRDAlQkMlMjAlRDAlQkElRDAlQkUlRDAlQkMlRDAlQjAlRDAlQkQlRDAlQjQlRDElODMlM0E=

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo netstat -nap tcp | grep 389
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 926/slapd
tcp6 0 0 :::389 :::* LISTEN 926/slapd
sudo netstat -nap tcp | grep 389 tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 926/slapd tcp6 0 0 :::389 :::* LISTEN 926/slapd
sudo netstat -nap tcp | grep 389

tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 926/slapd
tcp6 0 0 :::389 :::* LISTEN 926/slapd

JUQwJTkyJUQxJTgxJUQwJUI1JTIwJUQwJUJFJUQxJTgyJUQwJUJCJUQwJUI4JUQxJTg3JUQwJUJEJUQwJUJFJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQwJUIwJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUJFJUQwJUIyJTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUIwJTIwJUQwJUI4JTIwJUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTg5JUQwJUI1JUQwJUJEJUQwJUIwLg==

 

Заполнение базы данных OpenLDAP

JUQwJTk0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUIyJTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQxJTgzJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwT3BlbkxEQVAlMjAlRDAlQjIlRDAlQkQlRDAlQkUlRDElODElRDElOEYlRDElODIlRDElODElRDElOEYlMjAlRDAlQkYlRDAlQkUlRDElODElRDElODAlRDAlQjUlRDAlQjQlRDElODElRDElODIlRDAlQjIlRDAlQkUlRDAlQkMlMjBsZGlmJTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJUQwJUJFJUQwJUIyLg==

 

Создадим ldif файл (прим. LDAP.ldif) и описываем в нем ноды для хранения пользователей и групп:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
# Нода пользователей
dn: ou=people,dc=jakonda,dc=local
ou: People
objectClass: top
objectClass: organizationalUnit
description: Users
# Нода групп
dn: ou=groups,dc=jakonda,dc=local
ou: Groups
objectClass: top
objectClass: organizationalUnit
description: Security Groups
# Нода контактов
dn: cn=addressbook,dc=jakonda,dc=local
cn: Addressbook
objectClass: top
objectClass: posixGroup
gidNumber: 1100
description: Address book
# Нода пользователей dn: ou=people,dc=jakonda,dc=local ou: People objectClass: top objectClass: organizationalUnit description: Users # Нода групп dn: ou=groups,dc=jakonda,dc=local ou: Groups objectClass: top objectClass: organizationalUnit description: Security Groups # Нода контактов dn: cn=addressbook,dc=jakonda,dc=local cn: Addressbook objectClass: top objectClass: posixGroup gidNumber: 1100 description: Address book
# Нода пользователей
dn: ou=people,dc=jakonda,dc=local
ou: People
objectClass: top
objectClass: organizationalUnit
description: Users

# Нода групп
dn: ou=groups,dc=jakonda,dc=local
ou: Groups
objectClass: top
objectClass: organizationalUnit
description: Security Groups

# Нода контактов
dn: cn=addressbook,dc=jakonda,dc=local
cn: Addressbook 
objectClass: top 
objectClass: posixGroup 
gidNumber: 1100 
description: Address book

 

JUQwJTk0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJDJTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI1JTIwJUQwJUI4JUQwJUI3JTIwJUQxJTgxJUQwJUJFJUQwJUI3JUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUJFJUQwJUIzJUQwJUJFJUMyJUEwbGRpZiUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiVEMCVCMCVDMiVBMCVEMCVCMiUyMCVEMCVCMSVEMCVCMCVEMCVCNyVEMSU4MyUzQQ==

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ldapadd -x -D cn=admin,dc=jakonda,dc=local -W -f LDAP.ldif
ldapadd -x -D cn=admin,dc=jakonda,dc=local -W -f LDAP.ldif
ldapadd -x -D cn=admin,dc=jakonda,dc=local -W -f LDAP.ldif

 

JUQwJTk0JUQwJUJCJUQxJThGJTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJBJUQwJUI4JTJDJTIwJUQwJUIyJUQxJThCJUQwJUIyJUQwJUI1JUQwJUI0JUQwJUI1JUQwJUJDJTIwJUQwJUI4JUQwJUJEJUQxJTg0JUQwJUJFJUQxJTgwJUQwJUJDJUQwJUIwJUQxJTg2JUQwJUI4JUQxJThFJTNB

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ldapsearch -x -LLL -b dc=jakonda,dc=local
dn: ou=people,dc=jakonda,dc=local
ou: People
objectClass: top
objectClass: organizationalUnit
description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LDQtNGA0LXRgdCw0YLQvtCyINC00LvRjyDQsNC00YDQtdGB0L3QvtC5INC60L3QuNCz0Lg=
dn: ou=groups,dc=jakonda,dc=local
ou: Groups
objectClass: top
objectClass: organizationalUnit
description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LPRgNGD0L/Qvw==
dn: cn=addressbook,dc=jakonda,dc=local
cn: Addressbook
objectClass: top
objectClass: posixGroup
gidNumber: 1100
description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LDQtNGA0LXRgdCw0YLQvtCy
ldapsearch -x -LLL -b dc=jakonda,dc=local dn: ou=people,dc=jakonda,dc=local ou: People objectClass: top objectClass: organizationalUnit description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LDQtNGA0LXRgdCw0YLQvtCyINC00LvRjyDQsNC00YDQtdGB0L3QvtC5INC60L3QuNCz0Lg= dn: ou=groups,dc=jakonda,dc=local ou: Groups objectClass: top objectClass: organizationalUnit description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LPRgNGD0L/Qvw== dn: cn=addressbook,dc=jakonda,dc=local cn: Addressbook objectClass: top objectClass: posixGroup gidNumber: 1100 description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LDQtNGA0LXRgdCw0YLQvtCy
ldapsearch -x -LLL -b dc=jakonda,dc=local 

dn: ou=people,dc=jakonda,dc=local
ou: People
objectClass: top
objectClass: organizationalUnit
description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LDQtNGA0LXRgdCw0YLQvtCyINC00LvRjyDQsNC00YDQtdGB0L3QvtC5INC60L3QuNCz0Lg=

dn: ou=groups,dc=jakonda,dc=local
ou: Groups
objectClass: top
objectClass: organizationalUnit
description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LPRgNGD0L/Qvw==

dn: cn=addressbook,dc=jakonda,dc=local
cn: Addressbook 
objectClass: top 
objectClass: posixGroup 
gidNumber: 1100 
description:: 0KDQsNGB0LzQtdGJ0LXQvdC40LUg0LDQtNGA0LXRgdCw0YLQvtCy

 

Добавим пользователя (для примера) jakonda. Создадим ldif файл со следующим содержанием:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dn: uid=jakonda,ou=people,dc=jakonda,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
uid: jakonda
sn: Иванов
givenName: Иван
cn: Иванов Иван Иванович
displayName: Иванов Иван Иванович
mail: admin@jakondo.ru
gidNumber: 1100
uidNumber: 1100
userPassword: Aa1234567
loginShell: /bin/bash
homeDirectory: /home/jakonda
dn: uid=jakonda,ou=people,dc=jakonda,dc=local objectClass: inetOrgPerson objectClass: posixAccount uid: jakonda sn: Иванов givenName: Иван cn: Иванов Иван Иванович displayName: Иванов Иван Иванович mail: admin@jakondo.ru gidNumber: 1100 uidNumber: 1100 userPassword: Aa1234567 loginShell: /bin/bash homeDirectory: /home/jakonda
dn: uid=jakonda,ou=people,dc=jakonda,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
uid: jakonda
sn: Иванов
givenName: Иван
cn: Иванов Иван Иванович
displayName: Иванов Иван Иванович
mail: admin@jakondo.ru
gidNumber: 1100
uidNumber: 1100
userPassword: Aa1234567
loginShell: /bin/bash
homeDirectory: /home/jakonda

JTVCc3RleHRib3glMjBpZCUzRCVFMiU4MCU5OXdhcm5pbmclRTIlODAlOTklNUQlRDAlOTglRDAlOUQlRDAlQTQlRDAlOUUlRDAlQTAlRDAlOUMlRDAlOTAlRDAlQTYlRDAlOTglRDAlQUYuJTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJTIwdWlkJTIwJUQwJUI4JTIwZ2lkJTIwJUQwJUIyJTIwJUQwJUIyJUQwJUIwJUQxJTg4JUQwJUI1JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQxJTgyJUQwJUIwJUQwJUJCJUQwJUJFJUQwJUIzJUQwJUI1JTIwJUQwJUJEJUQwJUI1JTIwJUQwJUI0JUQwJUJFJUQwJUJCJUQwJUI2JUQwJUJEJUQxJThCJTIwJUQxJTgxJUQwJUJFJUQwJUIyJUQwJUJGJUQwJUIwJUQwJUI0JUQwJUIwJUQxJTgyJUQxJThDJTIwJUQxJTgxJTIwJUQwJUJCJUQwJUJFJUQwJUJBJUQwJUIwJUQwJUJCJUQxJThDJUQwJUJEJUQxJThCJUQwJUJDJUQwJUI4JTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJUQwJUJDJUQwJUI4LiUyMCVEMCU5OCVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMSU4MyVEMCVCOSVEMSU4MiVEMCVCNSUyMCVEMCVCNCVEMCVCOCVEMCVCMCVEMCVCRiVEMCVCMCVEMCVCNyVEMCVCRSVEMCVCRCUyMCVEMCVCMSVEMCVCRSVEMCVCQiVEMSU4QyVEMSU4OCVEMCVCOCVEMSU4NSUyMCVEMSU4NyVEMCVCOCVEMSU4MSVEMCVCNSVEMCVCQiUyQyUyMCVEMCVCRCVEMCVCMCVEMSU4NyVEMCVCOCVEMCVCRCVEMCVCMCVEMSU4RSVEMSU4OSVEMCVCOCVEMCVCOSVEMSU4MSVEMSU4RiUyMCVEMCVCRCVEMCVCMCVEMCVCRiVEMSU4MCVEMCVCOCVEMCVCQyVEMCVCNSVEMSU4MCUyMCVEMSU4MSUyMDEwMDAuJTVCJTJGc3RleHRib3glNUQ=

 

Добавим данные из созданного ldif файла в базу:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ldapadd -x -D cn=admin,dc=jakonda,dc=local -W -f user.ldif
ldapadd -x -D cn=admin,dc=jakonda,dc=local -W -f user.ldif
ldapadd -x -D cn=admin,dc=jakonda,dc=local -W -f user.ldif

 

Проверим добавился ли пользователь в базу, выполним команду:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ldapsearch -x -LLL -b dc=jakonda,dc=local 'uid=jakonda' cn gidNumber
dn: uid=jakonda,ou=people,dc=example,dc=com
cn:: 0JvQuNCy0LXQvdGG0L7QsiDQldCy0LPQtdC90LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw==
gidNumber: 1100
ldapsearch -x -LLL -b dc=jakonda,dc=local 'uid=jakonda' cn gidNumber dn: uid=jakonda,ou=people,dc=example,dc=com cn:: 0JvQuNCy0LXQvdGG0L7QsiDQldCy0LPQtdC90LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw== gidNumber: 1100
ldapsearch -x -LLL -b dc=jakonda,dc=local 'uid=jakonda' cn gidNumber

dn: uid=jakonda,ou=people,dc=example,dc=com
cn:: 0JvQuNCy0LXQvdGG0L7QsiDQldCy0LPQtdC90LjQuSDQndC40LrQvtC70LDQtdCy0LjRhw==
gidNumber: 1100

 

JUQwJTlEJUQwJUIwJTIwJUQxJThEJUQxJTgyJUQwJUJFJUQwJUJDJTIwJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJTIwT3BlbkxEQVAlMjAlRDAlQjMlRDAlQkUlRDElODIlRDAlQkUlRDAlQjIlMjAlRDAlQkElMjAlRDElODAlRDAlQjAlRDAlQjElRDAlQkUlRDElODIlRDAlQjUlMjAlRDAlQjIlMjAlRDAlQkElRDAlQjAlRDElODclRDAlQjUlRDElODElRDElODIlRDAlQjIlRDAlQjUlMjAlRDAlQjAlRDAlQjQlRDElODAlRDAlQjUlRDElODElRDAlQkQlRDAlQkUlRDAlQjklMjAlRDAlQkElRDAlQkQlRDAlQjglRDAlQjMlRDAlQjglMjAlRDAlQjQlRDAlQkIlRDElOEYlMjAlRDAlQkYlRDAlQkUlRDElODclRDElODIlRDAlQkUlRDAlQjIlRDElOEIlRDElODUlMjAlRDAlQkElRDAlQkIlRDAlQjglRDAlQjUlRDAlQkQlRDElODIlRDAlQkUlRDAlQjIuJTIwJUQwJTlEJUQwJUI4JUQwJUI2JUQwJUI1JTIwJUQxJTgwJUQwJUIwJUQxJTgxJUQxJTgxJUQwJUJDJUQwJUJFJUQxJTgyJUQxJTgwJUQwJUI4JUQwJUJDJTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUI5JTIwTERBUCUyQyUyMCVEMCVCMiUyMCVEMSU4NyVEMCVCMCVEMSU4MSVEMSU4MiVEMCVCRCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCOCUyMCVEMCVCRiVEMSU4MCVEMCVCOCUyMCVEMCVCNCVEMCVCRSVEMCVCMSVEMCVCMCVEMCVCMiVEMCVCQiVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCOCUyMCVEMCVCRCVEMCVCRSVEMCVCMiVEMSU4QiVEMSU4NSUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCOSUyQyUyMCVEMCVCMyVEMSU4MCVEMSU4MyVEMCVCRiVEMCVCRiUyQyUyMCVEMCVCOCVEMCVCNyVEMCVCQyVEMCVCNSVEMCVCRCVEMCVCNSVEMCVCRCVEMCVCOCVEMCVCNSUyMCVEMCVCNCVEMCVCMCVEMCVCRCVEMCVCRCVEMSU4QiVEMSU4NSUyMCVEMCVCMiUyMCVEMSU4MyVEMCVCNiVEMCVCNSUyMCVEMCVCOCVEMCVCQyVEMCVCNSVEMSU4RSVEMSU4OSVEMCVCOCVEMSU4NSVEMSU4MSVEMSU4RiUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMSU4RiVEMSU4NSUyMCVEMCVCOCUyMCVEMSU4Mi4lRDAlQjQuLiUyMCVEMCU5OCVEMSU4MSVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMSU4QyUyMCVEMCVCNCVEMCVCQiVEMSU4RiUyMCVEMSU4RCVEMSU4MiVEMCVCOCVEMSU4NSUyMCVEMSU4NiVEMCVCNSVEMCVCQiVEMCVCNSVEMCVCOSUyMCVEMCVCQyVEMSU4QiUyMCVEMCVCMSVEMSU4MyVEMCVCNCVEMCVCNSVEMCVCQyUyMHBocExEQVBhZG1pbi4=

 

Установка и настройка phpLDAPadmin

Для работы phpLDAPadmin установим пакет lamp-server:

sudo tasksel install lamp-server

В ходе установки lamp-server, будет запрос создания пароля для пользователя root для MySQL (хоть мы его и не будем использовать)

Теперь устанавливаем phpLDAPadmin:

sudo apt-get install phpldapadmin

JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQwJUJDJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQxJTgzJUMyJUEwcGhwTERBUGFkbWluLiUyMCVEMCU5RSVEMSU4MiVEMSU4MCVEMCVCNSVEMCVCNCVEMCVCMCVEMCVCQSVEMSU4MiVEMCVCOCVEMSU4MCVEMSU4MyVEMCVCNSVEMCVCQyUyMCVEMCVCQSVEMCVCRSVEMCVCRCVEMSU4NCVEMCVCOCVEMCVCMyVEMSU4MyVEMSU4MCVEMCVCMCVEMSU4NiVEMCVCOCVEMCVCRSVEMCVCRCVEMCVCRCVEMSU4QiVEMCVCOSUyMCVEMSU4NCVEMCVCMCVEMCVCOSVEMCVCQiUzQQ==

sudo nano /etc/phpldapadmin/config.php

JUQwJTkyJTIwJUQwJUI3JUQwJUJEJUQwJUIwJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQxJThGJUQxJTg1JTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQwJUIwJUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUJEJUQwJUI4JUQwJUI2JUQwJUI1JTIwJUQwJUIyJUQwJUJDJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJFJTIwZGMlM0RleGFtcGxlJTJDZGMlM0Rjb20lMjAlRDAlQkYlRDAlQkUlRDAlQjQlRDElODElRDElODIlRDAlQjAlRDAlQjIlRDAlQkIlRDElOEYlRDAlQjUlRDAlQkMlMjAlRDElODElRDAlQjIlRDAlQkUlRDAlQjUlMjAlRDAlQkQlRDAlQjAlRDAlQjclRDAlQjIlRDAlQjAlRDAlQkQlRDAlQjglRDAlQjUlMjAlRDAlQjQlRDAlQkUlRDAlQkMlRDAlQjUlRDAlQkQlRDAlQjAlMjAoJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDLiUyMGRjJTNEamFrb25kbyUyQ2RjJTNEcnUp

$servers->setValue('server','base',array('dc=example,dc=com'));
$servers->setValue('login','bind_id','cn=admin,dc=example,dc=com');

JUQwJTlGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JTIwJUQxJTgyJUQwJUJFJUQwJUIzJUQwJUJFJTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQwJUJGJUQwJUJFJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUI4JUQwJUJCJUQwJUI4JTIwJUQwJUJBJUQwJUJFJUQwJUJEJUQxJTg0JUQwJUI4JUQwJUIzJUQxJTgzJUQxJTgwJUQwJUIwJUQxJTg2JUQwJUI4JUQwJUJFJUQwJUJEJUQwJUJEJUQxJThCJUQwJUI5JTIwJUQxJTg0JUQwJUIwJUQwJUI5JUQwJUJCJTJDJTIwJUQwJUJGJUQwJUI1JUQxJTgwJUQwJUI1JUQwJUI3JUQwJUIwJUQwJUJGJUQxJTgzJUQxJTgxJUQwJUJBJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQwJUI2JUQwJUIxJUQxJTgzJTIwQXBhY2gyJTNB

sudo service apache2 restart

Через любой удобный браузер заходим на phpLDAPadmin

http://192.168.0.2/phpldapadmin/

Авторизуемся используюя логин cn=admin,dc=example,dc=com и пароль который вы задавали на учетную запись admin.Вот в таком виде мы увидим нашу LDAP базу данных. Достаточно все просто и понятно в интерфейсе.

JUQwJUEyJUQwJUI1JUQwJUJGJUQwJUI1JUQxJTgwJUQxJThDJTIwJUQwJUJCJUQwJUI1JUQwJUIzJUQwJUJBJUQwJUJFJTIwJUQwJUI4JTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUJFJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQxJTgyJUQxJThDJTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUI5JTIwTERBUCUyMCVEMSU4MSUyMCVEMCVCRiVEMCVCRSVEMCVCQyVEMCVCRSVEMSU4OSVEMSU4QyVEMSU4RSUyMCVEMCU5MiVEMCVCNSVEMCVCMS0lRDAlQjglRDAlQkQlRDElODIlRDAlQjUlRDElODAlRDElODQlRDAlQjUlRDAlQjklRDElODElRDAlQjAuJTIwJUQwJTkyJTIwcGhwTERBUGFkbWluJTIwJUQwJUIyJUQxJTgxJUQwJUI1JTIwJUQwJUI4JUQwJUJEJUQxJTgyJUQxJTgzJUQwJUI4JUQxJTgyJUQwJUI4JUQwJUIyJUQwJUJEJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQwJUJEJUQxJThGJUQxJTgyJUQwJUJEJUQwJUJFJTIwJUQwJUI4JTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQxJTgyJUQxJThDJUQxJTgxJUQxJThGJTIwJUQwJUIyJTIwJUQxJTgzJUQwJUJGJUQxJTgwJUQwJUIwJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI4JTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUI5JTIwJUQwJUJEJUQwJUI1JTIwJUQwJUI0JUQwJUJFJUQwJUJCJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQxJTgxJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQxJTgyJUQxJTgwJUQxJTgzJUQwJUI0JUQwJUIwLiUyMCVEMCVBMCVEMCVCMCVEMCVCNyUyMCVEMCVCMiVEMSU4MSVEMCVCNSUyMCVEMCVCMyVEMCVCRSVEMSU4MiVEMCVCRSVEMCVCMiVEMCVCRSUyQyUyMCVEMSU4MiVEMCVCRSUyMCVEMCVCRSVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCQiVEMCVCRSVEMSU4MSVEMSU4QyUyMCVEMCVCRCVEMCVCMCVEMSU4MSVEMSU4MiVEMSU4MCVEMCVCRSVEMCVCOCVEMSU4MiVEMSU4QyUyMCVEMCVCRiVEMCVCRSVEMSU4NyVEMSU4MiVEMCVCRSVEMCVCMiVEMSU4QiVEMCVCNSUyMCVEMCVCQSVEMCVCQiVEMCVCOCVEMCVCNSVEMCVCRCVEMSU4MiVEMSU4QiUyMCVEMCVCRCVEMCVCMCUyMCVEMCVCRiVEMCVCRSVEMCVCQiVEMSU4QyVEMCVCNyVEMCVCRSVEMCVCMiVEMCVCMCVEMSU4MiVEMCVCNSVEMCVCQiVEMSU4QyVEMSU4MSVEMCVCQSVEMCVCOCVEMSU4NSUyMCVEMCU5RiVEMCU5QSUyQyUyMCVEMCVCRCVEMCVCOCVEMCVCNiVEMCVCNSUyMCVEMSU4MCVEMCVCMCVEMSU4MSVEMSU4MSVEMCVCQyVEMCVCRSVEMSU4MiVEMSU4MCVEMCVCOCVEMCVCQyUyMCVEMCVCQSVEMCVCMCVEMCVCQSUyMCVEMSU4RCVEMSU4MiVEMCVCRSUyMCVEMCVCQyVEMCVCRSVEMCVCNiVEMCVCRCVEMCVCRSUyMCVEMSU4MSVEMCVCNCVEMCVCNSVEMCVCQiVEMCVCMCVEMSU4MiVEMSU4Qy4=

 

Настройка адресной книги на почтовых клиентах Mozilla Thunderbird и MS Outlook 2010

Настройка Mozilla Thunderbird. Переходим в ИнструментыНастройкиСоставление — вкладка Адресация. Отмечаем галочкой Сервере каталогов и нажимаем Изменить каталоги…

JUQwJTlEJUQwJUIwJUQwJUI2JUQwJUI4JUQwJUJDJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJTk0JUQwJUJFJUQwJUIxJUQwJUIwJUQwJUIyJUQwJUI4JUQxJTgyJUQxJThD

Во вкладке Основное заполняем форму по примеру ниже, только подставляя свой данные

Во вкладке Дополнительно в поле Фильтр поиска пишем (objectclass=*). Нажимаем ОК.

Теперь при вводе адресата в поле Кому, нам будут выдаваться найденные значения на LDAP сервере.

Настройка MS Outlook 2010. Переходим ФайлСведенияНастройка учетных записей.

 

Переходим во вкладку Адресные книги и нажимаем Создать…

Выбираем Служба каталогов интернета (LDAP) и нажимаем Далее. Заполняем форму по аналогии как представлено ниже, только подставляем свои данные. Нажимаем Другие настройки…

JUQwJTkyJUQwJUJFJTIwJUQwJUIyJUQwJUJBJUQwJUJCJUQwJUIwJUQwJUI0JUQwJUJBJUQwJUI1JTIwJUQwJTlGJUQwJUJFJUQwJUI0JUQwJUJBJUQwJUJCJUQxJThFJUQxJTg3JUQwJUI1JUQwJUJEJUQwJUI4JUQwJUI1JTJDJTIwJUQxJTgzJUQwJUJBJUQwJUIwJUQwJUI3JUQxJThCJUQwJUIyJUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUI2JUQwJUI1JUQwJUJCJUQwJUIwJUQwJUI1JUQwJUJDJUQwJUJFJUQwJUI1JTIwJUQwJUJFJUQxJTgyJUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQwJUI2JUQwJUIwJUQwJUI1JUQwJUJDJUQwJUJFJUQwJUI1JTIwJUQwJUI4JUQwJUJDJUQxJThGJTJDJTIwJUQwJUJEJUQwJUJFJUQwJUJDJUQwJUI1JUQxJTgwJTIwJUQwJUJGJUQwJUJFJUQxJTgwJUQxJTgyJUQwJUIwJTIwJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUIyJUQwJUJCJUQxJThGJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQwJUJFLSVEMSU4MyVEMCVCQyVEMCVCRSVEMCVCQiVEMSU4NyVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RS4=

JUQwJTkyJUQwJUJFJTIwJUQwJUIyJUQwJUJBJUQwJUJCJUQwJUIwJUQwJUI0JUQwJUJBJUQwJUI1JTIwJUQwJTlGJUQwJUJFJUQwJUI4JUQxJTgxJUQwJUJBJTJDJTIwJUQwJUJFJUQxJTgyJUQwJUJDJUQwJUI1JUQxJTg3JUQwJUIwJUQwJUI1JUQwJUJDJTIwJUQwJUJGJUQxJTgzJUQwJUJEJUQwJUJBJUQxJTgyJTIwJUQwJTk0JUQxJTgwJUQxJTgzJUQwJUIzJUQwJUIwJUQxJThGJTIwJUQwJUI4JTIwJUQwJUJGJUQwJUI4JUQxJTg4JUQwJUI1JUQwJUJDJTIwJUQwJUIyJTIwJUQwJUJDJUQwJUJFJUQwJUI1JUQwJUJDJTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQwJUI1JTIwb3UlM0RwZW9wbGUlMkNkYyUzRGV4YW1wbGUlMkNkYyUzRGNvbS4lMjAlRDAlOUQlRDAlQjAlRDAlQjYlRDAlQjglRDAlQkMlRDAlQjAlRDAlQjUlRDAlQkMlMjAlRDAlOUUlRDAlOUEu

Проверяем работу адресной книги. Как видно на картинке ниже, поиск на сервере LDAP проходит успешно.

JUQwJTlEJUQwJUIwJTIwJUQxJThEJUQxJTgyJUQwJUJFJUQwJUJDJTIwJUQwJUIyJUQxJTgxJUQwJUI1JTJDJTIwJUQwJUJDJUQxJThCJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUJFJUQwJUIxJUQxJTgwJUQwJUIwJUQwJUJCJUQwJUI4JTIwJUQwJUJBJUQwJUIwJUQwJUJBJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUJEJUQwJUJFJTIwJUQwJUIxJUQxJThCJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJTIwJUQxJTgwJUQwJUIwJUQwJUI3JUQwJUIyJUQwJUI1JUQxJTgwJUQwJUJEJUQxJTgzJUQxJTgyJUQxJThDJTIwJUQwJUI4JTIwJUQwJUIyJUQwJUJEJUQwJUI1JUQwJUI0JUQxJTgwJUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUIwJUQwJUI0JUQxJTgwJUQwJUI1JUQxJTgxJUQwJUJEJUQxJTgzJUQxJThFJTIwJUQwJUJBJUQwJUJEJUQwJUI4JUQwJUIzJUQxJTgzJTIwJUQwJUJEJUQwJUIwJTIwJUQwJUIxJUQwJUIwJUQwJUI3JUQwJUI1JTIwT3BlbkxEQVAu

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ

Обсуждение

25 комментариев
  • Приветствую, при попытке выполнить команду
    ldapadd -x -D cn=admin,dc=example,dc=com -W -f LDAP.ldif
    и вводе пароля указанно при установке
    sudo apt-get install slapd ldap-utils
    пишет ldap_bind: Invalid credentials (49)
    «20.04.3 LTS (Focal Fossa)»
    Что я делаю не так? Домены везде поменял на свои.

    • Это ответ на комментарий emoxam

      Приветствую,
      Пишет же ошибку — ldap_bind: Invalid credentials (49) проверяй правильность ввода учетных данных для подключения.

      • Это ответ на комментарий Жаконда

        Короче дока старая видимо, надо дергать sudo dpkg-reconfigure slapd.
        А все будут соединятся под админом для поиска конитактов?

        • Это ответ на комментарий emoxam

          Конечно старая, я статью писал в 2017 году.. с того времени я более к OpenLDAP не возвращался.

          Да нет, подключение к LDAP каталогу возможно от любого пользователя.

    • Это ответ на комментарий Игорь

      403 — ошибка доступа, сложно сказать почему, проверяйте что делаете не так по инстуркции.

  • Здравствуйте, а как быть с группами рассылки? В ldap это можно организовать?

    • Это ответ на комментарий Юрий

      Добрый вечер, не могу знать, не было нужды реализовывать это

  • В файле ldif комментарии нужно начинать с символа #, а не //

  • Outlook и адресная книга в OpenLDAP

    victor_sudakov
    December 7th, 2012
    В адресной книге Outlook (не Express) есть такая фича, как просмотр адресов (LDAP address-list-browsing). В русском Outlook в свойствах адресной книги это называется «Включить просмотр (требуется серверная поддержка)». Это когда вызываешь адресную книгу и в ней сразу показывается список всех адресов. Это по умолчанию работает с Exchange Server (duh!) и Communigate Pro (кто бы сомневался).

    Чтобы получить эту функциональность с OpenLDAP в качестве LDAP сервера, последний должен уметь две вещи.

    1. Поддерживать VLV. Для этого в описании базы в slapd.conf надо включить «overlay sssvlv».

    2. Уметь отсортировать выдаваемый результат по аттрибуту cn. И вот это OpenLDAP делать отказывается с ошибкой «LDAPMessage searchResDone(11) inappropriateMatching (serverSort control: No ordering rule)». Потому что атрибут name и унаследованные от него атрибуты (cn, sn и др.) не поддерживают ORDERING. А всего-то надо добавить атрибуту name свойство «ORDERING caseIgnoreOrderingMatch».

    В конфиге это сделать нельзя, т.к. свойства атрибута name зашиты в исходниках. Поэтому патч, после которого адресная книга начинает браузиться:

    — ./openldap-2.4.33/servers/slapd/schema_prep.c.orig 2012-12-07 09:54:56.000000000 +0700
    +++ ./openldap-2.4.33/servers/slapd/schema_prep.c 2012-12-07 09:58:10.000000000 +0700
    @@ -908,6 +908,7 @@
    «DESC ‘RFC4519: common supertype of name attributes’ »
    «EQUALITY caseIgnoreMatch »
    «SUBSTR caseIgnoreSubstringsMatch »
    + «ORDERING caseIgnoreOrderingMatch »
    «SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )»,
    NULL, SLAP_AT_ABSTRACT,
    NULL, NULL,

    Ссылка на обсуждение: http://www.openldap.org/lists/openldap-technical/201212/threads.html#00002

    Outlook по умолчанию делает запрос, который можно представить как
    ldapsearch -E sss=cn ‘(cn=*)’ cn
    что означает: «отсортируй мне выдачу согласно правилу сортировки, которое определено на сервере для атрибута cn». А на сервере для cn никакого правила сортировки не определено, потому что не предусмотрено в описании атрибута в RFC4519, и возникает ошибка.

    Если бы Outlook в запросе сообщал желаемое правило сортировки, по аналогии с
    ldapsearch -E sss=cn:caseIgnoreOrderingMatch ‘(cn=*)’ cn
    то всё работало бы из коробки без модификации стандартной схемы.

  • Вопрос всё ещё актуален ! Не работает быстрый поиск в Outlook 2016, только расширенный . Может быть есть какое то решение ?!

    • Это ответ на комментарий Александр

      Не подскажу т.к. не в курсе как там обстоят дела с Outlook, т.к. 99% клиентов используется Thunderbird, а там все подтягивается на ура

  • Разобрался, с авторизацией оказалось что нужно внимательнее было делать, ошибка в написании была. Как итоге отлично работает в Thunderbird, можно даже по шаблону из phpldapadmin создавать, тогда можно указывать номера телефоном и название организации. А вот в Outlook поиск не проводит вообще… и контакты не отображаются. А начальство интересует именно он, обычные пользователи сидят на мозиле, у них все будет работать, а вот что теперь делать с оутлук …

    • Это ответ на комментарий Дмитрий

      В Outlook тоже все работает, проверено же. Даже описал как настроить. У меня так же часть пользователей сидит на мозиле, а часть на Outlook.

      • Это ответ на комментарий Жаконда

        Пробую и на 14й и на 16 убунте, thunderbird без проблем , отлично отрабатывает, outlook ни в какую не заводится. Он подключается к ldap, но пишет что поиск «поиск не дал результатов». Пожалуйста подскажите как это можно исправить, второй день уже пробую разные варианты… Делал все точно по инструкции. На разных версиях оутлука.

        • Это ответ на комментарий Дмитрий

          Выяснил что он ищет в Outlook только через расширенный поиск. При отправке письма сам не дописывает отправителя, пока не нажимаешь «кому», в момент нажатия этой кнопки он подтягивает полный адрес. У вас работает как положено ?

  • Нашел в чем была ошибка … когда заполнял фаил ldap.ldif то писал в виде:
    // Создание ноды для сохранения пользователей
    dn: ou=people,dc=example,dc=com
    ou: People
    objectClass: top
    objectClass: organizationalUnit
    description: Размещение адресатов

    А нужно было записывать как :
    dn: ou=people,dc=example,dc=com
    ou: People
    objectClass: top
    objectClass: organizationalUnit
    description: Размещение адресатов

    И все корректно добавляется. Получилось всё, но теперь новая проблема… В почтовом клиенте не проходит авторизация…Пользователь admin, в phpmyldap заходит без проблем, из Thunderbird не хочет.

  • Попробовал на ubuntu-14.04.5, так же выдает «ubuntu-14.04.5». Делал точно по инструкции, только dc=example,dc=com заменил на свой домен. Подозреваю что ошибка какая то простая… но выглядит все правильно….

    • Это ответ на комментарий Дмитрий

      Странно, должно все работать, проверено не однократно, попробовать к сожалению сейчас не представляется возможным.

  • Не создаются ноды для хранения данных, Команда «ldapsearch -x -LLL -b dc=example,dc=com» не показывает
    dn: ou=people,dc=example,dc=com
    ou: People
    objectClass: top

    А отображает:

    dn: dc=example,dc=com
    objectClass: top
    objectClass: dcObject
    objectClass: organization
    o: example.com
    dc: example

  • Здравствуйте !!
    Статья супер полезная и содержательная. Встала задача как раз поднятия общей адресной книги в организации, подключиться к LDAP зимбры не вышло, и было принято решение поднять отдельно.
    На этапе «Для начала создадим ноды для хранения пользователей и групп» выдает ошибку «invalid format (line1) entry: «» . Сервер Ubuntu 16 . Пожалуйста объясните как исправить ошибку… очень очень нужно….

    • Это ответ на комментарий Дмитрий

      Добрый день !
      А в чем именно загвоздка то ? Не совсем понятно. Все тестировалось и ставилось на 14.04, там все без ошибок по статье делается.