ActiveDirectory/PostfixDovecot2
В этой инструкции разбираются вопросы работы Samba в режиме DC с Postfix и Dovecot.
Начальные данные:
имя домена alt.fish
имя домен-контроллера d1.alt.fish
имя клиентских машин u1 и u2.
сеть 172.16.0.0/12
Пользователи соответствуют учетным записям в Linux
Почта хранится в maildir.
Количество доменов
В текущей конфигурации не рассматриваются многодоменные конфигурации
Версии ОС
Инструкция рассчитана на использование Branch-P8
ActiveDirectory примерно соответствует конфигурируемой на основе Windows Server 2008 R2.
Версии Office
В данной версии инструкции не рассматривается конфигурация на основе MAPI или EWS.
Outlook может использоваться начиная с 2003 в режиме подключения по IMAP.
Анализ безопасности
1 версия
Следует заметить, что данная инструкция не претендует на создание полностью безопасной конфигурации.
Вопросы защиты данных будут рассмотрены ниже.
Начальная конфигурация
Пакетная база
Будет необходимо установить следующие пакеты
- ntp
- task-samba-dc
- python-module-PasteDeploy
- postfix
- dovecot
Network configuration
Сеть состоит из двух виртуальных машин * d1, сконфигурированная как домен-контроллер samba, postfix, dovecot с адресом 172.16.2.1
- u1, сконфигурированная как рабочая станция с адресом 172.16.2.55
Они видят друг друга через внутреннюю сеть VirtualBox с именем intel.
Autoconfig
Для автоматической конфигурации ПО почтовых клиентов на рабочих
станциях используется следующая схема * Записи SRV домена, указывающие на местоположение конфигурационной информации
- Сама конфигурационная информация в формате XML, указывающая параметры подключения к почтовым сервисам.
Client configuration
В качестве тестового клиента используется Evolution,
установленный на Branch-p8.
Samba Configuration and installation
Installation of domain
Сгенерировать и записать себе где-то пароль на домен.
Пароль должен быть не
менее 8 символов и содержать символы
как минимум трёх групп из четырёх возможных:
латинских букв в верхнем и нижнем регистрах,
чисел и других небуквенно-цифровых символов.
Далее выполнить
samba-tool domain provision --use-rfc2307 --interactive --use-xattrs=yes
Realm [ALT.FISH]:
Domain [ALT]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [8.8.8.8]:
Administrator password:
Retype password:
Настройка NTP
ntp должен обеспечивать синхронизацию времени на клиентах и серверах с точностью 5 минут.
настройка пользователей
В данной конфигурации рассматривается настройка при которой пользователи SAMBA входят в число пользователей
домен-контроллеров путем nsswitch и nscld. Идентификаторы пользователей SAMBA начинаются с 10000.
Необходим пользователь
cn=ldap-connect,cn=users,dn=alt,dn=fish
пароль которого надо записать и выставить ему отсутствие expiration date при помощи samba-tool.
Многодоменные конфигурации
Многодоменные конфигурации не рассматриваются в этой инструкции.
ldap secure mode
Созданный по умолчанию конфиг smb требует авторизацию клиетов LDAP через ssl.
Это требует выдачи сертификатов, что весьма сложно и препятствует подключению к ldap
клиентов. В случае размещения postfix, dovecot, sogo и openchange на одной машине с домен-контроллером
большого смысла в такой усиленной авторизации нет и можнр задать
ldap server require strong auth = no
в smb.conf
что упростит настройку.
Mail subsystem configuration
Postfix
Настройка Postfix для работы с SAMBA AD.
аутентификация при отсылке внутренней почты
При отсылке почты по протоколу SMTP произвольному абоненту нужна
проверка доступа путем входа для предотвращения open relay.
доступ без аутентификации при подсоединении внешних SMTP cоединений
При получении почты при помощи протокола smtp авторизация отправителя невозможна по объективной причине - предполагается, что почту может отправлять любой клиент сети интернет, в том числе, которого мы не знаем.
ldap
Поиск информации о пользователе в ldap осуществляется путем присоединения
(bind) с выделенным пользователем ldap-connect
Аутентификация
Осуществляется возможными вариантами:
- попыткой cделать bind с указанным пользователем и по результату получить результат авторизации
- использованием bind с пользователем ldap-connect, а затем поиском по passdb
- другими способами.
Связь с Dovecot
dovecot
Получение информации из LDAP
Из LDAP AD Dovecot получает следующую информацию: * userdb - информацию о пользователе
- passdb - аутентификационную информацию.
Планирование путей почты
Достаточно важно спланировать и описать пути прохождения почты. Хотя для одного домена задача выглядит тривиальной, уже при двух доменах
правильное описание прохождения почты может существенно упростить конфигурирование. * Локальный абонент-локальный абонент
Письма посылаются через SMTP c авторизацией в Postfix с использованием SASL (RFC4954)
путем выполнения программы deliver-lda из пакета dovecot.
(файл После этого почта попадает в каталог /var/mail/)
- Локальный абонент - внешний абонент
Письма посылаются через Postfix SMTP c авторизацией с использованием SASL (RFC4954)
путем выполнения программы deliver-lda из пакета dovecot.
- Внешний абонент-локальный абонент
Полученные Postfix-ом через SMTP почтовые сообщения проверяются на наличие локального адресата путем cоединения с ldap
а затем передаются dovecot для отправки.
Планирование конфигурации LDAP
В каких полях содержится Email
При портировании настроек из существующих схем AD важно понимать, в каких конкретно полях cn= ou= находится информация о пользователе. Эта информация может находиться в совершенно разных, зависящих от выбора, сделанного администратором местах.
например cn=Users
или
ou=Organization, cn=MailUsers.
Как задается имя пользователя.
Как задается информация о группах
Имеюшаяся информация о группах пользователей, которая важна для
маршрутизации почты должна быть исследована.
Подробнее о маршрутизации групп можно прочесть в документе LDAP_README, входящем в состав пакета postfix.
Приложение. Конфигурационные файлы.
smb.conf
- Global parameters
[global] netbios name = D1 realm = ALT.FISH workgroup = ALT dns forwarder = 8.8.8.8 server role = active directory domain controller idmap_ldb:use rfc2307 = yes idmap config * : range = 10000 - 20000 tls enabled = yes ldap server require strong auth = no tls keyfile = tls/key.pem tls certfile = tls/cert.pem tls cafile = tls/ca.pem dsdb:schema update allowed = true dcerpc_mapiproxy:server = true dcerpc endpoint servers = +epmapper,+mapiproxy dcerpc_mapiproxy:interfaces = exchange_emsmdb, exchange_nsp,exchange_ds_rfr
[netlogon] path = /var/lib/samba/sysvol/alt.fish/scripts read only = No write ok = Yes
[sysvol] path = /var/lib/samba/sysvol read only = No write ok = Yes