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

Материал из ALT Linux Wiki
(→‎Включение веб-интерфейса: заменил на архив. openchange походу накрылся)
 
(не показано 11 промежуточных версий 4 участников)
Строка 7: Строка 7:
* Лицензия: GPLv2 и LGPLv2
* Лицензия: GPLv2 и LGPLv2


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


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


Для установки стабильной версии SOGo (доступна в ветке обновлений p8 и нестабильном репозитории Sisyphus) выполните
Для установки стабильной версии SOGo (доступна в [[branches|стабильных ветках]] p9/p10/p11 и нестабильном репозитории [[Sisyphus]]) выполните:


  apt-get install task-sogo
  apt-get install task-sogo
Строка 27: Строка 27:
(драйвер к PostgreSQL будет установлен автоматически)
(драйвер к PostgreSQL будет установлен автоматически)


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


== PostgreSQL ==
=== PostgreSQL ===


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


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


Создадим в домене пользователя sogo с паролем Pa$$word (при запросе ввести его дважды):
  samba-tool user create sogo
  samba-tool user create sogo
 
Отключим срок действия пароля:
(при запросе дважды ввести пароль).
 
  samba-tool user setexpiry --noexpiry sogo
  samba-tool user setexpiry --noexpiry sogo


== SOGo ==
=== SOGo ===


Настраивается на домен {{path|test.alt}}.
Настраивается на домен {{path|test.alt}}.
Строка 284: Строка 278:
   SOGoFirstDayOfWeek = 1;
   SOGoFirstDayOfWeek = 1;
}</source>
}</source>
{{Note|Проверить целостность конфигурационного файла можно командой: <syntaxhighlight lang="text"># plparse /etc/sogo/sogo.conf
Parsing '/etc/sogo/sogo.conf' - a dictionary</syntaxhighlight>}}


2. Делаем необходимые службы по умолчанию и перезапускаем их:
2. Делаем необходимые службы по умолчанию и перезапускаем их:
Строка 290: Строка 287:
3. Смотрим на предмет возможных ошибок файл журнала {{path|/var/log/sogo/sogo.log}}
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://web.archive.org/web/20161025231509/http://openchange.org/cookbook/backends/sogo/webui.html 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]
Строка 310: Строка 311:
  service sogo restart
  service sogo restart


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


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


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


= Проблемы =
== Проблемы ==


* Для правильной работы SOGo на устройствах должна быть обновленная текущая база часовых поясов. Особенно это касается устройств под управлением iOS и macOS.
* Для правильной работы SOGo на устройствах должна быть обновленная текущая база часовых поясов. Особенно это касается устройств под управлением iOS и macOS.


* Если при входе в вэб-интерфейс возникает ошибка "Неправильный логин или пароль" (хотя учетные данные верны) и в логах /var/log/sogo/sogo.log есть ошибки наподобие этих:
* Если при входе в веб-интерфейс возникает ошибка "Неправильный логин или пароль" (хотя учетные данные верны) и в логах {{path|/var/log/sogo/sogo.log}} есть ошибки наподобие этих:


<syntaxhighlight lang="Linux kernel 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
<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>
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'''" в /etc/openldap/ldap.conf
Добавьте опцию "'''TLS_REQCERT allow'''" в {{path|/etc/openldap/ldap.conf}}.


Перестартуйте службы:
Перестартуйте службы:
  # systemctl restart samba sogo
  # systemctl restart samba sogo


= Отладка =
== Отладка ==


Для вывода более подробных сообщений отладки необходимо добавить в файл {{path|/etc/sogo/sogo.conf}} параметры:
Для вывода более подробных сообщений отладки необходимо добавить в файл {{path|/etc/sogo/sogo.conf}} параметры:
Строка 380: Строка 382:
Отладочные сообщения будут помещены в файл {{path|/var/log/sogo/sogo.log}}.
Отладочные сообщения будут помещены в файл {{path|/var/log/sogo/sogo.log}}.


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


== Заведение адресов в AD ==
=== Заведение адресов в AD ===
<source lang="bash">$ ldapmodify -D 'CN=Administrator,CN=Users,DC=test,DC=alt' -H 'ldap://127.0.0.1' -w 'Pa$$word'
<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
dn: CN=petrov,CN=Users,DC=test,DC=alt
Строка 389: Строка 391:
proxyAddresses: petrov@test.alt</source>
proxyAddresses: petrov@test.alt</source>


= Ссылки =
== Ссылки ==
* http://sogo.nu
* http://sogo.nu
* http://www.sogo.nu/files/docs/SOGo%20Installation%20Guide.pdf
* https://www.sogo.nu/files/docs/SOGoInstallationGuide.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] (англ.)
* [https://lists.inverse.ca/sogo/arc/users/2015-07/msg00132.html Почему используют SOGo] (англ.)

Текущая версия от 12:33, 2 сентября 2024

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/p10/p11 и нестабильном репозитории 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 (см. предварительное создание домена).

Создадим в домене пользователя 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;
}
Примечание: Проверить целостность конфигурационного файла можно командой:
# plparse /etc/sogo/sogo.conf
Parsing '/etc/sogo/sogo.conf' - a dictionary


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

Ссылки