Подготовка Установка и настройка iRedMail Настройка Postfix Настройка Dovecot Настройка SoGo
Окружение
Предварительно необходимо развернуть и настроить контроллер домена СК РЕД АДМ.
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!
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'
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
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:
nc localhost 143
telnet localhost 143:
login test@red.adm Password
Отредактируйте секцию в конфигурационном файле /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.
Нажимая «Отправить запрос», вы соглашаетесь с условиями обработки персональных данных.
Вы будете получать только актуальную информацию по обновлению безопасности
Подписываясь на уведомления, вы соглашаетесь с условиями обработки персональных данных.
На ваш почтовый адрес отправлено письмо с подтверждением подписки.