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

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


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


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


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


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


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


В репозитории доступна как версия 2.x, так и версия 3.x:
== Подготовка среды ==


{|class="standard"
=== PostgreSQL ===
!Версия
!Пакет установки SOGo
!Драйвер к PostgreSQL
|-
|SOGo 2.x||{{pkg|task-sogo}}||{{pkg|sope2-gdl1-postgresql}}
|-
|SOGo 3.x||{{pkg|task-sogo3}}||{{pkg|sope-gdl1-postgresql}}
|}
 
= Подготовка среды =
 
== PostgreSQL ==


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


== Samba DC ==
=== Samba DC ===
Пользователи доменные — из Active Directory на контроллере Samba DC (см. [[SambaDC|предварительное создание домена]]).


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


Предварительное создание домена согласно [[SambaDC]].
=== SOGo ===
 
Создаём в домене пользователя sogo с паролем Pa$$word:
 
samba-tool user add sogo
 
(при запросе дважды ввести пароль).
 
== SOGo ==


Настраивается на домен {{path|test.alt}}.
Настраивается на домен {{path|test.alt}}.
Строка 289: Строка 273:
     }
     }
   );
   );
   SOGoSieveScriptsEnabled = YES;
   SOGoSieveScriptsEnabled = NO;
   SOGoLanguage = Russian;
   SOGoLanguage = Russian;
   SOGoTimeZone = Europe/Moscow;
   SOGoTimeZone = Europe/Moscow;
   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. Делаем необходимые службы по умолчанию и перезапускаем их:
Строка 300: Строка 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://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
Строка 308: Строка 299:
  a2enmod authn_core
  a2enmod authn_core
  a2enmod authn_file
  a2enmod authn_file
  a2enmod authn_basic
  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
  service sogo restart
  service sogo restart


Войти по адресу:<br />
Войти по адресу:
<big><pre>http://адрес_сервера/SOGo/</pre></big>
 
https://адрес_сервера/SOGo/
 
== Настройка электронной почты ==
 
Для использования электронной почты в 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
 
== Отладка ==


= TODO =
Для вывода более подробных сообщений отладки необходимо добавить в файл {{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>


{{Todo|
Отладочные сообщения будут помещены в файл {{path|/var/log/sogo/sogo.log}}.
* Интеграция с Postfix
* Интеграция с Dovecot
* Проверка интеграции с Acitive Directory
* Упрощение настройки
* Модуль Alterator для управления
* Видеоурок}}


= Проблемы =
== Советы и секреты ==


== Заведение адресов в 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
Строка 337: Строка 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] (англ.)
Строка 347: Строка 401:


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

Текущая версия от 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

Ссылки