Zimbra Collaboration Suite (ZCS) — программный продукт для автоматизации совместной деятельности рабочих групп. Включает в себя сервер электронной почты, антивирус, чат, совместную работу с документами, web-интерфейс. Является бесплатной альтернативой Microsoft Exchange.
В этой статье описывается как настроить сервер электронной почты и совместной работы ZimbraCollaboration Server (ZCS) в качестве первичного контроллера домена (PDC), обеспечивающего идентификацию пользователей рабочих станций Windows и Linux, единый доступ к общим папкам и сообщениям электронной почты. В результате мы получим сервер, работающий полностью на свободном программном обеспечении. Статья рассчитана на пользователя, мало знакомого с операционными системами Linux. Необходимость написания статьи вызвана некоторыми затруднениями, возникшими при настройке Zimbra по ссылкам из списка в конце статьи. Моменты, вызвавшие затруднения, я постарался раскрыть наиболее подробно.
1. Программное обеспечение
Для выполнения примера нам потребуется выход в интернет и следующее программное обеспечение:
1)Ubuntu Linux Server edition 8.04 Long Term Support (LTS), взят тут:
(в этом же каталоге лежит 64-битная версия дистрибутива)
2)Zimbra Collaboration Suite 6 Open Source Edition for Ubuntu 8.04:
(нужен дистрибутив версии 6 для нашей версии linux server соответствующей разрядности)
3)Putty: Windows SSH Client. Подключается к серверу по протоколу SSH в режиме командной строки. В настройках программы необходимо указать кодировку UTF-8 для корректного отображения кириллицы.
4)WinSCP: Windows SCP клиент. Подключается к серверу по протоколу SSH в режиме передачи файлов. Вместе с (3) все работы в системе после установки ОС мы будем выполнять удаленно с рабочей станции Windows. В настройках программы необходимо указать кодировку UTF-8 для корректного отображения кириллицы.
5)LdapAdmin: небольшая утилитка для администрирования сервера LDAP из под Windows. В нашем примере она необязательна и применяется для контроля – убедиться, что мы все действия делаем правильно.
6)На клиентской стороне: браузер Mozilla Firefox последней версии. Хотя можно использовать Internet Explorer, но при работе с Zimbra он иногда ведет себя неадекватно или работает слишком медленно.
7)На клиентской стороне на компьютере администратора: JAVA (она нужна для некоторых модулей Webminm, для ZCS ее наличие необязательно)
http://www.java.com/ru/
Ниже приведены учетные данные, использованные в этом примере. При установке вы будете использовать свои учетные данные. Замените нижеприведенные данные своими.
Домен: gisland.ru (domain base: "dc=gisland,dc=ru”)
Домен NT: GISLAND
Имя машины: mailserver
Полное имя машины: mailserver.gisland.ru
Ip адрес: 192.168.2.6
Маска подсети: 255.255.255.0
Шлюз по умолчанию: 192.168.2.1
DNS сервер пересылки: 192.168.2.1 (на него ссылается настраиваемый BIND)
Администратор компьютера: root, пароль ldap123
Временный пользователь: user, пароль: zimbra
Администратор почтового домена: admin@gisland.ru, пароль ldap123
Суперпользователь домена: “cn=config”, пароль: ldap123
Администратор домена "uid=zmposixroot,cn=appaccts,cn=zimbra”, пароль: ldap123
Пользователь домена: "uid=zmposix,cn=appaccts,cn=zimbra” пароль: zimbra
3. Установка операционной системы
Установка UBUNTU 8.04. После загрузки с установочного диска выбираем русский язык и начинаем установку. Если в вашей сети (как в моем случае) ip-адреса машины получают автоматически от сервера DHCP, вы попадете на экран настройки сети:
Поскольку нам нужен неизменный ip-адрес, нажимаем кнопку «вернуться», а затем “настроить сеть вручную”. Вводим ip адрес 192.168.2.6, маску подсети 255.255.255.0, шлюз 192.168.2.1, сервер DNS 192.168.2.1, имя компьютера: mailserver, имя домена gisland.ru. Дальше продолжаем установку с параметрами по умолчанию. При запросе имени пользователя вводим “user”,
при запросе пароля - «zimbra».
При запросе дополнительных компонентов выберем только один: «OpenSSH server». Остальные компоненты нам не потребуются или будут установлены в дальнейшем.
По окончании установки перезагружаемся. Подключаемся из PuTTY к ip- адресу 192.168.2.6 и видим экран идентификации. Вводим имя пользователя: user и пароль zimbra:
Задаем пароль суперпользователя:
user@mailserver:~$ sudo passwd root
[sudo] password for user: zimbra
Enter new UNIX password: ldap123
Retype new UNIX password: ldap123
passwd: password updated successfully
Вводим пароль для user, затем дважды вводим новый пароль суперпользователя.
Закрываем PuTTY и запускаем ее снова. На этот раз укажем имя пользователя: root и пароль ldap123.
Запускаем WinSCP и подключаемся к нашему серверу 192.168.2.6 от пользователем root:
Слева — файловая система нашей windows-машины, справа — только что установленного сервера ubuntu. Мы можем копировать, перемещать, редактировать файлы на обеих машинах, создавать каталоги, искать файлы и.т.д.
4. Настройка и обновление операционной системы
Проверим соединение нашего сервера с интернетом. В командной строке PuTTY напишем:
root@mailserver:~# ping ya.ru
PING ya.ru (77.88.21.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=1 ttl=55 time=12.0 ms
64 bytes from www.yandex.ru (77.88.21.3): icmp_seq=2 ttl=55 time=12.8 ms
Работает! Для отмены нажмем CTRL+Z
Установим менеджер загрузок wget:
root@mailserver:~# apt-get install wget
На всякий случай установим файловый менеджер midnight commander (mc):
root@mailserver:~# apt-get install mc
Запустить его можно будет, набрав команду mc в коноли.
Установим программу удаленного администрирования сервера через web-интерфейс Webmin. Для начала нам нужно скачать файл цифровой подписи:
wget http://www.webmin.com/jcameron-key.asc
и подключить его:
apt-keyaddjcameron-key.asc
Затем через WinSCP открыть файл /etc/apt/sources.list и дописать в нем путь к дистрибутиву webmin:
deb http://download.webmin.com/download/repository sarge contrib
Также удалим в файле символы комментариев перед другими источниками (начинаются с «deb») кроме deb cdrom и сохраним файл.
Теперь обновим список источников:
root@mailserver:~# apt-get update
А после успешного обновления списка установим webmin:
root@mailserver:~# apt-get install webmin
Пропишем полное имя сервера в файле /etc/hostname. Он должен выглядеть так:
Проверим файл /etc/hosts. Он должен содержать следующие строки:
127.0.0.1 localhost
192.168.2.6 mailserver.gisland.ru mailserver
В завершение выполним обновление системы через интернет:
root@mailserver:~# apt-get upgrade
и перезагрузим машину:
root@mailserver:~# reboot now
5. Работа в Webmin. Настройка зоны DNS
После перезагрузки заходим с рабочей станции в интерфейс webminпо адресу
Укажем имя пользователя: root, пароль: ldap123 и попадем в главное окно webmin:
На главной странице показаны недоустановленные обновления webmin и самого сервера (если они есть). Обновляемся, нажав ссылку из webmin, если обновления коснулись модулей ядра – перезагружаем компьютер после обновления.
Первым делом — установим обновления webmin (кнопка “install updates now”) и недоустановленные обновления системы (ссылка Package updates). Затем — выбираем в боковом меню «webmin-webmin configuration-language» И меняем язык на русский UTF-8. Webmin заговорил по русски!
Для нормальной работы ZCS должна быть правильно настроена зона DNS. В реальности зона настраивается на существующем DNS сервере. В нашем примере мы установим собственный DNS сервер и настроим зону самостоятельно.
В меню Webmin выберем «неиспользуемые модули-сервер DNS BIND». Webmin скажет, что BIND не установлен и предложит его установить. Соглашаемся. После установки выберем «обновить модули» из меню. Ссылка «сервер DNS BIND» перекочевала из меню «неиспользуемые модули» в меню «службы» и при нажатии на нее теперь открывается окно настроек bind:
Нам нужно создать новую зону для домена gisland.ru. Нажмем «создать новую зону master». Укажем имя домена: gisland.ru и адрес email: admin@gisland.ru. Остальные настройки оставим по умолчанию. Нажмем “Создать”:
Для созданной нами зоны потребуется минимальная настройка: одна адресная запись и одна запись типа MX (почтовый сервер).
1) Заходим в «адрес»: создаем запись с именем mailserverи адресом 192.168.2.6.
2) Заходим в «почтовый сервер» поле «имя» оставляем пустым, в поле «почтовый сервер» пишем «mailserver», указываем приоритет равный 10
3) В настройках сервера bind нажмем «перенаправление и пересылки» и введем адрес вышестоящего dns сервера пересылки: 192.168.2.1 Все запросы, кроме запросов к зоне gisland.ru будут обрабатываться этим вышестоящим сервером.
4) Нажмем «apply zone», а затем «apply configuration» для применения изменений
Теперь, если открыть зону gisland.ru и нажать «все типы записи», мы увидим три записи: одну типа NS, одну A и одну MX:
Следующий этап — настроить систему на работу с нашим DNS. Отредактируем файл /etc/resolv.conf и поменяем в нем адрес сервера DNS. После редактирования файл должен выглядеть так:
search gisland.ru
nameserver 192.168.2.6
теперь отредактируем /etc/network/interfaces, заменив в нем значение параметра "dns-nameservers" с 192.168.2.1 на 192.168.2.6. Применим изменения:
root@mailserver:~# /etc/init.d/networking restart
* Reconfiguringnetworkinterfaces... [ OK ]
Проверим работоспособность DNS сервера на локальном запросе:
root@mailserver:~# dig mailserver.gisland.ru
<часть текста вырезана>
;; ANSWERSECTION:
mailserver.gisland.ru. 38400 IN A 192.168.2.6
<часть текста вырезана>
;; SERVER: 192.168.2.6#53(192.168.2.6)
То есть мы запросили у нашего сервера (SERVER: 192.168.2.6#53) адрес для mailserver.gisland.ru и получили ответ: 192.168.2.6 – все работает правильно! Проверим работоспособность DNS сервера на внешнем запросе:
root@mailserver:~# diggoogle.com
<часть текста вырезана>
;; ANSWER SECTION:
google.com. 300 IN A 74.125.232.17
<часть текста вырезана>
То есть мы запросили у нашего сервера адрес для google.com. Поскольку зоны google.comна нашем сервере нет, он запросил ее у вышестоящего сервера 192.168.2.1 (а тот в свою очередь — у своего вышестоящего сервера) и получил ответ: 74.125.232.17. У вас может выдаваться другой адрес ip, главное чтобы он выдавался – это означает что пересылка работает!
При подключении с серверу через WinSCP мы по умолчанию попадаем в каталог пользователя root: /root. Скопируем дистрибутив Zimbra OpenSource 6 в этот каталог. Архив с дистрибутивом у меня назывался
zcs-6.0.10_GA_2692.UBUNTU8.20101215171146.tgz
(у вас скорее всего версия будет более новая)
Распаковываем дистрибутив:
root@mailserver:~# cd ~
root@mailserver:~# tar -xvf zcs-6.0.10_GA_2692.UBUNTU8.20101215171146.tgz
root@mailserver:~# cd zcs-6.0.10_GA_2692.UBUNTU8.20101215171146
Устанавливаем дополнительные пакеты:
apt-get install libpcre3 libgmp3c2 sysstat
Запускаем установку:
Программа установки проверит зависимости и спросит какие модули устанавливать — отвечаем по умолчанию. Затем будет выполнена проверка домена и появится сообщение о том, что домен mailserver.gisland.ru не настроен. Это правильно, поскольку правильное имя домена – gisland.ru. Отвечаем Yes на запрос о смене домена и вводим «gisland.ru». Теперь ошибки быть не должно. По окончании установки мы увидим меню начальной настройки:
Зайти в меню можно по его номеру, а вернуться назад — клавишей r.
1) Зайдем в “common configuration” (цифра 1). Зададим ldap admin password (цифра 4) равным «ldap123» и укажем часовой пояс (цифра 6) «Europe/Moscow». Вернемся в главное меню (клавиша r)
2) Зайдем в «zimbra-ldap». Установим все пароли (клавиши 4-8) равными «ldap123»
3) Зайдем в zimbra-store и зададим admin password (4) равным “ldap123”
Вернемся в главное меню и нажмем “a” для применения изменений. На остальные вопросы установки — отвечаем по умолчанию. Будет выполнена настройка системы, по окончании которой выведется сообщение: Configuration complete - press return to exit
Заходим через браузер по адресу http://192.168.2.6, вводим имя пользователя «admin» и пароль «ldap123». Добро пожаловать в Zimbra! Установочные файлы больше не нужны и их можно удалить.
Теперь у нас есть действующий почтовый сервер Zimbra Colaboration Suite.
Выполнив его интеграцию в домен LDAP мы получим возможность:
1) присоединять компьютеры с операционной системой Windows к домену gisland
2) входить в систему на этих компьютерах, используя учетные данные пользователей Zimbra
3) Объединять пользователей в группы, создавать на сервере общие папки, настраивать права доступа к этим папкам для пользователей zimbra
Мы получим решение на основе Linux, сходное по выполняемым задачам с Microsof tExchange и Active Directory. Работать с Zimbra можно через браузер, либо через оффлайн клиент Zimbra Desktop (наподобие Microsoft Outlook для exchange)
Основное ограничение: создаваемый домен уровня NT4 не будет поддерживать групповые политики. Это не является преднамеренным ограничением — просто служба samba, используемая в Linux, не поддерживает групповые политики Windows.
При выполнении этой главы внимательно и последовательно выполняйте все шаги, т. к. ошибка на каждом из этапов скорее всего приведет к неработоспособности системы в результате. Если установка выполняется на виртуальной машине — сделайте контрольный снимок (snapshot) состояния системы перед выполнением.
Для продолжения нам потребуется файл схемы samba. Скачаем его:
root@mailserver:~# apt-get install samba-doc
В числе прочих файлов будет установлен файл
/usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz
это архив, содержащий нужный нам файл схемы. Распакуем его:
root@mailserver:#
cd /tmp
cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz ./
gunzipsamba.schema.gz
Часть действий нужно будет выполнять от имени служебного пользователя zimbra. Для переключения к нему в консоли нужно набрать
root@mailserver:/tmp# su zimbra
zimbra@mailserver:/tmp$
(обратите внимание на изменившийся текст приглашения в командной строки). Для возврата к суперпользователю root просто наберем
zimbra@mailserver:/tmp$ exit
exit
root@mailserver:/tmp
Переключимся на пользователя Zimbra. Установим файл схемы nis.ldif:
ldap stop
cp /opt/zimbra/openldap/etc/openldap/schema/nis.ldif /opt/zimbra/data/ldap/config/cn=config/cn=schema/cn={10}nis.ldif
cd /opt/zimbra/data/ldap/config/cn=config/cn=schema
Отредактируем файл /opt/zimbra/data/ldap/config/cn\=config/cn=\schema\cn={10}nis.ldif Заменим в нем
dn: cn=nis,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: nis
на
dn: cn={10}nis
objectClass: olcSchemaConfig
cn: {10}nis
Затем выполним:
chmod 600 cn={10}nis.ldif
ldap start
Ldap должен запуститься без ошибок:
Теперь установим ранее распакованный файл схемы для samba:
mkdir -p /tmp/ldap/schema cd /tmp/ldap
cp /tmp/samba.schema /tmp/ldap/schema
Создадим файл /tmp/ldap/test.conf следующего содержания:
include /opt/zimbra/openldap/etc/openldap/schema/core.schema
include /opt/zimbra/openldap/etc/openldap/schema/cosine.schema
include /opt/zimbra/openldap/etc/openldap/schema/inetorgperson.schema
include /tmp/ldap/schema/samba.schema
Выполним команду:
/opt/zimbra/openldap/sbin/slaptest -f /tmp/ldap/test.conf -F /tmp/ldap
Будет создан каталог /tmp/ldap/cn=config/cn=schema. Переименуем в нем файл cn={3}samba.ldif в cn={11}samba.ldif
Отредактируем файл, заменив в нем
dn: cn={3}samba
objectClass: olcSchemaConfig
cn: {3}samba
на
dn: cn={11}samba
objectClass: olcSchemaConfig
cn: {11}samba
подключим файл к домену:
ldap stop
cp /tmp/ldap/cn=config/cn=schema/cn={11}samba.ldif /opt/zimbra/data/ldap/config/cn=config/cn=schema/
ldap start
Если все сделано правильно, ldap должен запуститься без ошибок. Следующий этап — установка индексов. Выполним команду:
ldapmodify -x -H ldapi:/// -D cn=config -W
Будет запрошен пароль, введите ldap123. Затем вставьте нижеуказанный текст и нажмите CTRL+D для применения изменений
dn: olcDatabase={2}hdb,cn=config
changetype:modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: memberUid eq
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaDomainName eq
Выполните команды:
zimbra@mailserver:/tmp/ldap$ ldap stop
Killing slapd with pid 18335 done.
zimbra@mailserver:/tmp/ldap$ /opt/zimbra/openldap/sbin/slapindex -F /opt/zimbra/data/ldap/config -b "" uidNumber gidNumber memberUid sambaSID sambaPrimaryGroupSID sambaDomainName
zimbra@mailserver:/tmp/ldap$ ldap start
Started slapd: pid 2725
Следующий шаг — создать учетные записи для доступа к домену.
Будут созданы учетные записи zimposix и zimposixroot. Для первой из них пароль будет “zimbra”, для второй «ldap123». При создании записей нам потребуются не сами пароли, а их хеш:
zimbra@mailserver:/tmp/ldap$ /opt/zimbra/openldap/sbin/slappasswd -s zimbra
{SSHA}aYoxkXmZeXcAMlrIbp2DvabrgfX9yhfu
zimbra@mailserver:/tmp/ldap$ /opt/zimbra/openldap/sbin/slappasswd -s ldap123
{SSHA}8RweIrittYKutqG5i5ONvY2jt25s25zl
Создадим файл /tmp/posixusers.ldif следующего содержания, включив в него только что полученные хэши:
dn: uid=zmposix,cn=appaccts,cn=zimbra
uid: zmposix
objectClass: zimbraAccount
objectClass: organizationalPerson
cn: zmposix
sn: zmposix
zimbraAccountStatus: active
zimbraIsSystemResource: TRUE
zimbraId: 59BC2282-98CC-11DE-9492-C023E3CEB16B
description: The zimbra posix account
userPassword: {SSHA}aYoxkXmZeXcAMlrIbp2DvabrgfX9yhfu
dn: uid=zmposixroot,cn=appaccts,cn=zimbra
uid: zmposixroot
objectClass: zimbraAccount
objectClass: organizationalPerson
cn: zmposixroot
sn: zmposixroot
zimbraAccountStatus: active
zimbraIsSystemResource: TRUE
zimbraId: 6ED47B38-98CC-11DE-AAC1-9F159BA35B33
description: The zimbra posix root account
userPassword: {SSHA}8RweIrittYKutqG5i5ONvY2jt25s25zl
Подключим файл к домену:
ldapadd -f /tmp/posixusers.ldif -x -H ldapi:/// -D cn=config -W
Создадим файл /tmp/acl.ldif следующего содержания
dn: olcDatabase={2}hdb,cn=config
changetype:modify
delete: olcAccess
olcAccess: {0}
-
add: olcAccess
olcAccess: {0}to attrs=userPassword by anonymous auth by dn.children="cn=admins,cn=zimbra" write by dn.exact="uid=zmposixroot,cn=appaccts,cn=zimbra" write
dn: olcDatabase={2}hdb,cn=config
changetype:modify
delete: olcAccess
olcAccess: {9}
-
add: olcAccess
olcAccess: {9}to attrs=entry by dn.children="cn=admins,cn=zimbra" write by dn.exact="uid=zmposixroot,cn=appaccts,cn=zimbra" write by * read
dn: olcDatabase={2}hdb,cn=config
changetype:modify
add: olcAccess
olcAccess: {10}to dn.subtree="dc=gisland,dc=ru" by dn.children="cn=admins,cn=zimbra" write by dn.exact="uid=zmposixroot,cn=appaccts,cn=zimbra" write by dn.exact="uid=zmposix,cn=appaccts,cn=zimbra" read by * none
olcAccess: {11}to dn.subtree="ou=machines,dc=gisland,dc=ru" by dn.children="cn=admins,cn=zimbra" write by dn.exact="uid=zmposixroot,cn=appaccts,cn=zimbra" write by dn.exact="uid=zmposix,cn=appaccts,cn=zimbra" read by * none
olcAccess: {12}to dn.subtree="ou=groups,dc=gisland,dc=ru" by dn.children="cn=admins,cn=zimbra" write by dn.exact="uid=zmposixroot,cn=appaccts,cn=zimbra" write by dn.exact="uid=zmposix,cn=appaccts,cn=zimbra" read by * none
olcAccess: {13}to dn.subtree="ou=people,dc=gisland,dc=ru" by dn.children="cn=admins,cn=zimbra" write by dn.exact="uid=zmposixroot,cn=appaccts,cn=zimbra" write by dn.exact="uid=zmposix,cn=appaccts,cn=zimbra" read by * none
Подгрузим файл:
ldapmodify -f /tmp/acl.ldif -x -H ldapi:/// -D cn=config -
Выполним команды:
zmprov mcf +zimbraAccountExtraObjectClass posixAccount
zmprov mcf +zimbraAccountExtraObjectClass sambaSamAccount
Теперь нужно установить расширения администратора. Скопируем два файла zimbra_posizaccount.zip и zimbra_samba.zip из каталога /opt/zimbra/zimlets-admin-extra на свой компьютер и распакуем их в отдельные папки. В каждом из архивов есть файлы config_template.xml их нужно отредактировать, указав имя вашего домена и изменив значение параметров gidbase и uidbase на 10000. После этого измененные файлы нужно упаковать обратно в архивы.
Для установки расширений зайдите через браузер в центр администрирования Zimbra по ссылке:
https://192.168.2.6:7071/zimbraAdmin
(пользователь: admin пароль: ldap123)
Зайдем в раздел «admin extensions», нажмем кнопку “инсталляция” и укажем «переделанный» архив zimbra_posixaccount.zip, затем аналогичным образом установите zimbra_samba.zip. Обновим страницу в браузере — в меню должны появиться две новые команды:
Установка SAMBA
Переключимся в режим суперпользователя и выполним команду:
root@mailserver:/tmp# apt-get install samba libpam-ldap libnss-ldap
После установки откроется окно с дополнительными настройками пакетов, укажем:
LDAP server Uniform Resource Identifier: ldapi:///
Distinguished name of the search base: dc=gisland,dc=ru
Версия Ldap: 3
Создать запись администратора: да
Does the LDAP database require login?: no
LDAP account for root: uid=zmposixroot,cn=appaccts,cn=zimbra
LDAP root account password: ldap123
Откроем файл /etc/ldap.conf (не путать с /etc/ldap/ldap.conf!) и заменим его содержимое на:
host mailserver.gisland.ru
base dc=gisland,dc=ru
binddn uid=zmposix,cn=appaccts,cn=zimbra
bindpw zimbra
rootbinddn uid=zmposixroot,cn=appaccts,cn=zimbra
port 389
bind_policy soft
nss_reconnect_tries 2
uri ldap://mailserver.gisland.ru/
ssl start_tls
tls_cacertdir /opt/zimbra/conf/ca
# tell to not check the server certificate
tls_checkpeer no
# optional
pam_password md5
# where nss find the information
nss_base_passwd ou=people,dc=gisland,dc=ru?one
nss_base_shadow ou=people,dc=gisland,dc=ru?one
nss_base_group ou=groups,dc=gisland,dc=ru?one
nss_base_hosts ou=machines,dc=gisland,dc=ru?one
Выполним команды:
root@mailserver:/tmp#
ln -s /etc/ldap.conf /etc/pam_ldap.conf
ln -s /etc/ldap.conf /etc/libnss-ldap.conf
ln -s /etc/ldap.secret /etc/pam_ldap.secret
ln -s /etc/ldap.secret /etc/libnss-ldap.secret
Отредактируем файл /etc/samba/smb.conf (имя домена встречается в файле шесть раз)
[global]
workgroup = GISLAND
netbios name = mailserver
os level = 33
preferred master = yes
enable privileges = yes
server string =Corporate Server
wins support =yes
dns proxy = no
name resolve order = wins bcast hosts
log file = /var/log/samba/log.%m
log level = 3
max log size = 1000
syslog only = no
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = user
encrypt passwords = true
ldap passwd sync = yes
passdb backend = ldapsam:ldap://mailserver.gisland.ru/
ldap admin dn = "uid=zmposixroot,cn=appaccts,cn=zimbra"
#ubuntu 10
#ldap ssl = No
ldap suffix = dc=gisland,dc=ru
ldap group suffix = ou=groups
ldap user suffix = ou=people
ldap machine suffix = ou=machines
obey pam restrictions = no
passwd program = /usr/bin/passwd %u
passwd chat = *EntersnewsUNIXspassword:* %nn *RetypesnewsUNIXspassword:* %nn *passwordsupdatedssuccessfully* .
domain logons = yes
logon path = \mailserver.gisland.ru%Uprofile
logon home = \mailserver.gisland.ru%U
logon script = logon.cmd
add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
add machine script = /usr/sbin/adduser --shell /bin/false --disabled-password --quiet --gecos "machine account" --force-badname %u
socket options = TCP_NODELAY
domain master = yes
local master = yes
[homes]
comment = Home Directories
browseable =yes
read only = No
valid users = %S
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
locking = no
[profiles]
comment = Users profiles
path = /var/lib/samba/profiles
read only = No
[profdata]
comment = Profile Data Share
path = /var/lib/samba/profdata
read only = No
profile acls = Yes
[printers]
comment = All Printers
browseable = no
path = /tmp
printable = yes
public = no
writable = no
create mode = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
Выполним команды:
root@mailserver:/tmp# /etc/init.d/samba restart
* Stopping Samba daemons [ OK ]
* Starting Samba daemons [ OK ]
root@mailserver:/tmp# smbpasswd -w ldap123
Setting stored password for "uid=zmposixroot,cn=appaccts,cn=zimbra" in secrets.tdb
Перезагрузите компьютер
root@mailserver:~# reboot now
затем зайдем в центр администрирования Zimbra. Если предыдущие действия были выполнены верно, в меню «manage samba domains» появится новый домен GISLAND:
https://192.168.2.6:7071/zimbraAdmin/
Если домен не появился — в поиске ошибки может помочь файл лога /var/opt/zimbra.log.
Отредактируем файл /etc/nsswitch.conf заменив две строчки
passwd: compat
group: compat
на:
passwd: files ldap
group: files ldap
Отредактируем /etc/pam.d/common-account, заменив его на:
account sufficient pam_unix.so
account sufficient pam_ldap.so
Отредактируем /etc/pam.d/common-auth, заменив его на:
auth sufficient pam_ldap.so
auth sufficient pam_unix.so
Отредактируем /etc/pam.d/common-password, заменив его на:
password sufficient pam_unix.so
password sufficient pam_ldap.so
Отредактируем /etc/pam.d/common-session, заменив его на:
session required pam_mkhomedir.so skel=/etc/skel umask=0077
session sufficient pam_unix.so
session sufficient pam_ldap.so
session required pam_mkhomedir.so skel=/etc/skel umask=0077
Перезагрузим компьютер
root@mailserver:~# reboot now
Проверим интеграцию ZCSс доменом, создав новую группу администраторов домена в центре администрирования Zimbra:
Идентификатор группы укажем равным 500. В этом случае пользователи группы будут обладать правами локальных администраторов на компьютерах Windows.
Выполним команду:
root@mailserver:~# getent group
<текствырезан>
Domain Admins:*:500:admin
Domain Users:*:513:
Domain Guests:*:514:
Domain Computers:*:515:
Administrators:*:544:admin
Account Operators:*:548:
Print Operators:*:550:
Backup Operators:*:551:
Replicators:*:552:
В выведенном списке групп должна присутствовать только что добавленная группа DomainAdmins.
Учетная запись admin, созданная автоматически при установке Zimbra, не внесена в список записей домена (мы его настроили лишь недавно). Чтобы это исправить, я создавал временную запись tempadm с правами администратора, залогинился под ней, удалил и вновь создал учетную запись admin, зашел под ней и удалил более ненужную tempadm. Также задал пароль пользователя admin в Samba:
root@mailserver:~# smbpasswd admin
new smb password:ldap123
Зайдем в интерфейсе webminв модуль ”LDAP users and groups” и убедимся что учетная запись в домене создана:
(для того чтобы webmin смог подключиться к домену, мне пришлось в настройках модуля «LDAP Client» указать «LDAP Server Configuration» - “Use encrypted connection?“ - NO)
Выполним команду
и убедимся что учетная запись adminс uid=1000x в списке присутствует. Для настройки остальных групп установим пакет smbldap-tools
root@mailserver:~# apt-get install smbldap-tools
gzip -d /usr/share/doc/smbldap-tools/configure.pl.gz
perl /usr/share/doc/smbldap-tools/configure.pl
<запустится скрипт настройки, на все вопросы отвечаем по умолчанию, нажимая Enter, на два запроса пароля — вводим “ldap123”>
smbldap-populate
entry dc=gisland,dc=ru already exist.
entry ou=people,dc=gisland,dc=ru already exist.
entry ou=groups,dc=gisland,dc=ru already exist.
entry ou=machines,dc=gisland,dc=ru already exist.
adding new entry: ou=Idmap,dc=gisland,dc=ru
entry uid=root,ou=people,dc=gisland,dc=ru already exist.
adding new entry: uid=nobody,ou=people,dc=gisland,dc=ru
entry cn=Domain Admins,ou=groups,dc=gisland,dc=ru already exist.
adding new entry: cn=Domain Users,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Domain Guests,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Domain Computers,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Administrators,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Account Operators,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Print Operators,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Backup Operators,ou=groups,dc=gisland,dc=ru
adding new entry: cn=Replicators,ou=groups,dc=gisland,dc=ru
entry sambaDomainName=GISLAND,dc=gisland,dc=ru already exist. Updating it...
По окончании работы smbldap-populate в консоли управления будут созданы группы:
Всё! Теперь вы можете присоединять к домену GISLAND рабочие станции Windows. Для присоеднения используются учетные записи группы «DomainAdmins” (в нашем случае — учетная запись Admin) Для входа в Windows используются учетные данные пользователей Zimbra.
8. Дополнительная настройка
При создании учетной записи в Zimbra мы использовать ее пароль как для входа в Windows, так и для входа в почту. При этом может возникнуть два досадных недоразумения:
1)Пользователь меняет свой пароль через web-интерфейс почты Zimbra, но его пароль в windows остается прежним
2)Пользователь меняет свой пароль Windows (например, командой «сменить пароль»). Поскольку изменения пароля производятся в LDAP, в котором Zimbra хранит учетные данные, можно было бы предположить, что пароль в Zimbra сменится автоматически. Он и меняется, но.... только после перезагрузки сервера Zimbra. Похоже, zimbra кэширует пароли и загружает их из LDAP только при запуске. Это нас естественно не устраивает!
Первую проблему я решил установкой расширения zimbraSambaPassword, взятого на:
Вторую — настройкой идентификации Zimbra в собственном домене, как будто это внешний OpenLDAP сервер. Итак:
1)Скачиваем ZimbraSambaPasword.zip, распаковываем его, переписываем через WinSCP на наш сервер Zimbra и добавляем к установочному файлу install.sh атрибут «исполняемый» (X)
2)Установим пакет build-essential, он нужен для сборки расширения
root@mailserver:~# apt-get install build-essential
3)Устанавливаем расширение (я записал его в папку /root на сервере):
root@mailserver:~# ./install.sh -i
Теперь при смене пароля в Zimbra пароль в Windows меняется автоматически.
Зайдем в консоль управления, раздел «домены», выберем домен Gisland.ru и нажмем кнопку «Настроить проверку подлинности»:
Поисковая база LDAP: dc=gisland,dc=ru
Жмем «далее»:
DN привязки: uid=zmposix,cn=appaccts,cn=zimbra
Пароль привязки: zimbra
Жмем “далее”, указываем любую из существующих учетных записей Zimbra, например «admin», пароль «ldap123». Должно появиться сообщение, «проверка успешно завершена». Теперь при смене пароля Windows моментально обновится и пароль Zimbra.
При желании можно также:
1)Поднять DHCP сервер для автоматического назначения IP-адресов клиентам. Сделать это достаточно просто через Webmin и в этой статье не рассматривается.
3) ...
1)После настройки сервера командную строку придется открывать гораздо реже :). Общесистемные настройки можно делать через Webmin, почтовые настройки и учетные записи — через консоль управления Zimbra.
2)При создании нового пользователя для него автоматически создается домашний каталог /home/имя_пользователя. Но происходит это при первом входе в систему ЧЕРЕЗ КОМАНДНУЮ СТРОКУ. Например вы создали нового пользователя и пытаетесь открыть его домашний каталог из Windows. Вы получите сообщение об ошибке если хотя бы раз не заходили под ним из Linux
10. Источники, использованные при написании статьи
Примечание - только сейчас заметил, что при выкладывании статьи на сайт в некоторых местах текста пропали пробелы. Постараюсь исправить, но на всякий случай, оригинал статьи в формате OpenOffice тут :
http://depositfiles.com/files/r82idalsv
Комментарии
12/01/2011 - 07:44
> обратите внимание — нужно две наклонных черты после ldapi:, а в оригинале - три
По той простой причине, что ldapi - это URI, указыавющий на UNIX Domain Socket-файл. Собственно, если вы укажете просто ldapi:///, будет использован путь по умолчанию. У меня же, например, этот URI указан в полном формате, ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock (все наклонные черты после первой, URL-кодированы)
12/01/2011 - 11:44
большая часть материала взята из (1) в списке литературы, а там - три черты. И документ помечен как "This is certified documentation". И самое главное - проверено лично - работает. Наверное можно было бы и ldapi://mailserver.gisland.ru написать - так тоже возможно было бы верно.
12/01/2011 - 14:02
ldapi://mailserver.gisland.ru
Не, вот как раз так неверно, потому что это весьма странный путь к файлу, а три черты - это просто путь к сокету по дефолту, если не ошибаюсь, дефолт этот прописывается в опциях configure
12/01/2011 - 15:22
аааа, ясно. Исправлю, спасибо!
12/01/2011 - 09:31
Что-то я как-то пытался сделать подобное, вами описанное, но благополучно свернул это процесс, когда увидел, как исключительно "красиво" выглядит диалог создания нового пользователя. Какие-нибудь smbldap-tools'ы лучше, но они не умеют заполнять атрибуты Zimbra, зато зимлеты не умеют автоматически назначать uidNumber и предлагать не номер группы вводить всё же, а выбирать её из списка. При этом, если не ошибаюсь, там ещё и sambaSID спрашивают, что уже вовсе издевательство.
12/01/2011 - 13:03
1)Эти зимлеты были написаны для 5й версии Zimbra и в ней как раз можно выбирать группу, не вводя ее номер. Похоже, что под версию 6 зимлеты не переделывали и они тут работают не совсем корректно. Зато одновременно создают учетку в домене и в почте :)
2)sambaSID вводить не надо, он автоматически подставляется при выборе домена
21/01/2011 - 11:16
При установке по этому мануалу, заметил несколько ошибок в настройке DNS например. Если при установке системы выбрать только OpenSSH то webmin не видит BIND DNS. Даже после установки BIND в ручную - не видит. Если установить BIND при установке системы - то все OK.
P.S. Большое спасибо - статья очень пригодилась :)
21/08/2013 - 11:03
27/01/2011 - 11:51
Скажите пожалуйста, я бы хотел проделать все выше описанное но с учетом того что у меня есть Домен контролер Windows 2008, и я бы хотел что бы данный почтовый сервер работал как резервный контролер домена.
Скажите это возможно, если да то не могли бы вы выложить здесь же описание по созданию резервного контролера домена, я бы л бы вам очень благодарен :)
27/01/2011 - 18:26
Если речь про AD, то такое невозможно. Samba может быть контроллером (PDC, BDC) только для NT-домена.
04/02/2011 - 12:28
опечатка тут скорее, чем ошибка, вкралась
правильно будет 192.168.2.6. Bind-то для этого и поднимался.
Отличная статья, первый раз ставил зибру именно по ней, без PDC пока правда, но статья помогла сильно.
12/03/2011 - 09:57
точно, спасибо! исправил в статье
20/02/2011 - 18:46
Есть такая ситуация:
Был старый почтовый сервер mail.firma.ru на адресе 129.168.1.100 (условно)
Сервер работал и по этому пришлось Zimbra давать mail1.firma.ru и с другим адресом, 192.168.1.101 .Со старого пользователи были перенесены на новый и старый сервер был остановлен.Теперь нужно на новом сервере сменить имя на mail.firma.ru и адрес на 129.168.1.100.Подскажите как это сделать правильно.
21/02/2011 - 23:19
Собственно, Aviriel уже ответила на форуме - http://www.ossportal.ru/forum/viewtopic.php?f=4&t=102&p=256&hilit=&sid=254ccac8f18ca866fe19040366b9ade3#p256
21/02/2011 - 13:20
Ребята, не подскажите, куда копать?!!!
У меня домен GISLAND не появляется. Вместо этого по очереди в браузере появляются три предупреждения (при заходе в центр администрирования тоже):
Понимаю, что накосячил... А вот где копать? Спасибо!
ubuntu-10.04.2
zcs-7.0.0
10/03/2011 - 21:12
судя по ou=groups,dc=ubuntu,dc=local
вы не отредактировали зимлеты и не прописали в них имя домена перед тем как устанавливать их через админ панель
11/03/2011 - 15:10
отредактировал зимлеты и выдает ошибки :
Не удалось инсталлировать zimlet.
Инсталляция на сервер mailserver.test.dm... сбой
11/03/2011 - 11:51
Возможно ли подключение Windows 7 если использовать Zimbru в качестве PDC
12/03/2011 - 09:59
проверял только на XP, но скорее всего с windows 7 тоже должно работать
11/03/2011 - 23:18
Добрый вечер! скажите пожалуйста кто сможет объяснить что за ошибки? Спасибо
Делаю по иструкции написано:
Будет запрошен пароль, введите ldap123. Затем вставьте нижеуказанный текст и нажмите CTRL+D для применения изменений
changetype:modify
add: olcDbIndex
olcDbIndex: uidNumber eq
olcDbIndex: gidNumber eq
olcDbIndex: memberUid eq
olcDbIndex: sambaSID eq
olcDbIndex: sambaPrimaryGroupSID eq
olcDbIndex: sambaDomainName eq
ldap_modify: Other (e.g., implementation specific) error (80)
additional info: index attribute "memberUid" undefined
2)
Killing slapd with pid 18335 done.
zimbra@mailserver:/tmp/ldap$ /opt/zimbra/openldap/sbin/slapindex -F /opt/zimbra/data/ldap/config -b "" uidNumber
gidNumber memberUid sambaSID sambaPrimaryGroupSID sambaDomainName
slap_str2ad(memberUid) failed 17 (Undefined attribute type)
16/03/2011 - 12:52
1)Пользователь меняет свой пароль через web-интерфейс почты Zimbra, но его пароль в windows остается прежним
У меня пароли в обе стороны нормально меняются без всяких ухищрений.
24/03/2011 - 00:51
Теперь нужна статья - "Резервный сервер Zimbra + BDC"
31/03/2011 - 15:07
Добрый день.
Автору статьи - большое спасибо за такое подробное описание всего процесса!
С Зимброй знакомлюсь впервые и поэтому было очень интересно читать такое подробное описание.
Есть замечание, хотя возможно это частный случай: после запуска webmin и настройки необходимых служб имеет смысл "потушить" системный вэб-сервер, чтобы вэб-сервер Зимбры мог стартовать. Иначе первый не даст второму прослушивать 80 и 443 порты. Установку производил на CentOS 5.5 Зимбру брал последней версии 7.х Возможно это только в ней ставится свой вэб-сервер, а не используется системный.
15/05/2011 - 19:48
Классная статья - у меня все по ней заработало, вот только такой вопрос. Если у меня сейчас все пользователи висят в зимбре и я хочу их перетащить в другой контроллер - то есть полностью отказаться от зимбродомена, а использовать ее только в качестве почтовика - как удалить домен?
Более точно если - я мигрировал всех пользователей и компы в новый домен, который создал на отдельном серваке, но зимбродомен все равно остался и при заведении новых пользователей он хочет назначать им ID и втыкает пользователей так же и в свой домен, но лишние действия меня что-то совсем не устраивают, вот и хочется мне от этого избавиться. При этом хочется избавиться от зимбродомена малой кровью - что бы не повредились пользователи....
28/06/2011 - 14:48
Жаль, что эту статью больше никто не поддерживает.... Наверно домен по большому счету никто на этом хозяйстве не использует....
28/06/2011 - 21:35
Вы правы. Домен на Zimbra - красивая задача, но в реальной жизни сильная экзотика. Если домен есть, то он обычно все-таки отдельный, а Zimbra с ним интегрируется.
P.S. Спасибо за термин "статья не поддерживается" - очень метко. ) Возьму на вооружение.
26/07/2011 - 23:53
> Наверно домен по большому счету никто на этом хозяйстве не использует....
Я использую. Всё очень просто и красиво, интеграция бесшовная, в чём проблема-то?
27/07/2011 - 00:04
Sergey, сама задача какая-то бредовая, то есть проблема в постановке вопроса:
1) LDAP-каталог - самостоятельная сущность, это просто иерархическая база данных, в которой где-то есть и ваши объекты-пользователи со своим набором атрибутов. Этот каталог могут использовать 100500 приложений и каждое может интересоваться своим определённым скопом (множеством) атрибутов
2) Zimbra сама по себе НЕ интересуется связанными с Samba атрибутами и вообще ей наплевать, входит юзер в домен или нет. "Привязываются" только расширения админ-панели, которые интегрируют её с Samba. При желании можно сделать "отсоединение" этих расширений, тогда к вам больше не будут приставать с вопросами об атрибутах Samba и POSIX при заведении пользователя
3) Samba может работать на Гаваях, а обращаться к LDAP-каталогу в Детройте. В чём проблема и что значит "домен на отдельном сервере"??
4) Если вы собираетесь держать 2 LDAP-каталога с одними и теми же пользователями - срочно завяжите себе руки, не двигайтесь и ничего не предпринимайте - за вами уже выехала "Скорая"...
28/07/2011 - 20:19
1) Про сам каталог все понятно.... Он и нужен только для хранения различных объектов.
2) А вот на счет расширений админпанели не совсем понятно.... То есть, если просто взять и отрубить в админке плагин, то типа и при регистрации нового юзера больше не будет требований воткнуть его в домен? Просто не хочется тестировать на продуктивном сервере, а времени на установку тестового пока никак не могу выкроить - дел навалилось выше крыши.....
3) Про самбу, как и про каталоги все ясно как 2х2 - домен на отдельном сервере означает, что Zimbra не будет просить добавить доменные атрибуты новому пользователю - всего навсего.
4) 5 баллов - Вы обладаете хорошим юмором ;)
PS А если рассматривать систему в целом и откинуть пункт с ненравящимся мне доменом, то все просто великолепно, хотя доков на русском маловато - мой напарник многое не понимает и мне приходится копаться за него - к сожалению у нас частенько возникают бредовые идеи по отношению к почтовой системе - вот и маемся....
А статья на самом деле хорошая - все ставится на 1-2-3
01/08/2011 - 07:38
Sergey, да, всё, что нужно сделать - это взять и отрубить расширения админ-панели и убрать конечно лишние objectClass'ы из объектов аккаунтов (иначе при попытке заведения нового получите отлуп из-за отсутствия MUST атрибутов того же posixAccount). То есть кроме деинсталляции админ-расширений, сделайте обратное вот этому:
26/07/2011 - 12:32
Одна из лучших статей по установке Zimbra. Все подробно и по делу. Спасибо.
14/09/2011 - 11:04
Дельная статья,автору респект. Для полного смака, хотелось что бы zimbra забирала данные из ad windows server 2***, не подскажите куда рыть?
14/09/2011 - 11:11
Вероятно, в сторону вот этих статей:
http://www.ossportal.ru/technologies/zimbra/blogs/152
http://www.ossportal.ru/technologies/zimbra/blogs/291
14/09/2011 - 11:17
санкс!
03/10/2011 - 15:02
Подскажите пожалуйста, все делаю по данному ману(с поправкой на свои значения и на то что дистр SLES10, а Zimbra 7). После настройки, в веб-морде домен появляется, если сделать tools-populate то группы тоже появляются, но в систему это не вносится. В логах только такая запись "zimbra sudo: nss_ldap: could not search LDAP server - Server is unavailable", больше информации нигде нет. В чем может быть причина?
17/11/2011 - 09:15
Все супер, гоняю зимбру по полной со всеми ее вкусностями, только не могу достучатся до https к веб клиенту и ни как не получается сменить 80 порт веб клиента на любой другой. Пробовал менять порт в /opt/zimbra/config.****, ни кокого эффекта, есть мнения?
17/11/2011 - 10:58
Решил, командой в zimbra
zmtlsctl both
причем команда zmtlsctl HTTPS не сработала)))
17/11/2011 - 10:58
вопрос перенаправления 80 порта открыт
17/11/2011 - 12:51
решено
zmprov ms mydomen.local zimbraMailPort порт
23/12/2011 - 21:35
и всё-таки, если кто-то поднял домен на zimbra, пож-та скажите, win7 к нему подключается или нет? это реально очень важный вопрос!
11/01/2012 - 06:35
Добрый день! хорошая статья, но у меня тут ошибка вышла
/opt/zimbra/openldap/sbin/slapindex -F /opt/zimbra/data/ldap/config -b "" uidNumber gidNumber memberUid sambaSID sambaPrimaryGroupSID sambaDomainName
ldif_read_file: checksum error on "/opt/zimbra/data/ldap/config/cn=config/cn=schema/cn={11}samba.ldif"
11/01/2012 - 09:36
Проблема в том что при изменении внутренностей произошло изменненеие контрольной суммы. Я делалв пункте "Создадим файл /tmp/ldap/test.conf следующего содержания:"
добавлял пару пустых файлов перед "include /tmp/ldap/schema/samba.schema", так что бы samba.schema была 10 в списке, тогда при конвертации получиться нужный файл с нужными внутренностями. если надо могу прислать нормальный файлик cn={11}samba.ldif
11/01/2012 - 13:23
был бы признателен, стукни 233352266
27/08/2012 - 10:51
Могу я попросить файлик cn={11}samba.ldif ?)
chronos91@mail.ru Буду премного благодарен)
05/12/2014 - 06:52