SOGo
Материал из ALT Linux Wiki
Версия от 10:03, 25 декабря 2015; АндрейЧерепанов (обсуждение | вклад)
Сервер групповой работы, аналогичный Microsoft Exchange, с веб-интерфейсом и доступом по MAPI для Microsoft Outlook
- Сайт: http://www.sogo.nu
- Лицензия: GPLv2 и LGPLv2
Содержание |
Возможности
- Общие почтовые папки, календари и адресные книги;
- Веб-интерфейс, аналогичный Outlook Web Access;
- Поддержка протоколов CalDAV, CardDAV, GroupDAV, Microsoft ActiveSync, IMAP и SMTP;
- Доступ по MAPI для Microsoft Outlook, не требующий внешних модулей;
- Делегирование, уведомления, резервирование, поддержка категорий и почтовых фильтров;
- Поддержка нескольких почтовых ящиков в веб-интерфейсе;
- Single sign-on с помощью CAS, WebAuth или Kerberos.
Внимание! Не поддерживается MAPI over HTTPS
Установка
TODO:
Пока сборка доступна из задания 155169:
apt-repo add task 155169 && apt-get update
apt-get install sogo
Подготовка среды
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 add sogo
(при запросе дважды ввести пароль).
SOGo
Настраивается на домен test.alt.
service sogo stop su - _sogo -s /bin/bash defaults write sogod SOGoProfileURL "postgresql://sogo@/sogo/sogo_user_profile" defaults write sogod OCSFolderInfoURL "postgresql://sogo@/sogo/sogo_folder_info" 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 Trash defaults write sogod SOGoSentFolderName Sent defaults write sogod SOGoTrashFolderName Trash defaults write sogod SOGoIMAPServer imaps://localhost:993 #defaults write sogod SOGoSMTPServer 127.0.0.1 #defaults write sogod SOGoMailDomain test.alt defaults write sogod SOGoMailingMechanism sendmail defaults write sogod SOGoForceExternalLoginWithEmail NO defaults write sogod SOGoMailSpoolPath /var/spool/sogo defaults write sogod NGImap4ConnectionStringSeparator "/" defaults write sogod SOGoSieveScriptsEnabled YES defaults write sogod SOGoTimeZone "$(date +%Z)" defaults write sogod SOGoFirstDayOfWeek 1 defaults write sogod SOGoSuperUsernames sogo defaults write sogod SOGoLanguage Russian defaults write sogod SOGoUserSources '({type = ldap; CNFieldName = cn; IDFieldName = cn; UIDFieldName = sAMAccountName; baseDN = "cn=Users,dc=test,dc=alt"; bindDN = "cn=sogo,cn=Users,DC=test,DC=alt"; bindFields = (sAMAccountName); bindPassword = "Pa$$word"; canAuthenticate = YES; displayName = "Public"; hostname = ldap://127.0.0.1:389; id = public; isAddressBook = YES;})' mv -f /var/lib/sogo/GNUstep/Defaults/sogod.plist /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults exit service sogo start
Внимание! Служба sogo во время настройки должна быть выключена
~_sogo/GNUstep/Defaults/.GNUstepDefaults
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//GNUstep//DTD plist 0.9//EN" "http://www.gnustep.org/plist-0_9.xml"> <plist version="0.9"> <dict> <key>OCSFolderInfoURL</key> <string>postgresql://sogo@/sogo/sogo_folder_info</string> <key>OCSSessionsFolderURL</key> <string>postgresql://sogo@/sogo/sogo_sessions_folder</string> <key>SOGoFirstDayOfWeek</key> <string>1</string> <key>SOGoProfileURL</key> <string>postgresql://sogo@/sogo/sogo_user_profile</string> <key>SOGoSieveScriptsEnabled</key> <string>YES</string> <key>SOGoTimeZone</key> <string>MSK</string> <key>SOGoUserSources</key> <array> <dict> <key>CNFieldName</key> <string>cn</string> <key>IDFieldName</key> <string>cn</string> <key>UIDFieldName</key> <string>sAMAccountName</string> <key>baseDN</key> <string>CN=Users,DC=test,DC=alt</string> <key>bindDN</key> <string>CN=sogo,CN=Users,DC=test,DC=alt</string> <key>bindFields</key> <array> <string>sAMAccountName</string> </array> <key>bindPassword</key> <string>Pa$$word</string> <key>canAuthenticate</key> <string>YES</string> <key>displayName</key> <string>SambaLogin</string> <key>hostname</key> <string>ldap://127.0.0.1</string> <key>id</key> <string>sambaLogin</string> <key>type</key> <string>ldap</string> </dict> <dict> <key>CNFieldName</key> <string>cn</string> <key>IDFieldName</key> <string>mail</string> <key>UIDFieldName</key> <string>mail</string> <key>baseDN</key> <string>DC=test,DC=alt</string> <key>bindDN</key> <string>CN=sogo,CN=Users,DC=test,DC=alt</string> <key>bindPassword</key> <string>Pa$$word</string> <key>canAuthenticate</key> <string>NO</string> <key>displayName</key> <string>Shared Addressbook</string> <key>filter</key> <string>((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))</string> <key>hostname</key> <string>ldap://127.0.0.1</string> <key>id</key> <string>sambaShared</string> <key>isAddressBook</key> <string>YES</string> <key>type</key> <string>ldap</string> </dict> <dict> <key>CNFieldName</key> <string>cn</string> <key>IDFieldName</key> <string>mail</string> <key>UIDFieldName</key> <string>mail</string> <key>baseDN</key> <string>DC=test,DC=alt</string> <key>bindDN</key> <string>CN=sogo,CN=Users,DC=test,DC=alt</string> <key>bindPassword</key> <string>Pa$$word</string> <key>canAuthenticate</key> <string>NO</string> <key>displayName</key> <string>Shared Contacts</string> <key>filter</key> <string>((((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')))</string> <key>hostname</key> <string>ldap://127.0.0.1</string> <key>id</key> <string>sambaContacts</string> <key>isAddressBook</key> <string>YES</string> <key>mapping</key> <dict> <key>displayname</key> <array> <string>cn</string> </array> </dict> <key>type</key> <string>ldap</string> </dict> </array> </dict> </plist>
Включение веб-интерфейса
Подробнее: http://www.openchange.org/cookbook/backends/sogo/webui.html
a2enmod proxy a2enmod proxy_http a2enmod headers a2enmod rewrite a2ensite SOGo service httpd2 restart service sogo restart
Войти по адресу:
http://адрес_сервера/SOGo/
TODO
TODO:
- Интеграция с Postfix
- Интеграция с Dovecot
- Проверка интеграции с Acitive Directory
- Упрощение настройки
- Модуль Alterator для управления
- Видеоурок