8 Установка Iredmail

Общая информация
Настройка машины и установка Iredmail
Проверка работоспособности
1. Настройка интеграции с MS AD
1.1 Настройка машины с MS AD
2 Настройка машины с Iredmail
3 Настройка дополнительных конфигураций

 

Общая информация

iRedMail — это:
1) Полноценный почтовый сервер.
2) Работает как и на обычной системе, так и под управлением виртуальной машины: пр. VMware, OpenVZ, Xen.
3) Поддержка архитектур i386 и x86_64.
4) Использует для установки и настройки совместимые компоненты, такие как Postfix, Dovecot, SpamAssassin, SOGo и т.д.
5) При установке использует бинарные пакеты из вашего дистрибутива.
6) Проект с открытым исходным кодом, распространяемый под лицензией GPL v2.
7) Поддержка двух бэкэндов для хранения виртуальных доменов и пользователей: OpenLDAP и MySQL.
8) Безлимитное число поддержки доменов, пользователей, почтовых алиасов.
9) Поддержка двух Web-Интерфейсов (RoundCube и SquirrelMail).
Основная специфика SOGo — это общие календари, контакты, почта.

Настройка машины и установка Iredmail

Данная утилита работает корректно в РЕД ОС 7.2

Для работы потребуется mysql ( mariadb — это аналог mysql, который присутствует в репозитории )

Выполните в терминале команды

su
yum install mariadb mariadb-server 
systemctl start mariadb 
/usr/bin/mysql_secure_installation

Задайте пароль для root пользователя БД, на все вопросы отвечайте «y»

Настройте имя компьютера:

hostnamectl set-hostname dc1.irwol.ru

Отредактируйте файл:

nano /etc/hosts

Добавьте строку:

127.0.0.1 dc1.irwol.ru

Скачайте архив, содержащий необходимые пакеты для установки iRedMail и распакуйте в удобную папку.

В командной строке пропишите:

cd /путь/до/файлов
bash ./install_iredmail_packages.sh

Далее следуйте инструкциям на изображениях:



Укажите ваш пароль root для MySQL

Укажите домен сервера, пример irwol.ru

Укажите ваш пароль

Выбираем все пункты (не выбранным по умолчанию является sogo, его тоже включаем), по завершении настройки перезагрузите компьютер

Далее требуется изменить конфигурационные файлы

nano /etc/dovecot/dovecot.conf

строку:

ssl_protocols = !SSLv2 !SSLv3 !TLSv1 !TLSv1.1

изменить на:

ssl_protocols = !SSLv3 !TLSv1 !TLSv1.1

далее привести строки к виду:

