SOGo: различия между версиями
(→SOGo: Use ldaps:// instead of ldap:// because Samba returns: ldap_bind: Strong(er) authentication required (8)) |
|||
Строка 95: | Строка 95: | ||
bindDN = "cn=sogo,cn=Users,DC=test,DC=alt"; | bindDN = "cn=sogo,cn=Users,DC=test,DC=alt"; | ||
bindFields = (sAMAccountName); bindPassword = "Pa$$word"; | bindFields = (sAMAccountName); bindPassword = "Pa$$word"; | ||
canAuthenticate = YES; displayName = "Public"; hostname = | canAuthenticate = YES; displayName = "Public"; hostname = ldaps://127.0.0.1:389; | ||
id = public; isAddressBook = YES;})' | id = public; isAddressBook = YES;})' | ||
mv -f /var/lib/sogo/GNUstep/Defaults/sogod.plist /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults | mv -f /var/lib/sogo/GNUstep/Defaults/sogod.plist /var/lib/sogo/GNUstep/Defaults/.GNUstepDefaults | ||
Строка 148: | Строка 148: | ||
<string>SambaLogin</string> | <string>SambaLogin</string> | ||
<key>hostname</key> | <key>hostname</key> | ||
<string> | <string>ldaps://127.0.0.1</string> | ||
<key>id</key> | <key>id</key> | ||
<string>sambaLogin</string> | <string>sambaLogin</string> | ||
Строка 174: | Строка 174: | ||
<string>((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))</string> | <string>((NOT isCriticalSystemObject='TRUE') AND (mail='*') AND (NOT objectClass=contact))</string> | ||
<key>hostname</key> | <key>hostname</key> | ||
<string> | <string>ldaps://127.0.0.1</string> | ||
<key>id</key> | <key>id</key> | ||
<string>sambaShared</string> | <string>sambaShared</string> | ||
Строка 204: | Строка 204: | ||
OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))</string> | OR (((objectClass=group) AND (gidNumber>=2000)) AND (NOT isCriticalSystemObject='TRUE') AND (NOT showInAdvancedViewOnly='TRUE')))</string> | ||
<key>hostname</key> | <key>hostname</key> | ||
<string> | <string>ldaps://127.0.0.1</string> | ||
<key>id</key> | <key>id</key> | ||
<string>sambaContacts</string> | <string>sambaContacts</string> | ||
Строка 247: | Строка 247: | ||
IDFieldName = cn; | IDFieldName = cn; | ||
UIDFieldName = sAMAccountName; | UIDFieldName = sAMAccountName; | ||
hostname = " | hostname = "ldaps://127.0.0.1"; | ||
baseDN = "CN=Users,DC=test,DC=alt"; | baseDN = "CN=Users,DC=test,DC=alt"; | ||
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt"; | bindDN = "CN=sogo,CN=Users,DC=test,DC=alt"; | ||
Строка 262: | Строка 262: | ||
IDFieldName = mail; | IDFieldName = mail; | ||
UIDFieldName = mail; | UIDFieldName = mail; | ||
hostname = " | hostname = "ldaps://127.0.0.1"; | ||
baseDN = "CN=Users,DC=test,DC=alt"; | baseDN = "CN=Users,DC=test,DC=alt"; | ||
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt"; | bindDN = "CN=sogo,CN=Users,DC=test,DC=alt"; | ||
Строка 277: | Строка 277: | ||
IDFieldName = mail; | IDFieldName = mail; | ||
UIDFieldName = mail; | UIDFieldName = mail; | ||
hostname = " | hostname = "ldaps://127.0.0.1"; | ||
baseDN = "CN=Users,DC=test,DC=alt"; | baseDN = "CN=Users,DC=test,DC=alt"; | ||
bindDN = "CN=sogo,CN=Users,DC=test,DC=alt"; | bindDN = "CN=sogo,CN=Users,DC=test,DC=alt"; |
Версия от 15:22, 15 апреля 2016
Сервер групповой работы, аналогичный 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.
{{#ev:youtube|1hcBSB4Kxww}}
Установка
Для установки стабильной версии SOGo выполните
apt-get install task-sogo
и соответствующий драйвер к PostgreSQL
В репозитории доступна как версия 2.x, так и версия 3.x:
Версия | Пакет установки SOGo | Драйвер к PostgreSQL |
---|---|---|
SOGo 2.x | task-sogo | sope2-gdl1-postgresql |
SOGo 3.x | task-sogo3 | sope-gdl1-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.
Предварительное создание домена согласно SambaDC.
Создаём в домене пользователя sogo с паролем Pa$$word:
samba-tool user add 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 = YES;
SOGoLanguage = Russian;
SOGoTimeZone = Europe/Moscow;
SOGoFirstDayOfWeek = 1;
}
2. Делаем необходимые службы по умолчанию и перезапускаем их:
for s in samba postgresql memcached sogo httpd2;do chkconfig $s on;service $s restart;done
3. Смотрим на предмет возможных ошибок файл журнала /var/log/sogo/sogo.log
Включение веб-интерфейса
Подробнее: 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
- Интеграция с Postfix
- Интеграция с Dovecot
- Проверка интеграции с Acitive Directory
- Упрощение настройки
- Модуль Alterator для управления
- Видеоурок
Проблемы
Заведение адресов в 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