====== Делаем собственный сервер электронной почты ======
===== Вместо предисловия =====
Конец лета 2026 года, такие компании как Яндекс и ВК, которой принадлежит почта Mail, изменили условия работы своих сервисов. Многие пользовались этими сервисами в том числе и в организациях. По факту, эти изменения почти не повлияли на частных лиц, а вот в организациях возник вопрос: платить Яндексу/ВК или переходить на собственный почтовый сервер. Так что передо мной встала задача организовать второй вариант. Да и для себя уже много лет хотел это сделать. Раз уж так все совпало - приступим.
Эта статья будет состоять как-бы из двух частей: первая необязательная, а вторая полноценная. Но я советую изучить обе части - будет полезно. Тем более, что первая часть совсем небольшая.
===== Теория =====
Для начала нужно усвоить несколько простых вещей. Во-первых, нам конечно же нужны постоянный белый IP-адрес и доменное имя. Во-вторых, нам потребуется правильная настройка DNS-записей - очень важно для правильной работы почты. И, наконец, нужно четко понимать, что в основе работы почты лежит три основных компонента:
- Message transfer agent (MTA) - агент передачи сообщений. Это в общем-то, если совсем упростить, и есть почтовый сервер (его примитивная настройка и будет рассматриваться в первой (необязательной) части. Работает он по протоколу SMTP и обеспечивает прием и передачу сообщений. Основная задача MTA - это отправка почты внешним получателям и получение почты для внутренних.
- Message delivery agent (MDA) - агент доставки сообщений. Этот компонент не отправляет и не принимает сообщения. Он предназначен для того, чтобы клиент получил доступ к собственной почте посредством протоколов POP3, IMAP и прочих. В его функции также входит ведение базы данных пользователей и их аутентификацию.
- Хранилище почтовых ящиков - третий компонент почтового сервера, отвечающий за хранение полученных и отправленных сообщений.
Немного про DNS-записи. Главных - две: PTR-запись и MX-запись.
- PTR - Pointer - соответствие адреса имени, позволяет на основании IP-адреса получить имя хоста этого узла. Главная его задача - это защита от спама. По собственному наблюдению, если эта запись не прописана или неверна, то отправленные письма либо попадают в спам (Яндекс), либо вообще отклоняются (Google).
- MX - Mail Exchanger - особая DNS-запись, указывающая на адрес почтового шлюза домена. Не участвует в отправке, а нужна только для приема писем. Эта запись указывает на узел, который уполномочен принимать почту в данном домене.
Дополнительных - три:
- SPF - Sender Policy Framework - специальный тип DNS-записи в формате TXT, позволяющий владельцу домена указать те узлы, которые имеют право отправлять почту от имени домена. Ее наличие резко снижает вероятность попадания ваших писем в спам.
- DKIM - DomainKeys Identified Mail - это технология электронно-цифровой подписи, которая позволят получателю убедиться, что письмо действительно принадлежит отправителю. Эта запись, подобно SPF, повышает вероятность доставки писем.
- DMARC - Domain-based Message Authentication, Reporting and Conformance - обеспечивает единые механизмы проверки почты по SPF и DKIM, а также формирование и отправку отчетов.
Порты:
* 25 — стандартный SMTP;
* 110 — стандартный POP3 (назащищенный или через STARTTLS);
* 995 — защищенный POP3 через SSL/TLS.
* 143 — стандартный IMAP (назащищенный или через STARTTLS);
* 465 — защищенный SMTP через SSL/TLS;
* 587 — защищенный SMTP через STARTTLS;
* 993 — защищенный IMAP через SSL/TLS;
У меня почтовый сервер будет за NAT'ом. Я проброшу все порты. ((IP-адрес моего почтового сервера 192.168.11.15 - учтите при прочтении статьи!))
{{:sw:lin:deb:mail:mail_ports_black.jpg?400|}}
Кстати, для меня правка PTR-записи оказалась непростой задачей. Дело в том, что в отличии от остальных DNS-записей, эту запись правит владелец IP-адреса. В моем случае это был Ростелеком. Я более двух лет периодически мучил техподдержку Ростелекома, но никто из их операторов не мог понять, что я от них хочу: "Вам услугу подключить?" или "У вас оборудование не работает?" или "Впервые о таком слышу, у нас такого нет". И вдруг, при очередном моем звонке (было это 17 августа 2026 года), попадается некий Алексей и пытается, в отличии от остальных, меня понять. Вечером того же дня, PTR-запись поправили, чему я был бесконечно рад. Алексей, если вдруг, Вы это читаете и узнаете себя, то примите мою огромную благодарность!
{{:sw:lin:deb:mail:ptr_bad.jpg?400|Неправильная PTR-запись}} {{:sw:lin:deb:mail:ptr_ok.jpg?400|Правильная PTR-запись}}
Главное препятствие устранено, можно приступать к настройке почтового сервера. Остальное зависит только от меня. Начинаем.
===== Практика =====
Прежде всего создадим виртуальную машину (подробнее [[..:..:..:win:s16:hyper_v:hyper_v|тут]]) и [[..:install_os:install_os|установим Debian Linux]]. Для почтового сервера я выделил 2 ядра CPU, 8 гигабайтов оперативной памяти и размер диска в 27 гигабайтов.
Пока linux устанавливается пропишем несколько DNS-записей.
{{:sw:lin:deb:mail:dns-записи_1st.jpg?800|DNS-записи}} ((После настройки лучше заменить ~ [тильду] на - [дефис], подробнее [[wp>ru:Sender_Policy_Framework|тут]]))
После завершения установки linux нужно проверить и при необходимости изменить некоторые параметры.
Открываем файл hostname
sudo vim /etc/hostname
и записываем в него значение
mail
Затем открываем файл hosts
sudo vim /etc/hosts
и прописываем следующие значения:
127.0.0.1 localhost.local localhost.localamin
127.0.0.1 mail.nikkutuzov.ru mail
Должно получится так:
{{:sw:lin:deb:mail:hosts.jpg?600|}}
После перезагружаем виртуальную машину
sudo systemctl reboot
и после перезагрузки проверяем. Команда
hostname -f
должна выдать значение
mail.nikkutuzov.ru
Предварительные ласки настройки окончены, можно приступать к первой или, если хочется уже поскорее, то ко второй части.
==== Часть первая - простейшая настройка (необязательная) ====
Установим Postfix, это делается простой командой:
sudo apt update && sudo apt install postfix -y
После завершения установки нужно ответить на несколько вопросов в диалоговых окнах. Первое оставляем по умолчанию Internet site, а во втором вписываем наш домен. Обратите внимание, что если я хочу, чтобы почта отправлялась с адреса username@nikkutuzov.ru, то нужно будет указать только nikkutuzov.ru
{{:sw:lin:deb:mail:01_postfix.jpg?400|Internet site}} {{:sw:lin:deb:mail:02_postfix.jpg?400|Домен}}
После сохраним оригинальный конфигурационный файл Postfix с помощью команды:
sudo cp /etc/postfix/main.cf /etc/postfix/main.cf_orig
И начнем редактировать:
sudo vim /etc/postfix/main.cf
На данном этапе нас интересуют несколько строчек:
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
inet_protocols = all
В первой строке мы добавим через пробел **192.168.11.13**
:!: Это только в моем случае! Я добавил IP-адрес виртуальной машины с этим сайтом, чтобы с него можно было отправлять почту без авторизации. Когда мы настроим полноценный почтовый сервер, этот адрес уже не нужно будет прописывать!
Во второй строке нам нужно поменять **all** на **ipv4**.
:!: Иначе мы будем получать вот такие предупреждения, говорящие о неправильной PTR-записи для IPv6. А наши письма, по крайней мере до почтового ящика от Google, доходить не будут.
{{:sw:lin:deb:mail:google_ptr_ipv6_wrong_1.jpg?400|IPv6_PTR}}
Далее, нужно поправить переменную **myorigin** и приравнять ее к значению **$mydomain**
myorigin = $mydomain
В итоге должно получиться примерно так:
{{:sw:lin:deb:mail:03_postfix.jpg?400|Файл main.cf}}
Записываем изменения и проверяем конфигурационный файл:
sudo postfix check
Перезапускаем службу Postfix
sudo systemctl restart postfix
Проверяем её состояние
sudo systemctl status postfix
{{:sw:lin:deb:mail:05_postfix.jpg?400|Перезапуск Postfix}}
Все письма будут отправляться через 25 порт, проверим его.
sudo ss -tnlp | grep :25
Получаем ответ:
{{:sw:lin:deb:mail:04_postfix.jpg?400|Порт 25}}
Это говорит нам, что процесс master (Postfix) слушает порт 25. Сервер готов принимать подключения на всех сетевых интерфейсах.
Примитивная настройка почти окончена, попробуем отправить первое письмо. Для этого нам понадобится пакет **mailutils**
sudo apt install mailutils -y
После установки **mailutils** можно попробовать отправить письмо командой
echo "Test letter" | mail -s "Test mail!" test-wg5fctdbn@srv1.mail-tester.com
Я использовал для тестов отличный сервис [[http://mail-tester.com|Mail Tester]] и всем очень советую. Первая маленькая победа.
{{:sw:lin:deb:mail:06_mail-tester_1.jpg?400|Тест № 1}}
Тут явно видно, что от нас требуется:
{{:sw:lin:deb:mail:07_mail-tester_2.jpg?400|Тест № 1 - детали}}
Отправим письмо с явным указанием отправителя
echo "Test letter" | mail -s "Test mail!" test-wg5fctdbn@srv1.mail-tester.com -aFrom:nikkutuzov@nikkutuzov.ru
Стало значительно лучше
{{:sw:lin:deb:mail:08_mail-tester_3.jpg?400|Тест № 2}}
До идеала нужно настроить DKIM
{{:sw:lin:deb:mail:09_mail-tester_4.jpg?400|Тест № 2 - детали}}
Установим openDKIM командой
sudo apt update && sudo apt install opendkim opendkim-tools -y
Сохраним оригинальный файл конфигурации
sudo cp /etc/opendkim.conf /etc/opendkim.conf_orig
Создаем директорию для DKIM
sudo mkdir -p /etc/opendkim/keys/nikkutuzov.ru
Создадим пару закрытый ключ + открытый ключ
sudo opendkim-genkey --directory /etc/opendkim/keys/nikkutuzov.ru/ --domain nikkutuzov.ru --selector mail
Поменяем владельца и права для директории и её содержимого
sudo chown -R root:opendkim /etc/opendkim/keys/nikkutuzov.ru/
sudo chmod u=rw,g=r,o= /etc/opendkim/keys/nikkutuzov.ru/*
Немного отредактируем конфигурационный файл opendkim
sudo vim /etc/opendkim.conf
Добавив в него несколько строк
AutoRestart Yes
AutoRestartRate 10/1h
Umask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:8891@localhost
Внесем изменение в файл **TrustedHosts**:
sudo vim /etc/opendkim/TrustedHosts
Он должен содержать следующие строки
127.0.0.1
localhost
192.168.11.0/24
*.nikkutuzov.ru
Создадим два файла - **KeyTable** и **SigningTable** с соответствующим содержанием:
echo "mail._domainkey.nikkutuzov.ru nikkutuzov.ru:mail:/etc/opendkim/keys/nikkutuzov.ru/mail.private" | sudo tee /etc/opendkim/KeyTable
echo "*@nikkutuzov.ru mail._domainkey.nikkutuzov.ru" | sudo tee /etc/opendkim/SigningTable
Допишем в конец конфигурационного файла **Postfix**
sudo vim /etc/postfix/main.cf
Следующее:
### openDKIM
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = $smtpd_milters
milter_default_action = accept
milter_protocol = 2
Перезапустим службы **openDKIM** и **Postfix**
sudo systemctl restart opendkim.service
sudo postfix check
sudo systemctl restart postfix
Теперь нужно скопировать DKIM, удалить лишние пробелы и кавычки и прописать в DNS-запись
sudo cat /etc/opendkim/keys/nikkutuzov.ru/mail.txt
{{:sw:lin:deb:mail:dkim_key.jpg?400|DKIM key}}
Снова отправляем тестовое письмо.
echo "Test letter" | mail -s "Test mail!" test-wg5fctdbn@srv1.mail-tester.com -aFrom:nikkutuzov@nikkutuzov.ru
Ура!
{{:sw:lin:deb:mail:10_mail-tester_5.jpg?400|Тест № 3}}
:!: Если у Вас проблемы с отправкой писем на кириллице, то в файле **/etc/postfix/main.cf** нужно найти строку
# Disable SMTPUTF8 for IDN Support
smtputf8_enable = no
и поменять на
# Disable SMTPUTF8 for IDN Support
smtputf8_enable = yes
Не забудьте перезапустить службу **Postfix**
sudo systemctl restart postfix
На этом примитивная настройка примитивного почтового сервера готова, мы можем получать и отправлять с него письма. Приступим к полноценной настройке полнофункционального сервера с админкой, web-интерфейсом, защитой от спама и прочего.
==== Часть вторая - настройка iRedMail (всеобъемлющая) ====
Как я говорил ранее, эта часть статьи самодостаточная и для настройки по ней не нужно ничего из первой части. Настраивать будем с помощью [[http://iredmail.org|iRedMail]].
Начинаем с установки зависимостей.
sudo apt update && apt install gzip dialog -y
Затем качаем последнюю версию iRedMail (на момент настройки (17 августа 2026 года) это была версия 1.8.5, а на момент работы над статьей (10 сентября 2026 года) уже вышла версия 1.8.8
wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.8.5.tar.gz
Распаковываем архив. В руководстве рекомендуется распаковывать в директорию /root Я при установке linux не указывал пароль для root, так что у меня этой директории просто нет. Так что распаковывал в домашнюю директорию пользователя, при этом никаких проблем с установкой не возникало.
tar zxf 1.8.5.tar.gz
переходим в распакованную директорию
cd iRedMail-1.8.5
Запускаем процедуру установки iRedMail.
sudo bash iRedMail.sh
{{:sw:lin:deb:mail:03_download_iredmail.jpg?400|Запускаем установку iRedMail}}
Во время установки появится несколько диалоговых окон. Сам процесс установки достаточно долгий. Первые вопрос. Я выбирал значения по умолчанию. Первый скрин - предупреждает нас о том, что если было уже установлено и настроено что-то связанное с почтой, то все конфигурационные файлы будут перезаписаны, согласны - ДА! Ведь мы ставим с нуля. Даже если Вы не пропустили первую часть, уверяю, что все будет хорошо. Второй скрин - выбор директории для почтовых ящиков. Я выбрал опять же значение по умолчанию. Наконец, третий скрин - выбираем web-сервер. Тут выбор очевиден, оставляем nginx.
{{:sw:lin:deb:mail:04_install_iredmail.jpg?400|Окно приветствия. Соглашаемся на установку}} {{:sw:lin:deb:mail:05_install_iredmail_default.jpg?400|Директория для ящиков - оставляем по умолчанию}} {{:sw:lin:deb:mail:07_install_iredmail_default.jpg?400|Web-сервер - по умолчанию}}
Затем нам предлагается выбор базы данных. В основном рекомендуют MariaDB, так как для нее больше документации, но я выбрал, как и в остальных проектах, PostgreSQL. Далее нас просят указать пароль для администратора нашей базы данных.
{{:sw:lin:deb:mail:08_install_iredmail_postgre.jpg?400|База данных}} {{:sw:lin:deb:mail:09_install_iredmail_postgre_password.jpg?400|Пароль администратора БД}}
Далее нужно указать имя домена. Обратите внимание, что если настраивается так, чтобы письма отправлялись с vasya@example.com, то здесь нужно указать все, что после знака "собаки" (@), то есть example.com. В моем случае nikkutuzov.ru
{{:sw:lin:deb:mail:10_install_iredmail_domain.jpg?400|Домен}}
Далее выбираем компоненты для установки.
{{:sw:lin:deb:mail:12_install_iredmail_default.jpg?400|Компоненты}}
* Roundcubemail - это клиент для работы с электронной почтой с веб-интерфейсом. Очень удобный. (подробнее [[wp>ru:roundcube|тут]])
* SOGo - это целый комбайн из почты, календарей и прочего. В общем для корпоративной работы.
* netdata - необязательный компонент. С его помощью можно производит мониторинг сервера. (см. ниже)
* iRedAdmin - админка нашей почты. В первую очередь тут будем создавать электронные ящики. Но этим его функционал не ограничивается.
* Fail2ban - программа для защиты серверов от атак методом грубой силы. Крайне рекомендуется, хотя так же не является обязательным (подробнее [[wp>ru:fail2ban|тут]])
Проверяем итоги нашего выбора и соглашаемся на установку.
{{:sw:lin:deb:mail:13_install_iredmail_confim.jpg?400|Итог}}
Вот тут уже будет долгая установка. Остается только ждать ее окончание.
В конце установки выберите **y**, чтобы использовать правила брандмауэра, предоставленные iRedMail.
{{:sw:lin:deb:mail:14_install_iredmail_ssh.jpg?400|Правила брандмауэра}}
Установка завершена!
{{:sw:lin:deb:mail:15_install_iredmail_done.jpg?400|Установка завершена}}
После установки перезагружаем наш сервер.
sudo systemctl reboot
Небольшое, но важное отступление. Заглянем немного в будущее. Разговор пойдет о сертификатах безопасности. Дело в том, что iRedMail при установке создает самоподписный сертификат сроком на 10 лет. Но при настройке, например, Thunderbird мы будем получать вот такое предупреждение.
{{:sw:lin:deb:mail:19_thunderbird_3_wrong_cert.jpg?400|Самоподписный сертификат}}
Давайте сразу настроим [[wp>ru:Let’s_Encrypt|Let's Encrypt]] сертификата, чтобы таких предупреждений не получать. Эти сертификаты выдаются на три месяца и автоматически будут продлеваться. Нужно, чтобы был открыт 80 порт!
Установим certbot
sudo apt install certbot -y
Выполним "сухой прогон", чтобы удостовериться, что у нас все получится.
sudo certbot certonly --webroot --dry-run -w /var/www/html -d mail.nikkutuzov.ru
Получим сертификат для нашей почты mail.nikkutuzov.ru (( В любой момент можно проверить сертификат с помощью команды openssl s_client -showcerts -servername mail -connect 88.147.143.237:465 ))
sudo certbot certonly --webroot -w /var/www/html -d mail.nikkutuzov.ru
Далее мы внесем некоторые изменения, в том числе и по поводу сертификата, в файл конфигурации **Postfix**
sudo vim /etc/postfix/main.cf
Находим строки
# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = all
Меняем на
# Enable both IPv4 and/or IPv6: ipv4, ipv6, all.
inet_protocols = ipv4
Тем самым указываем, что будем использовать только протокол IPv4, чтобы не получать ошибок, вроде этой
{{:sw:lin:deb:mail:google_ptr_ipv6_wrong_1.jpg?400|IPv6_PTR}}
Находим строки
# Disable SMTPUTF8 for IDN Support
smtputf8_enable = no
Меняем на
# Disable SMTPUTF8 for IDN Support
smtputf8_enable = yes
Это делается, для того, чтобы письма на кириллице нормально отправлялись.
В следующем блок раскомментируем последние три строки
#
# Enable SASL authentication on port 25 and force TLS-encrypted SASL authentication.
# WARNING: NOT RECOMMENDED to enable smtp auth on port 25, all end users should
# be forced to submit email through port 587 instead.
#
#smtpd_sasl_auth_enable = yes
#smtpd_sasl_security_options = noanonymous
#smtpd_tls_auth_only = yes
Включаем авторизацию. Конечно же, НЕ рекомендуется использовать 25 порт. Ипользовать нужно 587 или 465 порты.
И последнее с **Postfix**. Находим строки
#
# TLS settings.
#
# SSL key, certificate, CA
#
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
smtpd_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtpd_tls_CApath = /etc/ssl/certs
И меняем строки
smtpd_tls_key_file = /etc/ssl/private/iRedMail.key
smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt
на
smtpd_tls_key_file = /etc/letsencrypt/live/mail.nikkutuzov.ru/privkey.pem
smtpd_tls_cert_file = /etc/letsencrypt/live/mail.nikkutuzov.ru/fullchain.pem
В итоге готовый файл должен выглядеть примерно так:
{{:sw:lin:deb:mail:17_install_iredmail_maincf_1.jpg?400|main.cf}} {{:sw:lin:deb:mail:18_install_iredmail_maincf_2.jpg?400|main.cf}}
Настройка **Postfix** окончена, поправим **Dovecot**.
sudo vim /etc/dovecot/dovecot.conf
Находим строки
...
# SSL: Global settings.
# Refer to wiki site for per protocol, ip, server name SSL settings:
# http://wiki2.dovecot.org/SSL/DovecotConfiguration
ssl = required
ssl_min_protocol = TLSv1.2
# log_debug = category=ssl
ssl_server_cert_file = /etc/ssl/certs/iRedMail.crt
ssl_server_key_file = /etc/ssl/private/iRedMail.key
...
и меняем последние две строки на
ssl_server_cert_file = /etc/letsencrypt/live/mail.nikkutuzov.ru/fullchain.pem
ssl_server_key_file = /etc/letsencrypt/live/mail.nikkutuzov.ru/privkey.pem
Должно выглядеть так
{{:sw:lin:deb:mail:dovecot_conf.jpg?400|dovecot.conf}}
Перезапускаем **dovecot**
sudo systemctl restart dovecot.service
Наконец, поправим DKIM запись. По умолчанию в качестве сепаратора установлено значение "dkim", а нам нужен сепаратор "mail"
Поправим конфигурационный файл **amavis**
sudo vim /etc/amavis/conf.d/50-user
Находим там строку
dkim_key('nikkutuzov.ru', 'dkim', '/var/lib/dkim/nikkutuzov.pem');
И поменяем значение сепаратора "dkim" на "mail"
dkim_key('nikkutuzov.ru', 'mail', '/var/lib/dkim/nikkutuzov.pem');
Должно получиться вот так
{{:sw:lin:deb:mail:16_install_iredmail_dkim_1.jpg?400|DKIM сепаратор}}
После этого генерируем ключи
sudo amavisd genrsa /var/lib/dkim/nikkutuzov.ru 2048
Смотрим на результат
sudo amavisd showkeys
Полученное значение копируем, убираем лишние кавычки и пробелы. Копируем в DNS-запись DKIM
{{:sw:lin:deb:mail:19_install_iredmail_dkim_2.jpg?400|правильная DKIM}}
На этом, в общем-то, настройка полностью завершена. У нас останется папка iRedMail-1.8.5 - ее лучше удалить!
$ sudo rm -rf iRedMail-1.8.5
:!: Прежде чем удалять эту директорию изучите файл ~/iRedMail-1.8.5/iRedMail.tips В нем содеражаться:
* URL, имена пользователей и пароли веб-приложений
* Расположение файлов конфигурации программного обеспечения, связанного с почтовой службой.
* Некоторая другая важная и чувствительная информация.
Главное, сохраните пароль пользователя postmaster. В его почтовом ящике будет лежать письмо, в котором информация из этого файла будет продублирована!
После этого перезагружаем наш почтовый сервер.
sudo systemctl reboot
Остается перейти на [[..:nginx_certbot:nginx_certbot|мою виртуальную машину с nginx]] и внести в нее новую запись.
На этой машине нужно выполнить совсем немного действий. В первую очередь нужно создать простой конфигурационный файл для нашего домена **mail.nikkutuzov.ru**
sudo nano /etc/nginx/sites-available/mail.nikkutuzov.ru
Со следующим содержанием
server {
listen 80;
listen [::]:80;
server_name mail.nikkutuzov.ru;
}
Затем перезапустить службу **nginx**
sudo systemctl restart nginx.service
Выпускаем сертификат с автоматической настройкой нашего конфигурационного файла (--nginx) для нашего домена (-d mail.nikkutuzov.ru).
sudo certbot --nginx -d mail.nikkutuzov.ru
После этого нужно привести конфигурационный файл
sudo nano /etc/nginx/sites-available/mail.nikkutuzov.ru
в следующий вид
server {
server_name mail.nikkutuzov.ru;
listen 443 ssl; # managed by Certbot
listen [::]:443 ssl; # managed by Certbot
location / {
proxy_pass https://192.168.11.15;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
}
ssl_certificate /etc/letsencrypt/live/mail.nikkutuzov.ru/fullchain.pem; # managed by >
ssl_certificate_key /etc/letsencrypt/live/mail.nikkutuzov.ru/privkey.pem; # managed b>
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = mail.nikkutuzov.ru) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name mail.nikkutuzov.ru;
return 404; # managed by Certbot
}
:!: Где 192.168.11.15 - это IP-адрес нашей виртуальной машины почтового сервера.
{{:sw:lin:deb:mail:nginx.jpg?400|Настройка проксирующего nginx}}
Перезапускаем службу **nginx**
sudo systemctl restart nginx.service
Настройка окончательно завершена, у нас теперь полноценный почтовый сервер с защитой от спама, антивирусной защитой, с админкой и клиентом для работы с электронной почтой с веб-интерфейсом.
===== Использование =====
Нам доступны при ссылки:
- https://mail.nikkutuzov.ru/iredadmin - админка;
- https://mail.nikkutuzov.ru/mail - клиент с web-интерфейсом (RoundCube);
- https://mail.nikkutuzov.ru/netdata - система мониторинга.
Начнем с самого интересного - админки!
==== Админка ====
Вот так выглядит окно для входа в админку.
{{:sw:lin:deb:mail:iredadmin_1.jpg?1000|Админка}}
Вводим в качестве логина postmaster@nikkutuzov.ru и пароль (мы задавали его при установке iRedMail). Давайте добавим нового пользователя.
{{:sw:lin:deb:mail:iredadmin_4_add_user.jpg?1000|Новый пользователь}}
Позже можно менять его параметры, такие как имя, размер почтового ящика, пароль и прочее.
{{:sw:lin:deb:mail:iredadmin_5_add_user_done.jpg?1000|Правка пользователя}}
Пользователь создан, попробуем отправить письмо! Переходим в web-клиент.
==== Web-клиент RoundCube ====
Переходим по ссылке https://mail.nikkutuzov.ru нас автоматически перенаправляет на https://mail.nikkutuzov.ru/mail
{{:sw:lin:deb:mail:roundcoub_1.jpg?1000|RoundCube}}
Вводим логин/пароль и попадаем в наш почтовый ящик.
{{:sw:lin:deb:mail:roundcoub_2.jpg?1000|Внутри почтового ящика}}
Создадим и отправим письмо, с вложением
{{:sw:lin:deb:mail:roundcoub_3.jpg?1000|Отправляем первое письмо}}
В итоге на стороне получателя видим
{{:sw:lin:deb:mail:first_letter_from_rc.png?800|Полученное письмо}}
Все просто замечательно! Теперь совсем немного про мониторинг.
==== Мониторинг NetData ====
Перейдя по ссылке и введя логин и пароль пользователя **postmaster** мы попадаем в панель мониторинга почтового сервера. Очень много метрик!
{{:sw:lin:deb:mail:netdata_.png?1000|Мониторинг}}
Тут мне нечего сказать, штука, наверняка, нужная и удобная. Но я ей почти не пользовался.
Попробуем настроить почтового клиента на примере Thunderbird.
==== Настройка почтового клиента ====
Настройку будем осуществлять на примере Thunderbird. Я пробовал на трех версиях Windows. А именно на Windows XP, Windows 7 и Windows 11. Работает замечательно хорошо везде!
Вот пример на Windows XP
{{:sw:lin:deb:mail:thunderbird_1.jpg?1000|Настройка}} {{:sw:lin:deb:mail:thunderbird_2.jpg?1000|Исходящие}} {{:sw:lin:deb:mail:thunderbird_3.jpg?1000|Отчет о доставке}}
==== ClamAV ====
Если наш сервер находится за российскими IP-адресами, то clamav не будет обновляться, так как настроенные по умолчанию зеркала заблокированы. Обычно настройки выполняются простым исправлением конфигурационного файла **freshclam.conf**, в debian linux так не получится. Выполняем следующие настройки.
Запустим реконфигурацию **clamav**
sudo dpkg-reconfigure clamav-freshclam
На все, кроме одного вопроса, отвечаем значениями по умолчанию. Только настроим "частные зеркала" (предпоследний скрин). Туда прописываем
https://clamav-mirror.ru
{{:sw:lin:deb:mail:clamav_2.jpg?400|}} {{:sw:lin:deb:mail:clamav_3.jpg?400|}} {{:sw:lin:deb:mail:clamav_4.jpg?400|}} {{:sw:lin:deb:mail:clamav_5.jpg?400|}} {{:sw:lin:deb:mail:clamav_6.jpg?400|}} {{:sw:lin:deb:mail:clamav_7.jpg?400|}} {{:sw:lin:deb:mail:clamav_8_1.jpg?400|}} {{:sw:lin:deb:mail:clamav_9.jpg?400|}}
Затем останавливаем службу автоматического обновления вирусных баз **clamav**
sudo systemctl stop clamav-freshclam.service
Удаляем файл, содержащий информацию об обновлениях вирусных сигнатур.
sudo rm -f /var/lib/clamav/freshclam.dat
Удаляем временные файлы **clamav**
sudo rm -rf /var/lib/clamav/tmp.*
Обновляем антивирус с выводом подробной информации.
sudo freshclam -vvv
Запускаем службу автоматического обновления антивирусных баз **clamav**
sudo systemctl start clamav-freshclam.service
--- //[[nikkutuzov@nikkutuzov.ru|Николай Кутузов]] 2026/09/10 23:21//