Встановлення та налаштування openchange під CentOS 6.5

    У рунеті та й в цілому в інтернеті мало розповідається про такий цікавий продукт, як openchange.
У теорії openchange і його супутні компоненти повинні повністю замінювати MS Exchange Server, на практиці ж це виходить не зовсім.
Тих хто зацікавився прошу в сам пост. Там буде розказано про установці на CentOS 6.5.
 
 
Скажу відразу, що продукт досить сирий і для великої організації поки не підходить.
 
Вихідні дані:
1) Великий домен з піддоменами і різними довіреними зв'язками з іншими доменами.
2) У зв'язку з поділом великий фірми на окремі юр особи з'явилася необхідність власної пошти.
3) Користувачі звикли до плюшками у вигляді загальних календарів, адресної книги та іншого.
Рішення: postfix + dovecot і спробувати до всього цього openchange на тестовому домені.
 
 

Установка.

Установка вироблялася на дистрибутив CentOS, iptables і selinux були відключені.
Спочатку були встановлені і сконфігуровані postfix і dovecot з авторизацією в AD.
Керівництв по установці в інтернеті досить багато, тому детально приводити настройки не буду, але скажу відразу, що користувався тільки стандартними репозиторіями.
В якості внутрішнього транспорту використовується lmtp.
Для синхронізації листів одержуваних через MAPI і IAMP в конфіг LDAP додані наступні рядки:
 
passdb {
driver = static
args = nopassword = y allow_nets = 127.0.0.1/32
}
Це необхідно для авторизації openchange в dovecot.
Тепер перейдемо безпосередньо до установки openchange.
Підключаємо необхідний репозиторій.
 
[sogo-rhel6]
name = Inverse SOGo Repository
baseurl = inverse.ca/downloads/SOGo/RHEL6/ $ basearch
gpgcheck = 0
enable = 1
Запускаємо установку.
 
yum install samba4 openchange sogo-openchange-backend openchange-ocsmanager openchange-rpcproxy sogo
Я люблю mysql більше, ніж postgresql, тому sogo буде працювати під mysql.
Додатково ставимо mysql і коннектор для sogo
 
yum install mysql-server sope49-gdl1-mysql
 
 

Налаштування samba

Приєднуємо нашу samba4 в windows AD
 
samba-tool domain join testmail.local DC-UAdministrator — realm = testmail.local
Приєднання відбувається автоматично, необхідно тільки ввести пароль від облікового запису Administrator
Додаємо в / etc/samba4/smb.conf наступні рядки
 
# Begin OpenChange Server Configuration
 dcerpc endpoint servers = + epmapper, + mapiproxy, + dnsserver
 dcerpc_mapiproxy: server = true
 dcerpc_mapiproxy: interfaces = exchange_emsmdb, exchange_nsp, exchange_ds_rfr
# End OpenChange Server configuration
Після цього проводимо запуск samba
 
samba-d 3-i-M = single
На всякий випадок поясню, що означає ця команда
-D це режим дебагом. Цифра 3 означає рівень дебагом
-I це interactive, тобто весь висновок в консоль
-M = single власне режим роботи без ФОРКОМ.
По не зрозумілою мені причини samba4 не відчиняє потрібних сокетів якщо її намагатися запустити через команду samba, а через init скрипт вона взагалі відмовляється запускатися з такою конфігурацією в smb.conf
Тому запускати її доводиться командою вище, але при цьому вона відмінно відправляється в фон через nohup.
 
Після запуску перевіряємо роботу реплікації.
 
samba-tool drs kcc-Uadministrator dcmail.testmail.local
samba-tool drs showrepl
Для своєї роботи openchange править схему AD, але робить це тільки, коли сам є власником схеми.
Передаємо права на схему нашому Linux контролеру.
 
samba-tool fsmo seize — role = schema
Запускаємо настройку openchange
 
openchange_provision
openchange_provision — openchangedb
Після цього перезапускаємо samba
 
 

Переходимо до налаштування ocsmanager

vim / etc / ocsmanager / ocsmanager.ini
Змінюємо параметри підключення до LDAP
 
[main]
# Possible authentication system
auth = ldap
mapistore_root = / var/lib/samba4/private
mapistore_data = / var/lib/samba4/private/mapistore
debug = no
 
[Auth: ldap]
# Host = ldap :/ / localhost
host = mail.testmail.local
port = 3268
bind_dn = CN = user, CN = users, DC = testmail, DC = local
bind_pw = password
basedn = CN = Users, dc = testmail, dc = local
 
[Rpcproxy: ldap]
host = mail.testmail.local
port = 389
basedn = CN = Users, dc = testmail, dc = local
Так само вказуємо де знаходиться samba
 
SAMBA_HOST = 127.0.0.1
У налаштуваннях LDAP і SAMBA_HOST можна вказати доменний контролер windows, на коректність роботи це не впливає.
Запускаємо ocsmanager
service openchange-ocsmanager start
 
 

Налаштування sogo

 
Створюємо базу і користувача.
 
CREATE DATABASE `sogo` CHARACTER SET = 'utf8';
CREATE USER 'sogo' @ 'localhost' IDENTIFIED BY 'sogo';
GRANT ALL PRIVILEGES ON `sogo`. * TO 'sogo' @ 'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
 
Правимо конфіг / etc / sogo / sogo.conf
 
Вказуємо, де знаходиться база
 
