SOGo: различия между версиями

Материал из ALT Linux Wiki
(не показаны 42 промежуточные версии 10 участников)
Строка 7: Строка 7:
* Лицензия: GPLv2 и LGPLv2
* Лицензия: GPLv2 и LGPLv2


= Возможности =
== Возможности ==
* Общие почтовые папки, календари и адресные книги;
* Общие почтовые папки, календари и адресные книги;
* Веб-интерфейс, аналогичный Outlook Web Access;
* Веб-интерфейс, аналогичный Outlook Web Access;
Строка 19: Строка 19:
{{#ev:youtube|1hcBSB4Kxww}}
{{#ev:youtube|1hcBSB4Kxww}}


= Установка =
== Установка ==


{{Todo|Пока сборка доступна из задания 155169: <source lang="Bash">apt-repo add task 155169 && apt-get update</source>}}
Для установки стабильной версии SOGo (доступна в ветке обновлений p9 и нестабильном репозитории Sisyphus) выполните:


  apt-get install sogo
  apt-get install task-sogo


= Подготовка среды =
(драйвер к PostgreSQL будет установлен автоматически)


== PostgreSQL ==
== Подготовка среды ==
 
=== PostgreSQL ===


Предварительная подготовка к запуску службы согласно [[PostgreSQL]].
Предварительная подготовка к запуску службы согласно [[PostgreSQL]].
Строка 37: Строка 39:
service postgresql restart</source>
service postgresql restart</source>


== Samba DC ==
=== Samba DC ===


Пользователи расположены в домене Active Directory, расположенном на контроллере с [[SambaDC|Samba DC]].
Пользователи расположены в домене Active Directory, расположенном на контроллере с [[SambaDC|Samba DC]].
Строка 45: Строка 47:
Создаём в домене пользователя sogo с паролем Pa$$word:
Создаём в домене пользователя sogo с паролем Pa$$word:


  samba-tool user add sogo
  samba-tool user create sogo


(при запросе дважды ввести пароль).
(при запросе дважды ввести пароль).


== SOGo ==
samba-tool user setexpiry --noexpiry sogo
 
=== SOGo ===


Настраивается на домен {{path|test.alt}}.
Настраивается на домен {{path|test.alt}}.


<!--
<source lang="Bash">service sogo stop
<source lang="Bash">service sogo stop
su - _sogo -s /bin/bash
su - _sogo -s /bin/bash
Строка 58: Строка 63:
defaults write sogod OCSFolderInfoURL "postgresql://sogo@/sogo/sogo_folder_info"
defaults write sogod OCSFolderInfoURL "postgresql://sogo@/sogo/sogo_folder_info"
defaults write sogod OCSSessionsFolderURL "postgresql://sogo@/sogo/sogo_sessions_folder"
defaults write sogod OCSSessionsFolderURL "postgresql://sogo@/sogo/sogo_sessions_folder"
defaults write sogod SOGoEnableEMailAlarms YES
defaults write sogod OCSEMailAlarmsFolderURL "postgresql://sogo@/sogo/sogo_alarms_folder"
defaults write sogod SOGoDraftsFolderName Drafts
defaults write sogod SOGoDraftsFolderName Drafts
defaults write sogod SOGoDraftsFolderName Trash
defaults write sogod SOGoDraftsFolderName Trash
Строка 78: Строка 85:
bindDN = "cn=sogo,cn=Users,DC=test,DC=alt";  
bindDN = "cn=sogo,cn=Users,DC=test,DC=alt";  
bindFields = (sAMAccountName); bindPassword = "Pa$$word";
bindFields = (sAMAccountName); bindPassword = "Pa$$word";
canAuthenticate = YES; displayName = "Public"; hostname = ldap://127.0.0.1:389;
canAuthenticate = YES; displayName = "Public"; hostname = ldaps://127.0.0.1:389;
id = public; isAddressBook = YES;})'
id = public; isAddressBook = YES;})'
mv -f /var/lib/sogo/GNUstep/Defaults/sogod.plist /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults
mv -f /var/lib/sogo/GNUstep/Defaults/sogod.plist /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults
Строка 86: Строка 93:
{{Attention|Служба {{cmd|sogo}} во время настройки должна быть выключена}}
{{Attention|Служба {{cmd|sogo}} во время настройки должна быть выключена}}


