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

Материал из ALT Linux Wiki
Строка 201: Строка 201:
</dict>
</dict>
</plist></source>
</plist></source>
= Включение веб-интерфейса =
Подробнее: http://www.openchange.org/cookbook/backends/sogo/webui.html
# a2enmod proxy
# a2enmod proxy_http
# a2enmod headers
# a2enmod rewrite
# service httpd2 restart


= TODO =
= TODO =


{{Todo|
{{Todo|
* Собрать sope-mod_ngobjweb и sogo-openchange-backend
* Метапакет task-sogo
* Интеграция с Apache2
* Интеграция с Postfix
* Интеграция с Postfix
* Интеграция с Dovecot
* Интеграция с Dovecot

Версия от 14:07, 24 декабря 2015

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}}

Установка

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=&apos;TRUE&apos;) AND (mail=&apos;*&apos;) 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&gt;=2000) OR (mail=&apos;*&apos;)))
                 AND (NOT isCriticalSystemObject=&apos;TRUE&apos;) AND (NOT showInAdvancedViewOnly=&apos;TRUE&apos;) AND (NOT uid=Guest))
                 OR (((objectClass=group) AND (gidNumber&gt;=2000)) AND (NOT isCriticalSystemObject=&apos;TRUE&apos;) AND (NOT showInAdvancedViewOnly=&apos;TRUE&apos;)))</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
# service httpd2 restart

TODO

TODO:
  • Интеграция с Postfix
  • Интеграция с Dovecot
  • Проверка интеграции с Acitive Directory
  • Упрощение настройки
  • Модуль Alterator для управления
  • Видеоурок


Проблемы

Ссылки