mail_plugins = quota mailbox_alias acl mail_log notify old_stats
protocol imap {
    mail_plugins = $mail_plugins imap_quota imap_old_stats imap_acl last_login old_stats

выполнить перезагрузку ПК

Проверка работоспособности

Откройте браузер и впишите https://localhost/mail , после принятия сертификата откроется окно

Войти можно по учетной записи postmaster@irwol.ru

Так же проверьте ссылки других служб связанных с iredmail. Логин и пароль остаются такие же, как и для roundcube.

https://localhost/iredadmin

https://localhost/sogo

https://localhost/netdata

Настройка интеграции с ms ad

1 Настройка машины с ms ad

Зайдите в active directory домены и доверие
Откройте свойства

Впишите домен сервера на котором iredmail, нажмите принять
В свойствах домена ms ad выберите пункт управление

Создайте подразделение внутри домена ms ad, пример «personal»

Добавьте в подразделение — пользователя iredmail, домен укажите машины с ms ad
Добавьте еще одного пользователя, домен укажите сервера iredmail

2 Настройка машины с iredmail

Установка openldap

sudo yum install openldap-clients

Проверка соединения с ms ad

ldapsearch -x -h 10.81.1.231 -D 'vmail@irwol.ru' -W -b 'dc=ipamsadom,dc=ru' (домен и ip указаны для примера)

При корректном выполнении будет список с информацией о ms ad

Т.к. мы будем использовать интеграцию с AD, необходимо отключить параметры в конфиге postfix, которые используются для работы с MySQL

postconf -e virtual_alias_maps='' && postconf -e sender_bcc_maps='' && postconf -e recipient_bcc_maps='' && postconf -e relay_domains='' && postconf -e relay_recipient_maps='' && postconf -e sender_dependent_relayhost_maps=''

Добавляем почтовый домен

postconf -e smtpd_sasl_local_domain='irwol.ru' && postconf -e virtual_mailbox_domains='irwol.ru'

Меняем транспорт:

postconf -e transport_maps='hash:/etc/postfix/transport'

Добавляем запросы для подключения к AD:

postconf -e smtpd_sender_login_maps='proxy:ldap:/etc/postfix/ad_sender_login_maps.cf' && postconf -e virtual_mailbox_maps='proxy:ldap:/etc/postfix/ad_virtual_mailbox_maps.cf' && postconf -e virtual_alias_maps='proxy:ldap:/etc/postfix/ad_virtual_group_maps.cf'

Создаем или добавляем в файл строку для транспорта (домен указывается сервера с iredmail)

nano /etc/postfix/transport
irwol.ru dovecot

Создаем файл для подключения к AD:

nano /etc/postfix/ad_sender_login_maps.cf
server_host = 10.81.1.231
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = vmail		имя пользователя из ms ad, созданного в 1 пункте
bind_pw = password@1	укажите пароль пользователя 
search_base = ou= personal,dc=ipamsadom,dc=ru
scope = sub
query_filter = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute = userPrincipalName
debuglevel = 0

Создаем файл групп AD:

nano /etc/postfix/ad_virtual_mailbox_maps.cf
server_host = 10.81.1.231
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = vmail		имя пользователя из ms ad, созданного в 1 пункте
bind_pw = password@1	укажите пароль пользователя 
search_base = ou= personal,dc=ipamsadom,dc=ru
scope = sub
query_filter = (&(objectclass=person)(userPrincipalName=%s))
result_attribute = userPrincipalName
result_format = %d/%u/Maildir/
debuglevel = 0

Создаем файл для подключения к AD:

nano /etc/postfix/ad_virtual_group_maps.cf
server_host = 10.81.1.231
server_port = 389
version = 3
bind = yes
start_tls = no
bind_dn = vmail			имя пользователя из ms ad, созданного в 1 пункте
bind_pw = *** 			укажите пароль пользователя
search_base = ou= personal,dc=ipamsadom,dc=ru
scope = sub
query_filter = (&(objectClass=group)(userPrincipalName=%s))
special_result_attribute = member
leaf_result_attribute = mail
debuglevel = 0

Требуется удалить обе строчки в файле

nano /etc/postfix/main.cf
check_policy_service inet:127.0.0.1:7777
smtpd_end_of_data_restrictions =
check_policy_service inet:127.0.0.1:7777

Проверка соединения с ms ad (пользователь указывается который был создан вторым в ms ad, домен прописывается сервера iredmail)

postmap -q vmail@irwol.ru ldap:/etc/postfix/ad_virtual_mailbox_maps.cf

Если все успешно, то вывод будет не пустым и без ошибок

Вторая команда проверки

postmap -q vmail@irwol.ru ldap:/etc/postfix/ad_sender_login_maps.cf

При успешном выполнении выдаст

vmail@irwol.ru

Редактируем файл конфига

nano /etc/dovecot/dovecot.conf

и приводим секцию Virtual mail accounts к виду:

Virtual mail accounts.
userdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}
passdb {
args = /etc/dovecot/dovecot-ldap.conf
driver = ldap
}

Создаем файл