{{path|~_sogo/GNUstep/Defaults/.GNUstepDefaults}}
'''Файл {{path|/var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults}}'''
<source lang="xml"><?xml version="1.0" encoding="UTF-8"?>
<source lang="xml"><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
<!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml">
Строка 103: Строка 110:
     <key>SOGoTimeZone</key>
     <key>SOGoTimeZone</key>
     <string>MSK</string>
     <string>MSK</string>
    <key>OCSEMailAlarmsFolderURL</key>
    <string>postgresql://sogo@/sogo/sogo_alarms_folder</string>
    <key>SOGoEnableEMailAlarms</key>
    <string>YES</string>
     <key>SOGoUserSources</key>
     <key>SOGoUserSources</key>
     <array>
     <array>
Строка 127: Строка 138:
             <string>SambaLogin</string>
             <string>SambaLogin</string>
             <key>hostname</key>
             <key>hostname</key>
             <string>ldap://127.0.0.1</string>
             <string>ldaps://127.0.0.1</string>
             <key>id</key>
             <key>id</key>
             <string>sambaLogin</string>
             <string>sambaLogin</string>
Строка 153: Строка 164:
             <string>((NOT isCriticalSystemObject=&apos;TRUE&apos;) AND (mail=&apos;*&apos;) AND (NOT objectClass=contact))</string>
             <string>((NOT isCriticalSystemObject=&apos;TRUE&apos;) AND (mail=&apos;*&apos;) AND (NOT objectClass=contact))</string>
             <key>hostname</key>
             <key>hostname</key>
             <string>ldap://127.0.0.1</string>
             <string>ldaps://127.0.0.1</string>
             <key>id</key>
             <key>id</key>
             <string>sambaShared</string>
             <string>sambaShared</string>
Строка 183: Строка 194:
                 OR (((objectClass=group) AND (gidNumber&gt;=2000)) AND (NOT isCriticalSystemObject=&apos;TRUE&apos;) AND (NOT showInAdvancedViewOnly=&apos;TRUE&apos;)))</string>
                 OR (((objectClass=group) AND (gidNumber&gt;=2000)) AND (NOT isCriticalSystemObject=&apos;TRUE&apos;) AND (NOT showInAdvancedViewOnly=&apos;TRUE&apos;)))</string>
             <key>hostname</key>
             <key>hostname</key>
             <string>ldap://127.0.0.1</string>
             <string>ldaps://127.0.0.1</string>
             <key>id</key>
             <key>id</key>
             <string>sambaContacts</string>
             <string>sambaContacts</string>
