2.9.12.2.3 Интеграция почтового сервера Iredmail с СК РЕД АДМ
Подготовка
Установка и настройка iRedMail
Настройка Postfix
Настройка Dovecot
Настройка SoGo
Окружение
- Версия ОС: 7.3
- Конфигурация ОС: Сервер графический
- Версия ПО: iredmail-1.3.2-21
Предварительно необходимо развернуть и настроить контроллер домена СК РЕД АДМ.
Подготовка
1. Обновление системы:
dnf clean all dnf makecache dnf update
2. Ввод в домен (подробнее можно ознакомиться в разделе "Консольный режим работы программы ввода РЕД ОС в домен"):
dnf install join-to-domain-cli join-to-domain.sh
3. Установка базы данных:
dnf install mariadb mariadb-server
4. Запуск службы mariadb:
systemctl enable --now mariadb
5. Настройка БД:
/usr/bin/mysql_secure_installation
На первом шаге должен быть задан пароль root (это НЕ системный root), по умолчанию пароль не задан, нажмите Enter.
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and haven't set the root password yet, you should just press enter here. Enter current password for root (enter for none): <нажмите_Enter> OK, successfully used password, moving on…
Далее укажите собственный пароль root и удалите анонимных пользователей:
Setting the root password or using the unix_socket ensures that nobody can log into the MariaDB root user without the proper authorisation. Sett root password? [Y/n] y New password: <задайте_пароль_root> Re-enter new password: <повторите_пароль_root> Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created forthem. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success!
Запретите удаленный вход для root, если необходимо:
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
Удалите тестовую базу данных и обновите таблицу привилегий:
By default, MariaDB comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Установка и настройка iRedMail
1. Выполните установку:
dnf install iredmail
2. Для запуска настройки выполните:
iredmail
Для запуска настройки iRedMail выберите Yes и нажмите Enter.
Укажите каталог для хранения почты. Можно оставить значение по умолчанию — /var/vmail. Нажмите Enter для продолжения.
Выберите веб-сервер — nginx. Нажмите Enter для продолжения.
Выберите БД — MariaDB (для выбора нажмите клавишу Space). Нажмите Enter для продолжения.
Введите пароль root для MySQL, указанный при настройке БД. Нажмите Enter для продолжения.
Укажите домен сервера. Нажмите Enter для продолжения.
Задайте пароль для администратора почтового сервера. Нажмите Enter для продолжения.
Выберите компоненты почтового сервера — необходимо выбрать все пункты (не выбранным по умолчанию является SOGo, его тоже необходимо включить). Нажмите Enter для продолжения.
Далее необходимо проверить введенные данные. Если все указано верно, для продолжения введите y.
После завершения настройки перезапустите систему.
reboot
Убедитесь, что директория, в которой Amavisd пытается создать PID-файл /run/amavisd, действительно существует и доступна для записи. Если она не существует, создайте ее:
mkdir -p /run/amavisd chown amavisd:amavis /run/amavis
3. Выполните обновление фильтров SpamAssassin:
sa-update
СЛЕДУЕТ ЗНАТЬ! Не рекомендуется создавать в домене учётную запись с именем аналогичным локальной vmail!
4. Создайте нового доменного пользователя rmail:
samba-tool user add rmail
5. Опционально, только для LDAP (не для LDAPS) отредактируйте конфигурационный файл СК РЕД АДМ /opt/reddc/etc/smb.conf:
[global]
ldap server require strong auth = no
6. Проверьте работоспособность LDAP-запросов от пользователя rmail:
dnf install openldap-clients ldapsearch -x -H ldap://dc1.red.adm -D 'RED\rmail' -W -b 'CN=Users,DC=red,DC=adm'
Настройка Postfix
1. Отключите неиспользуемые модули:
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=''
2. Укажите домен для следующих модулей:
postconf -e smtpd_sasl_local_domain='red.adm' postconf -e virtual_mailbox_domains='red.adm'
3. Настройте остальные модули:
postconf -e transport_maps='hash:/etc/postfix/transport' 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'
4. Удалите строку из /etc/postfix/main.cf:
check_policy_service inet:127.0.0.1:7777
5. Отредактируйте (или создайте) файл /etc/postfix/transport:
red.adm dovecot
6. Прочтите его утилитой postmap:
postmap hash:/etc/postfix/transport
7. Приведите блок в конфигурационном файле /etc/dovecot/dovecot.conf к виду:
passdb { driver = ldap args = /etc/dovecot/dovecot-ldap.conf } userdb { driver = ldap args = /etc/dovecot/dovecot-ldap.conf }
8. Создайте конфигурационные файлы для взаимодействия Postfix и СК РЕД АДМ:
nano /etc/postfix/ad_sender_login_maps.cf
server_host = ldaps://dc1.red.adm
server_port = 636
version = 3
bind = yes
start_tls = no
bind_dn = RED\rmail
bind_pw = Password
search_base = cn=users,dc=red,dc=adm
scope = sub
query_filter = (&(userPrincipalName=%s)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
result_attribute= userPrincipalName
debuglevel = 0
nano /etc/postfix/ad_virtual_mailbox_maps.cf
server_host = ldaps://dc1.red.adm
server_port = 636
version = 3
bind = yes
start_tls = no
bind_dn = RED\rmail
bind_pw = Password
search_base = cn=users,dc=red,dc=adm
scope = sub
query_filter = (&(objectclass=person)(userPrincipalName=%s))
result_attribute= userPrincipalName
result_format = %d/%u/Maildir/
debuglevel = 0
nano /etc/postfix/ad_virtual_group_maps.cf
server_host = ldaps://dc1.red.adm
server_port = 636
version = 3
bind = yes
start_tls = no
bind_dn = RED\rmail
bind_pw = Password
search_base = cn=users,dc=red,dc=adm
scope = sub
query_filter = (&(objectClass=group)(mail=%s))
special_result_attribute = member
leaf_result_attribute = mail
result_attribute= userPrincipalName
debuglevel = 0
9. Проверка интеграции Postfix и СК РЕД АДМ. Если ответы пустые — интеграция успешна.
postmap -q test@red.adm ldap:/etc/postfix/ad_sender_login_maps.cf postmap -q test@red.adm ldap:/etc/postfix/ad_virtual_mailbox_maps.cf postmap -q group@red.adm ldap:/etc/postfix/ad_virtual_group_maps.cf
10. Если на запросы получены корректные ответы, перезапустите Postfix:
systemctl restart postfix
Настройка Dovecot
1. Отредактируйте конфигурационный файл /etc/dovecot/dovecot-ldap.conf:
hosts = ldaps://dc1.red.adm:636
ldap_version = 3
auth_bind = yes
dn = rmail@red.adm
dnpass = (пароль от учётной записи rmail)
base = CN=Users,DC=red,DC=adm
scope = subtree
deref = never
iterate_attrs = userPrincipalName=user
iterate_filter = (&(userPrincipalName=*)(objectClass=person)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
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 = mail=master_user,mail=user,=home=/var/vmail/vmail1/%Ld/%Ln/,=mail=maildir:~/Maildir/
2. Перезапустите Dovecot:
systemctl restart dovecot
3. Проверка интеграции Dovecot и СК РЕД АДМ.
Создать пользователя test и добавить адрес почты в профиле test@red.adm nc localhost 143
или telnet localhost 143:
login test@red.adm Password
Настройка SoGo
Отредактируйте секцию в конфигурационном файле /etc/sogo/sogo.conf:
SOGoUserSources = (
{
// Used for user authentication
type = ldap;
id = users;
canAuthenticate = YES;
isAddressBook = NO;
displayName = "LDAP Authentication";
hostname = "ldaps://red.adm:636"; // <- Set to ldaps://ad.example.com:636 for LDAPS.
baseDN = "CN=Users,DC=red,DC=adm";
bindDN = "rmail@red.adm";
bindPassword = "Password";
filter = "objectClass=person AND userPrincipalName='*' AND (NOT userAccountControl:1.2.840.113556.1.4.803:=2)>"
scope = SUB;
bindAsCurrentUser = YES;
userPasswordAlgorithm = ssha512;
CNFieldName = cn;
IDFieldName = userPrincipalName;
UIDFieldName = userPrincipalName;
IMAPLoginFieldName = userPrincipalName;
MailFieldNames = (userPrincipalName);
bindFields = (userPrincipalName);
},
{
// Used for global address book
type = ldap;
id = global_addressbook;
canAuthenticate = NO;
isAddressBook = YES;
displayName = "Global Address Book";
bindAsCurrentUser = YES;
listRequiresDot = NO;
// Set to ldaps://ad.example.com:636 for LDAPS.
hostname = "ldaps://dc1.red.adm:636";
baseDN = "CN=Users,DC=red,DC=adm";
bindDN = "rmail@red.adm";
bindPassword = "Password";
filter = "(objectClass=person OR (objectClass=group AND mail='*')) AND (NOT userAccountControl:1.2.840.113556>"
scope = SUB;
IDFieldName = userPrincipalName;
bindFields = (userPrincipalName);
// value of UID field must be unique on whole server.
UIDFieldName = userPrincipalName;
IMAPLoginFieldName = userPrincipalName;
CNFieldName = cn;
SearchFieldNames = (mail, cn, sAMAccountName, displayName, sn, givenName);
mapping = {
ou = ("department", "ou");
street = ("streetAddress", "street");
mozillaworkurl = ("wWWHomePage", "mozillaworkurl");
description = ("info", "description");
};
}
);
Перезапустите SOGo:
systemctl restart sogo
Дата последнего изменения: 01.04.2025
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.