SOGoProfileURL = «mysql :/ / sogo: sogo @ localhost: 3306/sogo»;
 OCSFolderInfoURL = «mysql :/ / sogo: sogo @ localhost: 3306/sogo/sogo_folder_info»;
 OCSSessionsFolderURL = «mysql :/ / sogo: sogo @ localhost: 3306/sogo/sogo_sessions_folder»;
 
Вказуємо місцезнаходження директорій для листів, а так само сервера imap і postfix
 
/ / SOGoDraftsFolderName = Drafts; А от з цим рядком samba у мене падала з помилками, які не завжди відтворювалися, тому на жаль чернетки переміщуються в корзину.
 SOGoDraftsFolderName = Trash;
 SOGoSentFolderName = Sent;
 SOGoTrashFolderName = Trash;
 SOGoIMAPServer = imaps :/ / localhost: 993;
 SOGoSMTPServer = 127.0.0.1;
 SOGoMailDomain = testmail.local;
 SOGoMailingMechanism = smtp;
 SOGoForceExternalLoginWithEmail = NO;
 SOGoMailSpoolPath = / var / spool / sogo;
 NGImap4ConnectionStringSeparator = "/";
Вказуємо місцезнаходження LDAP сервера
 
SOGoUserSources = (
 {
 type = ldap;
 CNFieldName = cn;
 UIDFieldName = sAMAccountName;
 baseDN = «CN = users, DC = testmail, DC = local»;
 bindDN = «CN = user, CN = users, DC = testmail, DC = local»;
 bindFields = (sAMAccountName, mail);
 bindPassword = password;
 canAuthenticate = YES;
 displayName = «Public»;
 hostname = «dcmail.testmail.local»; / / Це windows контролер
 port = «389»;
 filter = «mail = '*'»;
 id = testmail.local;
 isAddressBook = NO;
 }
 );
 
 Ключовий момент якщо вказати як hostname нашу samba, то при спробі заходження outlook-му samba Вісла наглухо.
Але може це баг тільки на моєму сервері.
 
Вказуємо мову і тимчасову зону
 
SOGoLanguage = Russian;
 SOGoTimeZone = Europe / Moscow;
 
За бажанням можна там же включити web interface, але у мене на ньому поїхала верстка у всіх браузерах.
 
/ * Web Interface * /
 SOGoPageTitle = SOGo;
 SOGoVacationEnabled = YES;
 SOGoForwardEnabled = YES;
 SOGoSieveScriptsEnabled = YES;
 SOGoMailAuxiliaryUserAccountsEnabled = YES;
 SOGoTrustProxyAuthentication = NO;
Так само, якщо ви будете використовувати web інтерфейс, необхідно не забути вказати, який ip адресу буде слухати sogo (за замовчуванням 127.0.0.1)
WOPort = «0.0.0.0:20000»;
Запускаємо sogo
service sogod start
 
Переходимо до налаштування web частини
/ Etc / httpd / conf.d / rpcproxy.conf
Вказуємо параметр SetEnv SAMBA_HOST 127.0.0.1
Видаємо права на директорію / var / cache / ntlmauthhandler
 
chown-R apache: apache / var / cache / ntlmauthhandler
 
Бажано використання ssl. Встановлюємо mod_ssl і генеруємо сертифікат.
 
/ Etc / httpd / conf.d / SOGo.conf
При використанні ssl необхідно включити його в налаштуваннях sogo
 
RequestHeader set «x-webobjects-server-port» «443»
 RequestHeader set «x-webobjects-server-name» «mail.testmail.local»
 RequestHeader set «x-webobjects-server-url» «mail.testmail.local »
  
Запускаємо apache
service httpd start
 
На цьому установку можна вважати закінченою.
Для тих кому необхідні ящики створюємо їх командою
openchange_newuser — create user
 
Можна переходити до налаштування outlook.
 На жаль autodiscover в даний момент коректно НЕ відпрацьовує коректно повністю і доводиться задавати параметри руками.
У моєму випадку це виглядає так:
Сервер: mail.testmail.local
Ім'я користувача: user
Переходимо в меню «Інші настройки», розділ безпеку і ставимо галочку навпроти «Завжди запитувати облікові дані для входу»
При підключенні з поза вказуємо проксі-сервер.
 
 

Висновок

На домені з піддоменами openchange не запрацював взагалі, були виявлені дивні баги, якось описаний вище баг з sogo. Так само samba періодично падала, якщо користувач є в AD, але ящика у нього немає. В даний момент падати перестала. Але найнеприємніше, що при якихось проблемах samba просто падає з повідомленням PANIC, що ускладнює діагностику.
Розробники цього продукту і не обіцяли інтеграції у вже робочу windows AD, тому вилазила баги цілком можуть ставитися до того, що ми робимо те, що не зовсім передбачено розробниками.
Але в даний момент у мене вдалося стабільно запустити даний продукт для тестування.
Я вважаю, що оптимальною структурою для openchange на даному етапі розвитку продукту буде:
1) Встановити окремий контролер samba4 \ windows AD
2) Винесення на окремий сервер dovecot + postfix з авторизацією по LDAP (у разі поломки openchange організація все одно залишиться з працюючим поштовиком)
3) Тих, кому необхідні календарі та адресні книги (а як показала практика вони необхідні не всім) підключити по mapi до openchange.
4) Писати баг-репорти розробникам для якнайшвидшого доведення openchange до більш стабільного стану.
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.