Строка 201: Строка 212:
</dict>
</dict>
</plist></source>
</plist></source>
-->
1. Заполняем файл конфигурации {{path|/etc/sogo/sogo.conf}}:
<source lang="C">{
  SOGoProfileURL = "postgresql://sogo@/sogo/sogo_user_profile";
  OCSFolderInfoURL = "postgresql://sogo@/sogo/sogo_folder_info";
  OCSSessionsFolderURL = "postgresql://sogo@/sogo/sogo_sessions_folder";
  OCSEMailAlarmsFolderURL = "postgresql://sogo@/sogo/sogo_alarms_folder";
  SOGoEnableEMailAlarms = YES;
  SOGoDraftsFolderName = Drafts;
  SOGoSentFolderName = Sent;
  SOGoTrashFolderName = Trash;
  SOGoIMAPServer = "imaps://localhost:993";
  SOGoMailingMechanism = sendmail;
  SOGoForceExternalLoginWithEmail = NO;
  NGImap4ConnectionStringSeparator = "/";
  SOGoUserSources =  (
    {
        id = sambaLogin;
        displayName = "SambaLogin";
        canAuthenticate = YES;
        type = ldap;
        CNFieldName = cn;
        IDFieldName = cn;
        UIDFieldName = sAMAccountName;
        hostname = "ldaps://127.0.0.1";
        baseDN = "CN=Users,DC=test,DC=alt";
        bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
        bindPassword = "Pa$$word";
        bindFields = (sAMAccountName);
    },
    {
        id = sambaShared;
        displayName = "Shared Addressbook";
        canAuthenticate = NO;
        isAddressBook = YES;
        type = ldap;
        CNFieldName = cn;
        IDFieldName = mail;
        UIDFieldName = mail;
        hostname = "ldaps://127.0.0.1";
        baseDN = "CN=Users,DC=test,DC=alt";
        bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
        bindPassword = "Pa$$word";
        filter = "((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))";
    },
    {
        id = sambaContacts;
        displayName = "Shared Contacts";
        canAuthenticate = NO;
        isAddressBook = YES;
        type = ldap;
        CNFieldName = cn;
        IDFieldName = mail;
        UIDFieldName = mail;
        hostname = "ldaps://127.0.0.1";
        baseDN = "CN=Users,DC=test,DC=alt";
        bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
        bindPassword = "Pa$$word";
        filter = "((((objectClass=person) AND (objectClass=contact) AND ((uidNumber>=2000) OR (mail='*')))
                AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest))
                OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
        mapping = {
            displayname = ("cn");
        };
    }
  );
  SOGoSieveScriptsEnabled = NO;
  SOGoLanguage = Russian;
  SOGoTimeZone = Europe/Moscow;
  SOGoFirstDayOfWeek = 1;
}</source>
2. Делаем необходимые службы по умолчанию и перезапускаем их:
for s in samba postgresql memcached sogo httpd2;do chkconfig $s on;service $s restart;done
3. Смотрим на предмет возможных ошибок файл журнала {{path|/var/log/sogo/sogo.log}}


= Включение веб-интерфейса =
{{Note|Для SOGo версии {{pkg|5.0.0-alt1}} необходимо отключить одноранговую проверку для localhost, добавив
<source lang="text">tlsVerifyMode=allowInsecureLocalhost</source> к URL-адресу службы IMAP, в файле конфигурации {{path|/etc/sogo/sogo.conf}}:
<source lang="text">SOGoIMAPServer = "imaps://localhost:993/?tlsVerifyMode=allowInsecureLocalhost";</source>}}


Подробнее: http://www.openchange.org/cookbook/backends/sogo/webui.html
== Включение веб-интерфейса ==
 
