SOGo: различия между версиями
(→TODO) |
|||
Строка 210: | Строка 210: | ||
# a2enmod headers | # a2enmod headers | ||
# a2enmod rewrite | # a2enmod rewrite | ||
# a2ensite SOGo | |||
# service httpd2 restart | # service httpd2 restart | ||
# service sogo restart | |||
Войти по адресу: | |||
<blockquote><big>http://адрес_сервера/SOGo/</big></blockquote> | |||
= TODO = | = TODO = |
Версия от 17:11, 24 декабря 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
{{#ev:youtube|1hcBSB4Kxww}}
Установка
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 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
Войти по адресу:
TODO
TODO:
- Интеграция с Postfix
- Интеграция с Dovecot
- Проверка интеграции с Acitive Directory
- Упрощение настройки
- Модуль Alterator для управления
- Видеоурок