nano /etc/dovecot/dovecot-ldap.conf
hosts = 10.81.1.231:389
ldap_version = 3
auth_bind = yes
dn = vmail 			имя пользователя из ms ad, созданного в 1 пункте
dnpass = *** 			укажите пароль пользователя 
base = ou=personal,dc=ipamsadom,dc=ru
scope = subtree
deref = never
user_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_filter = (&(userPrincipalName=%u)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
pass_attrs = userPassword=password
default_pass_scheme = CRYPT
user_attrs = =home=/var/vmail/vmail1/%Ld/%Ln/Maildir/,=mail=maildir:/var/vmail/vmail1/%Ld/%Ln/Maildir/

Перезапускаем службы

systemctl restart postfix
systemctl restart dovecot

Теперь при добавлении нового пользователя в ms ad и указании домена iredmail, пользователю будет автоматически создаваться почтовый ящик в iredmail. Проверить можно будет на машине с iredmail.

https://localhost/mail

Логин пользователя и пароль  ms ad соответственно

3 Настройка дополнительных конфигураций

Если в AD есть группы рассылки, тогда отключаем iRedAPD т.к. при работе с AD он не нужен:

systemctl disable iredapd

По умолчанию, iRedMail позволяет задавать квоты на размер почтового ящика,  можно указать дисковую квоту для всех пользователей сразу:

nano /etc/dovecot/dovecot.conf

Находим строку:

quota_rule = *:storage2G

Это и есть размер почтового ящика для пользователей- 2Гб. Квота задается для всех пользователей разом!

Подключение адресной книги

nano /opt/www/roundcubemail/config/config.inc.php

Найдите раздел // Global LDAP address book
Удалите все ниже до конца файла и вставляем строки:

$rcmail_config['ldap_public']["irwol.ru"] = array(
'name' => 'Общая адр. книга',
'hosts' => array('10.81.1.231'),
'port' => 389,
'use_tls' => false,
// Search accounts in the same domain.
'user_specific' => false, // If true the base_dn, bind_dn and bind_pass default to the user's IMA$
'base_dn' => 'ou=personal,dc=ipamsadom,dc=ru',
'bind_dn' => 'cn=vmail,dc=ipamsadom,dc=ru',
'bind_pass' => 'xxxxxxx',
'writable' => false, //запретим запись в AD
'ldap_version' => '3',
// 'search_fields' => array('mail', 'cn', 'givenName', 'sn'),
'search_fields' => array('mail', 'cn', 'sAMAccountName', 'displayname', 'sn', 'givenName'),
// 'name_field' => 'cn',
'email_field' => 'mail',
'surname_field' => 'displayName',
// 'firstname_field' => 'givenName',
'sort' => 'cn',
'scope' => 'sub',
// 'filter' => '(&(enabledService=mail)(enabledService=deliver)(enabledService=displayedInG$
'filter' => "(mail=*@*)",
'fuzzy_search' => true);
$config['autocomplete_addressbooks'] = array('sql', 'irwol.ru');
$rcmail_config['list_cols'] = array('flag','attachment', 'from', 'subject', 'status', 'date', 'size' );

Настройка конфига SOGo
открываем файл конфигурации и добавляем строки

nano /etc/sogo/sogo.cong
// Authentication using LDAP - Active Directory

SOGoUserSources = (
{
// Used for user authentication
id = directory;
displayName = "Active Directory";
canAuthenticate = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = sAMAccountName;
UIDFieldName = sAMAccountName;
baseDN = "ou=personal,dc=ipamsadom,dc=ru";
bindDN = "cn=vmail,dc=ipamsadom,dc=ru";
bindFields = (sAMAccountName);
bindPassword = xxxxxxx;
hostname =10.81.1.231;
},
{
// Used for global address book
id = sambaShared;
displayName = "Общая адр. книга";
canAuthenticate = NO;
isAddressBook = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = mail;
UIDFieldName = mail;
hostname = ldap://10.81.1.231;
baseDN = "ou=personal,dc=ipamsadom,dc=ru";
bindDN = "cn=vmail,dc=ipamsadom,dc=ru";
bindPassword = xxxxxxx;
filter = "((NOT isCriticalSystemObject='TRUE') AND (mail=\'*\') AND (NOT objectClass=contact))";
//мои параметры
scope = SUB;
CNFieldName = cn;
SearchFieldNames = (mail, cn, sAMAccountName, displayname, sn, givenName);
//Uncomment to list local users in WebUI without searching (small directories only)
//listRequiresDot = NO;
},
{
id = sambaContacts;
displayName = "Общие контакты";
canAuthenticate = NO;
isAddressBook = YES;
type = ldap;
CNFieldName = cn;
IDFieldName = mail;
UIDFieldName = mail;
hostname = ldap://10.81.1.231;
baseDN = "ou=personal,dc=ipamsadom,dc=ru";
bindDN = "cn=vmail,dc=ipamsadom,dc=ru";
bindPassword = xxxxxxx; 
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");
//Uncomment to list contacts in WebUI without searching (few contacts only)
//listRequiresDot = NO;
};
}
);

Перезапуск служб:

systemctl restart postfix
systemctl restart dovecot
systemctl restart sogod

 

Если вы нашли ошибку, выделите текст и нажмите Ctrl+Enter.

Print Friendly, PDF & Email