Подробнее: [http://web.archive.org/web/20161025231509/http://openchange.org/cookbook/backends/sogo/webui.html http://www.openchange.org/cookbook/backends/sogo/webui.html]


  a2enmod proxy
  a2enmod proxy
  a2enmod proxy_http
  a2enmod proxy_http
a2enmod authn_core
a2enmod authn_file
a2enmod auth_basic
a2enmod authz_user
a2enmod env
a2enmod dav
  a2enmod headers
  a2enmod headers
  a2enmod rewrite
  a2enmod rewrite
a2enmod version
a2enmod setenvif
  a2ensite SOGo
  a2ensite SOGo
  service httpd2 restart
  service httpd2 restart
Строка 215: Строка 315:


Войти по адресу:
Войти по адресу:
<blockquote><big>http://адрес_сервера/SOGo/</big></blockquote>


= TODO =
https://адрес_сервера/SOGo/


{{Todo|
== Настройка электронной почты ==
* Интеграция с Postfix
* Интеграция с Dovecot
* Проверка интеграции с Acitive Directory
* Упрощение настройки
* Модуль Alterator для управления
* Видеоурок}}


= Проблемы =
Для использования электронной почты в SOGo необходимо настроить аутентификацию в Active Directory для Postfix и Dovecot. Подробнее это описано в разделе [[ActiveDirectory/PostfixDovecot]]


= Ссылки =
== Проблемы ==
 
* Для правильной работы SOGo на устройствах должна быть обновленная текущая база часовых поясов. Особенно это касается устройств под управлением iOS и macOS.
 
* Если при входе в веб-интерфейс возникает ошибка "Неправильный логин или пароль" (хотя учетные данные верны) и в логах {{path|/var/log/sogo/sogo.log}} есть ошибки наподобие этих:
 
<syntaxhighlight lang="dmesg">Feb 03 14:39:18 sogod [17543]: [ERROR] <0x0x55d2461cafe0[LDAPSource]> Could not bind to the LDAP server ldaps://127.0.0.1 (389) using the bind DN: CN=sogo,CN=Users,DC=test,DC=alt
Feb 03 14:39:18 sogod [17543]: [ERROR] <0x0x55d2461cafe0[LDAPSource]> <NSException: 0x55d2463f43b0> NAME:LDAPException REASON:operation bind failed: Can't contact LDAP server  (0xFFFFFFFF) INFO:{"error_code" = "-1"; login = "CN=sogo,CN=Users,DC=test,DC=alt"; }</syntaxhighlight>
 
Добавьте опцию "'''TLS_REQCERT allow'''" в {{path|/etc/openldap/ldap.conf}}.
 
Перестартуйте службы:
# systemctl restart samba sogo
 
== Отладка ==
 
Для вывода более подробных сообщений отладки необходимо добавить в файл {{path|/etc/sogo/sogo.conf}} параметры:
<source lang="objc">
  GCSFolderDebugEnabled = YES;
  GCSFolderStoreDebugEnabled = YES;
  LDAPDebugEnabled = YES;
  MySQL4DebugEnabled = YES;
  NGImap4DisableIMAP4Pooling = YES;
  ImapDebugEnabled = YES;
  OCSFolderManagerSQLDebugEnabled = YES;
  PGDebugEnabled = YES;
  SOGoDebugRequests = YES;
  SOGoMailKeepDraftsAfterSend = YES;
  SOGoUIxDebugEnabled = YES;
  SoDebugObjectTraversal = YES;
  SoSecurityManagerDebugEnabled = YES;
  WODontZipResponse = YES;
  WODebugZipResponse = YES;
  SoClassRegistryDebugEnabled  = YES;
  SoDebugKeyLookup  = YES;
  SoDebugProductLoading  = YES;
  SoDebugProductRegistry  = YES;
  SoDebugRequestClassification  = YES;
  SoDebugTraversal  = YES;
  SoLogSecurityDeclarations  = YES;
  SoOFSDebugAuthLookup  = YES;
  SoOFSDebugFactory  = YES;
  SoOFSDebugNegotiate  = YES;
  SoOFSDebugPlistObject  = YES;
  SoOFSDebugRestore  = YES;
  SoOFSResourceManagerDebugEnabled  = YES;
  SoOFSWebMethodDebugEnabled  = YES;
  SoObjCClassDebugEnabled  = YES;
  SoObjectDataSourceDebugEnabled  = YES;
  SoObjectMethodDispatcherDebugEnabled  = YES;
  SoObjectRequestHandlerDebugEnabled  = YES;
  SoObjectSOAPDispatcherDebugEnabled  = YES;
  SoPageInvocationDebugEnabled  = YES;
  SoProductResourceManagerDebugEnabled  = YES;
  SoRedirectToDefaultMethods  = YES;
  SoRendererDebugEnabled  = YES;
  SoSecurityManagerDebugEnabled  = YES;
  WOIsRedirectionEnabled  = YES;
  SOGoEASDebugEnabled = YES;
</source>
 
Отладочные сообщения будут помещены в файл {{path|/var/log/sogo/sogo.log}}.
 
== Советы и секреты ==
 
=== Заведение адресов в AD ===
<source lang="bash">$ ldapmodify -D 'CN=Administrator,CN=Users,DC=test,DC=alt' -H 'ldap://127.0.0.1' -w 'Pa$$word'
dn: CN=petrov,CN=Users,DC=test,DC=alt
changetype: modify
add: proxyAddresses
proxyAddresses: petrov@test.alt</source>
 
== Ссылки ==
* http://sogo.nu
* http://sogo.nu
* http://www.sogo.nu/files/docs/SOGo%20Installation%20Guide.pdf
* http://www.sogo.nu/files/docs/SOGo%20Installation%20Guide.pdf
* https://wiki.archlinux.org/index.php/OpenChange_server
* https://wiki.archlinux.org/index.php/OpenChange_server
* http://www.openchange.org/cookbook/backends/sogo/dovecot.html
* [https://web.archive.org/web/20161025184734/http://www.openchange.org/cookbook/backends/sogo/dovecot.html http://www.openchange.org/cookbook/backends/sogo/dovecot.html]
* http://habrahabr.ru/post/227893/
* http://habrahabr.ru/post/227893/
* [https://lists.inverse.ca/sogo/arc/users/2015-07/msg00132.html Почему используют SOGo] (англ.)


[[Категория:Groupware]]
[[Категория:Groupware]]
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
[[Категория:Корпоративная инфраструктура]]
[[Категория:HOWTO]]
[[Категория:Миграция]]
{{Category navigation|title=Корпоративная инфраструктура|category=Корпоративная инфраструктура|sortkey={{SUBPAGENAME}}}}

Версия от 14:48, 20 июня 2022

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Sogo.logo.png

Сервер групповой работы, аналогичный Microsoft Exchange, с веб-интерфейсом и доступом по MAPI для Microsoft Outlook

Возможности

  • Общие почтовые папки, календари и адресные книги;
  • Веб-интерфейс, аналогичный Outlook Web Access;
  • Поддержка протоколов CalDAV, CardDAV, GroupDAV, Microsoft ActiveSync, IMAP и SMTP;
  • Доступ по MAPI для Microsoft Outlook, не требующий внешних модулей;
  • Делегирование, уведомления, резервирование, поддержка категорий и почтовых фильтров;
  • Поддержка нескольких почтовых ящиков в веб-интерфейсе;
  • Single sign-on с помощью CAS, WebAuth или Kerberos.
Внимание! Не поддерживается MAPI over HTTPS

{{#ev:youtube|1hcBSB4Kxww}}

Установка

Для установки стабильной версии SOGo (доступна в ветке обновлений p9 и нестабильном репозитории Sisyphus) выполните:

apt-get install task-sogo

(драйвер к PostgreSQL будет установлен автоматически)

Подготовка среды

PostgreSQL

Предварительная подготовка к запуску службы согласно PostgreSQL.

Создаём пользователя sogo и базу данных sogo (под правами root):

su - postgres -s /bin/sh -c 'createuser --no-superuser --no-createdb --no-createrole sogo'
su - postgres -s /bin/sh -c 'createdb -O sogo sogo'
service postgresql restart

Samba DC

Пользователи расположены в домене Active Directory, расположенном на контроллере с Samba DC.

Предварительное создание домена согласно SambaDC.

Создаём в домене пользователя sogo с паролем Pa$$word:

samba-tool user create sogo

(при запросе дважды ввести пароль).

samba-tool user setexpiry --noexpiry sogo

SOGo

Настраивается на домен test.alt.


1. Заполняем файл конфигурации /etc/sogo/sogo.conf:

{
  SOGoProfileURL = "postgresql://sogo@/sogo/sogo_user_profile";
  OCSFolderInfoURL = "postgresql://sogo@/sogo/sogo_folder_info";
  OCSSessionsFolderURL = "postgresql://sogo@/sogo/sogo_sessions_folder";
  OCSEMailAlarmsFolderURL = "postgresql://sogo@/sogo/sogo_alarms_folder";
  SOGoEnableEMailAlarms = YES;
  SOGoDraftsFolderName = Drafts;
  SOGoSentFolderName = Sent;
  SOGoTrashFolderName = Trash;
  SOGoIMAPServer = "imaps://localhost:993";
  SOGoMailingMechanism = sendmail;
  SOGoForceExternalLoginWithEmail = NO;
  NGImap4ConnectionStringSeparator = "/";
  SOGoUserSources =  (
    {
        id = sambaLogin;
        displayName = "SambaLogin";
        canAuthenticate = YES;
        type = ldap;
        CNFieldName = cn;
        IDFieldName = cn;
        UIDFieldName = sAMAccountName;
        hostname = "ldaps://127.0.0.1";
        baseDN = "CN=Users,DC=test,DC=alt";
        bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
        bindPassword = "Pa$$word";
        bindFields = (sAMAccountName);
    },
    {
        id = sambaShared;
        displayName = "Shared Addressbook";
        canAuthenticate = NO;
        isAddressBook = YES;
        type = ldap;
        CNFieldName = cn;
        IDFieldName = mail;
        UIDFieldName = mail;
        hostname = "ldaps://127.0.0.1";
        baseDN = "CN=Users,DC=test,DC=alt";
        bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
        bindPassword = "Pa$$word";
        filter = "((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))";
    },
    {
        id = sambaContacts;
        displayName = "Shared Contacts";
        canAuthenticate = NO;
        isAddressBook = YES;
        type = ldap;
        CNFieldName = cn;
        IDFieldName = mail;
        UIDFieldName = mail;
        hostname = "ldaps://127.0.0.1";
        baseDN = "CN=Users,DC=test,DC=alt";
        bindDN = "CN=sogo,CN=Users,DC=test,DC=alt";
        bindPassword = "Pa$$word";
        filter = "((((objectClass=person) AND (objectClass=contact) AND ((uidNumber>=2000) OR (mail='*')))
                 AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE') AND (NOT uid=Guest))
                 OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))";
        mapping = {
            displayname = ("cn");
        };
    }
  );
  SOGoSieveScriptsEnabled = NO;
  SOGoLanguage = Russian;
  SOGoTimeZone = Europe/Moscow;
  SOGoFirstDayOfWeek = 1;
}

2. Делаем необходимые службы по умолчанию и перезапускаем их:

for s in samba postgresql memcached sogo httpd2;do chkconfig $s on;service $s restart;done

3. Смотрим на предмет возможных ошибок файл журнала /var/log/sogo/sogo.log

Примечание: Для SOGo версии 5.0.0-alt1 необходимо отключить одноранговую проверку для localhost, добавив
tlsVerifyMode=allowInsecureLocalhost
к URL-адресу службы IMAP, в файле конфигурации /etc/sogo/sogo.conf:
SOGoIMAPServer = "imaps://localhost:993/?tlsVerifyMode=allowInsecureLocalhost";


Включение веб-интерфейса

Подробнее: http://www.openchange.org/cookbook/backends/sogo/webui.html

a2enmod proxy
a2enmod proxy_http
a2enmod authn_core
a2enmod authn_file
a2enmod auth_basic
a2enmod authz_user
a2enmod env
a2enmod dav
a2enmod headers
a2enmod rewrite
a2enmod version
a2enmod setenvif
a2ensite SOGo
service httpd2 restart
service sogo restart

Войти по адресу:

https://адрес_сервера/SOGo/

Настройка электронной почты

Для использования электронной почты в SOGo необходимо настроить аутентификацию в Active Directory для Postfix и Dovecot. Подробнее это описано в разделе ActiveDirectory/PostfixDovecot

Проблемы

  • Для правильной работы SOGo на устройствах должна быть обновленная текущая база часовых поясов. Особенно это касается устройств под управлением iOS и macOS.
  • Если при входе в веб-интерфейс возникает ошибка "Неправильный логин или пароль" (хотя учетные данные верны) и в логах /var/log/sogo/sogo.log есть ошибки наподобие этих:
Feb 03 14:39:18 sogod [17543]: [ERROR] <0x0x55d2461cafe0[LDAPSource]> Could not bind to the LDAP server ldaps://127.0.0.1 (389) using the bind DN: CN=sogo,CN=Users,DC=test,DC=alt
Feb 03 14:39:18 sogod [17543]: [ERROR] <0x0x55d2461cafe0[LDAPSource]> <NSException: 0x55d2463f43b0> NAME:LDAPException REASON:operation bind failed: Can't contact LDAP server  (0xFFFFFFFF) INFO:{"error_code" = "-1"; login = "CN=sogo,CN=Users,DC=test,DC=alt"; }

Добавьте опцию "TLS_REQCERT allow" в /etc/openldap/ldap.conf.

Перестартуйте службы:

# systemctl restart samba sogo

Отладка

Для вывода более подробных сообщений отладки необходимо добавить в файл /etc/sogo/sogo.conf параметры:

  GCSFolderDebugEnabled = YES;
  GCSFolderStoreDebugEnabled = YES;
  LDAPDebugEnabled = YES;
  MySQL4DebugEnabled = YES;
  NGImap4DisableIMAP4Pooling = YES;
  ImapDebugEnabled = YES;
  OCSFolderManagerSQLDebugEnabled = YES;
  PGDebugEnabled = YES;
  SOGoDebugRequests = YES;
  SOGoMailKeepDraftsAfterSend = YES;
  SOGoUIxDebugEnabled = YES;
  SoDebugObjectTraversal = YES;
  SoSecurityManagerDebugEnabled = YES;
  WODontZipResponse = YES;
  WODebugZipResponse = YES;
  SoClassRegistryDebugEnabled  = YES;
  SoDebugKeyLookup  = YES;
  SoDebugProductLoading  = YES;
  SoDebugProductRegistry  = YES;
  SoDebugRequestClassification  = YES;
  SoDebugTraversal  = YES;
  SoLogSecurityDeclarations  = YES;
  SoOFSDebugAuthLookup  = YES;
  SoOFSDebugFactory  = YES;
  SoOFSDebugNegotiate  = YES;
  SoOFSDebugPlistObject  = YES;
  SoOFSDebugRestore  = YES;
  SoOFSResourceManagerDebugEnabled  = YES;
  SoOFSWebMethodDebugEnabled  = YES;
  SoObjCClassDebugEnabled  = YES;
  SoObjectDataSourceDebugEnabled  = YES;
  SoObjectMethodDispatcherDebugEnabled  = YES;
  SoObjectRequestHandlerDebugEnabled  = YES;
  SoObjectSOAPDispatcherDebugEnabled  = YES;
  SoPageInvocationDebugEnabled  = YES;
  SoProductResourceManagerDebugEnabled  = YES;
  SoRedirectToDefaultMethods  = YES;
  SoRendererDebugEnabled  = YES;
  SoSecurityManagerDebugEnabled  = YES;
  WOIsRedirectionEnabled  = YES;
  SOGoEASDebugEnabled = YES;

Отладочные сообщения будут помещены в файл /var/log/sogo/sogo.log.

Советы и секреты

Заведение адресов в AD

$ ldapmodify -D 'CN=Administrator,CN=Users,DC=test,DC=alt' -H 'ldap://127.0.0.1' -w 'Pa$$word'
dn: CN=petrov,CN=Users,DC=test,DC=alt
changetype: modify
add: proxyAddresses
proxyAddresses: petrov@test.alt

Ссылки