В этой статье я расскажу вам о том как быстро настроить собственный почтовый сервер для компании на Ubuntu 22.04 + Modoboa. Данный продукт написан на Python и является бесплатным решением с открытым исходным кодом, он объединяет лучшее из Open Source в одной платформе для размещения и управления почтой, включающая современный и упрощенный веб-интерфейс пользователя, предназначенный для работы с Postfix и Dovecot.
Больше не нужно устанавливать каждый компонент по отдельности, установщик Modoboa выполняет 95% работы менее чем за 10 минут. Вам просто нужно настроить свой DNS.
Содержание статьи
- Возможности решения
- Системные требования
- Регистрация домена у провайдера и проброс портов маршрутизатора
- Подготовка сервера
- Установка Modoboa
- Настройка почтового сервера
- Добавление пользователя и домена на сервере, настройка сайта и почты
- Резервное копирование
- Настройка брандмауэра и Fail2ban
- Вывод
Возможности решения
- Наличие удобной вэб панели для администрирования, а также пользовательского интерфейса для доступа к почте.
- Продукт использует в качестве основных компонентов для работы с почтой Postfix и Dovecot.
- Поддержка баз данных MySQL, MariaDB или PostgreSQL.
- Поддержка неограниченного количества почтовых ящиков и доменов.
- Легко создавайте псевдонимы электронной почты в веб-панели администратора.
- Клиент веб-почты предоставляет простой в использовании фильтр сообщений, помогающий упорядочивать сообщения в разных папках.
- Включает в себя интерфейс amavis для блокировки спама и обнаружения вирусов в электронной почте.
- Календарь и адресная книга.
- Интеграция с Let's Encrypt.
- Включает AutoMX, позволяющий конечным пользователям легко настраивать учетную запись почты в настольном или мобильном почтовом клиенте.
Системные требования
Поддерживаемые операционные системы:
- Debian 9
- Debian 10
- Debian 11
- Ubuntu 18.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
Минимальные системные требования:
Процессор: 1-но ядерный от 1Ггц
Оперативная память: от 512МБ
Жёсткий диск: от 5ГБ
Системные требования для сервера на 100 сотрудников:
- Процессор: 2-х ядерный от 1,8Ггц
- Оперативная память: от 2 ГБ
- Диск: от 500 ГБ
Регистрация домена у провайдера и проброс портов маршрутизатора
Советую Питерского регистратора доменных имён Nethouse.ru, очень быстрый и качественный сервис, с моментальным обновлением DNS записей и приемлемой стоимостью доменных имён, в зоне ru - 150руб.
После покупки прописываем в разделе управления доменом dns записи:
- Запись типа А со значением белого ip адреса нашего маршрутизатора или виртуальной машины на vds хостинге, как в моем случае.
- Запись типа А с именем mail и значением нашего белого ip адреса
- МХ запись типа - @ mx mail.tuning-admina.ru
Modoboa использует AutoMX(Авто обнаружение и автонастройка используется десктопными и мобильными почтовыми клиентами) для реализации этой функции, необходимо в DNS добавить записи CNAME:
autoconfig.tuning-admina.ru CNAME mail.tuning-admina.ru
autodiscover.tuning-admina.ru CNAME mail.tuning-admina.ru
Все основные настройки прописывает у провайдера в редакторе управления DNS записями.
На маршрутизаторе необходимо пробросить порты в зависимости от их в дальнейшем использования:
- 80, 443, 8083 - доступ к сайтам и панели управления
- 25,110,143,465,587,993,995 - порты для хождения почты
Подготовка сервера
Повышаем наши права в системе:
sudo -s
Обновляем систему:
apt update && apt upgrade -y
Устанавливаем дополнительные компоненты:
apt install mc nano wget net-tools -y
Устанавливаем имя нашему серверу:
hostnamectl set-hostname mail.tuning-admina.ru
Устанавливаем временную зону:
timedatectl set-timezone Europe/Moscow
Устанавливаем службу синхронизации времени:
apt install chrony -y
Добавляем службу в автозагрузку:
systemctl enable chrony
Перед тем как продолжить перезагрузим систему:
reboot
Установка Modoboa
Modoboa написан на Python, в связи с этим выполним следующую команду, чтобы установку необходимого программного обеспечения:
apt install git python3-virtualenv python3-pip -y
git clone https://github.com/modoboa/modoboa-installer
Перейдем в скаченный каталог:
cd modoboa-installer
Запускаем скрипт с параметрами для проверки конфигурации:
./run.py --stop-after-configfile-check tuning-admina.ru
Welcome to Modoboa installer!
Configuration file installer.cfg not found, creating new one.
Не найден конфигурационный файл, на самом деле он есть откроем и отредактируем его:
nano installer.cfg
Измените следующие строки:
[certificate]
generate = true
type = letsencrypt
[letsencrypt]
email = admin@tuning-admina.ru
[database]
engine = postgres
host = 127.0.0.1
install = true
Сохраните и закройте файл, затем запустите установку с помощью следующей команды:
./run.py --interactive tuning-admina.ru
Установка завершена, идем проверять доступность вэб интерфейса по адресу: https://mail.tuning-admina.ru
Настройка почтового сервера
Получение сертификатов Let's Encrypt
Автоматическое продление сертификата Let's Encrypt TLS
Modoboa установил последнюю версию клиента Let's Encrypt (certbot) как . Расположение двоичного файла certbot можно найти, выполнив следующую команду.
/opt/certbot-auto
sudo find / -name "*certbot*"
Сертификат Let's Encrypt TLS действителен в течение 90 дней. Чтобы автоматически обновить сертификат, отредактируйте файл crontab пользователя root.
sudo crontab -e
Добавьте следующую строку в конец этого файла.
@daily /opt/certbot-auto renew -q && systemctl reload nginx postfix dovecot
Сохраните и закройте файл. Это говорит Cron выполнять команду обновления certbot каждый день. Если у сертификата осталось 30 дней, certbot обновит его. Необходимо перезагрузить веб-сервер Nginx, SMTP-сервер Postfix и IMAP-сервер Dovecot, чтобы они могли получить новый сертификат.
Добавление пользователя и домена на сервере, настройка сайта и почты
Резервное копирование
Настройка брандмауэра и Fail2ban
Вывод
Я надеюсь вам понравилась статья.
Установка Modoboa
Сохраните и закройте файл. (Чтобы сохранить файл в текстовом редакторе Nano, нажмите , затем нажмите для подтверждения. Чтобы выйти, нажмите клавишу .)Ctrl+OEnterCtrl+X
Затем следует использовать полное доменное имя (FQDN) в качестве имени узла для почтового сервера, например . Выполните следующую команду, чтобы задать имя хоста.mail.example.com
hostnamectl set-hostname mail.example.com
./run.py --interactive example.com
Процесс установки может занять некоторое время. Это заняло 10 минут на моем сервере. После установки перезапустите сервер, чтобы убедиться, что каждая служба запустится автоматически.
shutdown -r now
После того, как Modoboa завершит установку, вы можете войти в админ панель с именем пользователя и паролем: admin password
- Если ваш браузер не может подключиться к панели администратора, возможно, Nginx не запущен. Начните с . Если он не запускается, бегите, чтобы узнать, что не так.
systemctl restart nginx
nginx -t
После того, как вы вошли в систему, вы должны перейти в -> ->, чтобы изменить пароль.AdminSettingsProfile
Добавление почтовых ящиков в админ панель Modoboa
Перейдите на вкладку и нажмите кнопку, чтобы добавить новый домен.DomainsAdd
Затем введите основное доменное имя в поле Имя. Настоятельно рекомендуется включить подписывание DKIM, что может помочь с репутацией вашего домена. В поле вы можете ввести случайное слово, например . Выберите 2048 в качестве длины ключа.Key selectormodoboa
На следующем экране вы можете создать учетную запись администратора для своего домена. Протокол SMTP требует, чтобы почтовый сервер имел postmaster@example.com адрес.
Нажмите кнопку Отправить, и ваше доменное имя будет добавлено в Modoboa.
Чтобы добавить адреса электронной почты, перейдите на вкладку и щелкните свое доменное имя.Domains
Затем щелкните Почтовые ящики.
Нажмите кнопку и выберите .AddAccount
Затем выберите роль. Введите адрес электронной почты в поле Имя пользователя и введите пароль.Simple user
На следующем экране при необходимости можно создать псевдоним для этого адреса электронной почты.
После нажатия кнопки отправки создается адрес электронной почты.
Шаг 5: Отправка тестовых писем
Чтобы войти в веб-почту, вам нужно сначала выйти из учетной записи администратора, а затем ввести учетные данные пользователя.
После того, как вы вошли в веб-почту Modoboa, вы можете отправить тестовое электронное письмо с вашего частного почтового сервера на ваш другой адрес электронной почты и наоборот.
Отключить серый список
Входящие электронные письма будут задерживаться на несколько минут, потому что по умолчанию Modoboa включает серый список, который говорит другому отправляющему SMTP-серверу повторить попытку через несколько минут. Это полезно для блокировки спама. Следующее сообщение указывает на то, что серый список включен./var/log/mail.log
postfix/postscreen[20995]: NOQUEUE: reject: RCPT from [34.209.113.130]:36980: 450 4.3.2 Service currently unavailable;
Тем не менее, серый список может быть довольно раздражающим. Вы можете отключить его, отредактировав основной конфигурационный файл Postfix.
sudo nano /etc/postfix/main.cf
Найдите следующие строки в конце файла и закомментируйте их. (Добавьте символ # в начале каждой строки.)
postscreen_pipelining_enable = yes
postscreen_pipelining_action = enforce
postscreen_non_smtp_command_enable = yes
postscreen_non_smtp_command_action = enforce
postscreen_bare_newline_enable = yes
postscreen_bare_newline_action = enforce
Сохраните и закройте файл. Затем перезапустите Postfix, чтобы изменения вступили в силу.
sudo systemctl restart postfix
Теперь вы сможете получать электронные письма, не дожидаясь нескольких минут.
Отключить политику
Если вы обнаружите следующую ошибку в файле, это означает, что демон политики не запущен./var/log/mail.log
postfix/smtpd[229906]: warning: connect to 127.0.0.1:9999: Connection refused
postfix/smtpd[229906]: warning: problem talking to server 127.0.0.1:9999: Connection refused
Вы можете выполнить следующую команду, чтобы попытаться перезапустить его.
sudo systemctl restart supervisor
Затем проверьте, прослушивает ли демон политики порт 9999.
sudo ss -lnpt | grep 9999
Если он по-прежнему не прослушивает порт 9999, то вам нужно отключить демон политики в Postfix.
sudo nano /etc/postfix/main.cf
Найдите следующие строки.
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:9999
permit_mynetworks
permit_sasl_authenticated
check_recipient_access
proxy:pgsql:/etc/postfix/sql-maintain.cf
proxy:pgsql:/etc/postfix/sql-relay-recipient-verification.cf
reject_unverified_recipient
reject_unauth_destination
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_non_fqdn_helo_hostname
Закомментируйте директиву check_policy_service.
smtpd_recipient_restrictions =
# check_policy_service inet:127.0.0.1:9999
permit_mynetworks
permit_sasl_authenticated
check_recipient_access
proxy:pgsql:/etc/postfix/sql-maintain.cf
proxy:pgsql:/etc/postfix/sql-relay-recipient-verification.cf
reject_unverified_recipient
reject_unauth_destination
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_non_fqdn_helo_hostname
Сохраните и закройте файл. Затем перезапустите Postfix.
sudo systemctl restart postfix
Шаг 6: Проверка того, заблокирован ли порт 25 (исходящий)
Ваш интернет-провайдер или хостинг-провайдер не будет блокировать входящее соединение с портом 25 вашего сервера, что означает, что вы можете получать электронные письма с других почтовых серверов. Тем не менее, многие интернет-провайдеры / хостинг-провайдеры блокируют исходящее соединение с портом 25 других почтовых серверов, что означает, что вы не можете отправлять электронные письма.
Если ваша электронная почта не поступила на другой адрес электронной почты, например Gmail, выполните следующую команду на почтовом сервере, чтобы проверить, заблокирован ли порт 25 (исходящий).
telnet gmail-smtp-in.l.google.com 25
Если он не заблокирован, вы увидите сообщения, как показано ниже, что указывает на успешное установление соединения. (Подсказка. Введите и нажмите клавишу ВВОД, чтобы закрыть подключение.)quit
Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp
Если порт 25 (исходящий) заблокирован, вы увидите что-то вроде:
Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out
В этом случае Postfix не может отправлять электронные письма на другие SMTP-серверы. Попросите вашего интернет-провайдера / хостинг-провайдера открыть его для вас. Если они отклоняют ваш запрос, вам нужно настроить ретрансляцию SMTP для обхода блокировки порта 25.
Все еще не можете отправить электронную почту?
Если порт 25 (исходящий) не заблокирован, но вы по-прежнему не можете отправлять электронные письма со своего почтового сервера на другой адрес электронной почты, такой как Gmail, вам следует проверить почтовый журнал ()./var/log/mail.log
sudo nano /var/log/mail.log
Например, некоторые пользователи могут видеть в файле следующие строки.
host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information
Это означает, что ваш почтовый сервер использует IPv6 для отправки электронной почты, но вы не настроили записи IPv6. Вы должны перейти в диспетчер DNS, установить запись для , затем вы должны установить запись для вашего IPv6-адреса, который обсуждается на шаге 8.AAAAmail.your-domain.comPTR
Шаг 7: Использование почтовых клиентов на вашем компьютере или мобильном устройстве
Запустите настольный почтовый клиент, такой как Mozilla Thunderbird, и добавьте учетную запись электронной почты.
- В разделе Сервер входящей почты выберите Протокол IMAP, введите имя сервера, выберите порт 143 и STARTTLS. Выберите в качестве метода проверки подлинности.mail.your-domain.comnormal password
- В разделе исходящей почты выберите протокол SMTP, введите имя сервера, выберите порт 587 и STARTTLS. Выберите в качестве метода проверки подлинности.mail.your-domain.comnormal password
Вы также можете использовать протокол IMAP на порту 993 с шифрованием SSL/TLS.
Шаг 8: Улучшение доставки электронной почты
Чтобы ваши электронные письма не помечались как спам, вы должны установить , и записи.PTRSPFDKIMDMARC
Запись PTR
Запись указателя или PTR-запись сопоставляет IP-адрес с полным доменным именем (полным доменным именем). Это аналог записи A и используется для обратного поиска DNS, что может помочь с блокировкой спамеров. Многие SMTP-серверы отклоняют электронные письма, если для отправляющего сервера не найдена запись PTR.
Чтобы проверить запись PTR на наличие IP-адреса, выполните следующую команду:
dig -x IP-address +short
или
host IP-address
Запись PTR не управляется регистратором доменных имен. Он управляется организацией, которая предоставляет вам IP-адрес. Поскольку вы получаете IP-адрес от вашего хостинг-провайдера или интернет-провайдера, а не от регистратора доменных имен, вы должны установить запись PTR для своего IP-адреса в панели управления вашего хостинг-провайдера или спросить вашего интернет-провайдера. Его значением должно быть имя хоста вашего почтового сервера: . Если ваш сервер использует IPv6-адрес, обязательно добавьте PTR-запись для вашего IPv6-адреса.mail.your-domain.com
Чтобы отредактировать обратную запись DNS для вашего Kamatera VPS, войдите в клиентскую зону Kamatera, затем откройте запрос в службу поддержки и попросите их добавить запись PTR для IP-адресов вашего сервера, чтобы указать IP-адрес на . Вы можете подумать, что это неудобно, но это делается для того, чтобы держать спамеров подальше от платформы, поэтому законные отправители электронной почты, такие как мы, будут иметь отличную репутацию IP.mail.your-domain.com
Запись SPF
Запись SPF (Sender Policy Framework) указывает, каким узлам или IP-адресу разрешено отправлять сообщения электронной почты от имени домена. Вы должны разрешить только вашему собственному почтовому серверу или серверу вашего интернет-провайдера отправлять электронные письма для вашего домена. В интерфейсе управления DNS создайте новую запись TXT, как показано ниже.
Объяснение:
- TXT указывает, что это запись TXT.
- Введите @ в поле имени, чтобы представить основное доменное имя.
- v=spf1 указывает, что это запись SPF, а версия — SPF1.
- mx означает, что всем хостам, перечисленным в записях MX, разрешено отправлять электронные письма для вашего домена, а всем остальным хостам запрещено.
- ~all указывает, что электронные письма с вашего домена должны приходить только с хостов, указанных в записи SPF. Электронные письма, отправленные с других хостов, будут помечены как поддельные.
Чтобы проверить, распространяется ли ваша запись SPF в общедоступный Интернет, вы можете использовать утилиту dig на вашем компьютере Linux, как показано ниже:
dig your-domain.com txt
Этот параметр говорит, что мы хотим запрашивать только записи TXT.txtdig
Запись DKIM
DKIM (DomainKeys Identified Mail) использует закрытый ключ для цифровой подписи электронных писем, отправленных из вашего домена. Получающие SMTP-серверы проверяют подпись с помощью открытого ключа, который публикуется в записи DNS DKIM.
Когда мы добавляли доменное имя в админ панель Moboboa ранее, мы включили DKIM подпись, поэтому о подписывающей части позаботились. Единственное, что осталось сделать, это создать запись DKIM в ДИСПЕТЧЕРЕ DNS. Сначала зайдите в админ панель Modoboa и выберите свое доменное имя. В разделе DNS нажмите кнопку.Show key
Открытый ключ будет раскрыт. Существует два формата. Нам нужен только формат Bind/named.
Зайдите в диспетчер DNS, создайте запись TXT, введите в поле Имя. (Напомним, что мы использовали modoboa в качестве селектора при добавлении доменного имени в админ панели.) Скопируйте все в скобках и вставьте в поле значения. Удалите все двойные кавычки. Диспетчер DNS может потребовать удаления других недопустимых символов, таких как возврат каретки.modoboa._domainkey
Обратите внимание, что запись DKIM может потребоваться некоторое время для распространения в Интернете. В зависимости от используемого регистратора доменных имен запись DNS может распространяться мгновенно или для распространения может потребоваться до 24 часов. Вы можете перейти в https://www.dmarcanalyzer.com/dkim/dkim-check/, войти в качестве селектора и ввести свое доменное имя, чтобы проверить распространение записи DKIM.modoboa
Для тех, кто заинтересован, Modoboa использует OpenDKIM для генерации закрытого ключа для вашего доменного ключа и проверки подписей входящих электронных писем.
Запись DMARC
DMARC расшифровывается как Domain-based Message Authentication, Reporting and Conformance. DMARC может помочь в получении почтовых серверов для идентификации законных электронных писем и предотвращения использования вашего доменного имени при спуфинге электронной почты.
Чтобы создать запись DMARC, перейдите в диспетчер DNS и добавьте запись TXT. В поле имя введите . В поле значения введите следующее:_dmarc
v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@your-domain.com
Приведенная выше запись DMARC является безопасной отправной точкой. Чтобы увидеть полное объяснение DMARC, пожалуйста, ознакомьтесь со следующей статьей.
Шаг 7: Тестирование оценки электронной почты и размещения
После создания записи PTR, SPF, DKIM перейдите к https://www.mail-tester.com. Вы увидите уникальный адрес электронной почты. Отправьте электронное письмо из своего домена на этот адрес, а затем проверьте свой счет. Как видите, я получил идеальную оценку.
Mail-tester.com можете показать вам только оценку отправителя. Есть еще один сервис под названием GlockApps, который позволяет вам проверить, помещена ли ваша электронная почта в папку «Входящие» получателя или папка спама или отклонена напрямую. Он поддерживает многих популярных поставщиков услуг электронной почты, таких как Gmail, Outlook, Hotmail, YahooMail, почта iCloud и т. Д.
Электронная почта отклонена почтовым ящиком Майкрософт?
Корпорация Майкрософт использует внутренний черный список, который блокирует многие законные IP-адреса. Если ваши электронные письма отклоняются Outlook или Hotmail, вам нужно следовать инструкциям, приведенным ниже, чтобы обойти черный список Microsoft Outlook.
Что делать, если ваши электронные письма по-прежнему помечаются как спам?
У меня есть больше советов для вас в этой статье: Как предотвратить пометку ваших писем как спам. Хотя это займет некоторое время и усилия, ваши электронные письма в конечном итоге будут помещены в почтовый ящик после применения этих советов.
Включение SMTPS-порта 465
Если вы собираетесь использовать клиент Microsoft Outlook, то вам необходимо включить SMTPS-порт 465 в SMTP-сервере Postfix.
Устранение неполадок
Во-первых, пожалуйста, используйте VPS с не менее 2 ГБ оперативной памяти. Запуск Modoboa на 1 ГБ RAM VPS приведет к тому, что база данных, SpamAssassin или ClamAV будут убиты из-за проблемы с нехваткой памяти. Если вы действительно хотите использовать 1 ГБ оперативной памяти VPS, вы потеряете входящие электронные письма и будете иметь другие нежелательные результаты.
Если веб-интерфейс Modoboa недоступен, например, ошибка шлюза 502, вы должны проверить журналы Nginx в каталоге, чтобы найти подсказки. Вы также можете проверить почтовый журнал ./var/log/nginx//var/log/mail.log
Проверьте, запущены ли различные службы.
systemctl status postfix
systemctl status dovecot
systemctl status nginx
systemctl status mariadb
systemctl status clamav-daemon
systemctl status amavis
systemctl status uwsgi
systemctl status supervisor
Если брандмауэр включен, необходимо открыть следующие порты в брандмауэре.
HTTP port: 80
HTTPS port: 443
SMTP port: 25
Submission port: 587 (and 465 if you are going to use Microsoft Outlook mail client)
IMAP port: 143 and 993
Если вы хотите использовать брандмауэр UFW, ознакомьтесь с моим руководством здесь: Начало работы с брандмауэром UFW в Debian и Ubuntu.
Автоматическое отключение ClamAV
Я обнаружил, что сервис имеет тенденцию останавливаться без четкой причины, даже когда достаточно оперативной памяти. Это задержит электронные письма на 1 минуту. Мы можем настроить его на автоматический перезапуск, если он останавливается через сервисный блок systemd. Скопируйте исходный файл сервисного блока в каталог.clamav-daemon/etc/systemd/system/
sudo cp /lib/systemd/system/clamav-daemon.service /etc/systemd/system/clamav-daemon.service
Затем отредактируйте файл сервисного блока.
sudo nano /etc/systemd/system/clamav-daemon.service
Добавьте следующие две строки в раздел [служба].
Restart=always
RestartSec=3
Типа того:
[Service]
ExecStart=/usr/sbin/clamd --foreground=true
# Reload the database
ExecReload=/bin/kill -USR2 $MAINPID
StandardOutput=syslog
Restart=always RestartSec=3
Сохраните и закройте файл. Затем перезагрузите systemd и перезапустите clamav-daemon.service.
sudo systemctl daemon-reload
sudo systemctl restart clamav-daemon
К сожалению, произошла внутренняя ошибка
Если вы видите внутреннее сообщение об ошибке при попытке войти в админ панель Modoboa, отредактируйте файл.settings.py
sudo nano /srv/modoboa/instance/instance/settings.py
Включите режим отладки.
DEBUG = True
Перезапустите uwsgi, чтобы изменения вступили в силу.
sudo systemctl restart uwsgi
Затем попробуйте снова войти в админ панель Modoboa. На этот раз вы увидите точную внутреннюю ошибку. Например, на моем почтовом сервере это
database connection isn't set to UTC
Поэтому мне нужно отредактировать файлsettings.py
sudo nano /srv/modoboa/instance/instance/settings.py
и выключите часовой пояс.
USE_TZ = False
Сохраните и закройте файл. Перезапустите uwsgi, чтобы изменения вступили в силу.
sudo systemctl restart uwsgi
(Необязательно) Настройка автообнаружения и автонастройки для автоматизации настройки почтового клиента
Автообнаружение и автонастройка упрощают настройку настольного или мобильного почтового клиента. Конечному пользователю просто нужно ввести имя, адрес электронной почты и пароль для настройки своей учетной записи электронной почты, без необходимости вводить данные SMTP или IMAP-сервера. Автообнаружение поддерживается почтовым клиентом Microsoft Outlook, а автонастройка поддерживается почтовым клиентом Mozilla Thunderbird.
Modoboa использует AutoMX для реализации этой функции на вашем почтовом сервере. Все, что нам нужно сделать сейчас, это добавить записи CNAME в DNS. В диспетчере DNS создайте две записи CNAME.
autoconfig.yourdomain.com CNAME mail.yourdomain.com
autodiscover.yourdomain.com CNAME mail.yourdomain.com
Перейдите на вкладку в админ панели Modoboa, если она выделена зеленым цветом, это означает, что ваши записи CNAME верны. (Modoboa проверяет записи DNS для вашего почтового сервера каждые 30 минут, поэтому вам, возможно, придется подождать некоторое время, пока автонастройка станет зеленой.)Domainsautoconfig
После распространения записей CNAME в Интернет вам не нужно вводить сведения о сервере SMTP или IMAP при настройке учетной записи почты в Microsoft Outlook и Mozilla Thunderbird.
Если вы используете выделенного пользователя и/или виртуальную среду, не забудьте использовать их:
> sudo -u <modoboa_user> -i bash
> source <virtuenv_path>/bin/activate
Затем выполните следующие команды:
> pip install <EXTENSION>==<VERSION>
> cd <modoboa_instance_dir>
> python manage.py migrate
> python manage.py collectstatic
> python manage.py check --deploy
Затем перезапустите веб-сервер.
Подготовьте систему
Прежде всего, мы рекомендуем следующий контекст:
- Выделенный системный пользователь
- Виртуальная среда для установки приложения, потому что оно изолирует его (и его зависимости) от остальной части вашей системы.
В следующем примере показано, как реализовать это в дистрибутивах на основе Debian с помощью virtualenv :
# apt-get install virtualenv python3-pip
# useradd modoboa # create a dedicated user
# su -l modoboa # log in as the newly created user
$ virtualenv --python python3 ./env # create the virtual environment
$ source ./env/bin/activate # activate the virtual environment
Modoboa зависит от внешних инструментов, и некоторые из них требуют компиляции, поэтому вам понадобится компилятор и несколько библиотек C. Обязательно установите следующие системные пакеты в соответствии с вашим дистрибутивом:
Дебиан / Убунтуbuild-essential python3-dev libxml2-dev libxslt-dev libjpeg-dev librrd-dev rrdtool libffi-dev
Как быстро настроить почтовый сервер на Ubuntu 22.04 с Modoboa
Последнее обновление: Ноябрь 15th, 2022 Xiao Guoan (Admin)
Из этого туториала Вы узнаете, как быстро настроить собственный почтовый сервер на Ubuntu 22.04 с Modoboa, который является бесплатной платформой для размещения и управления почтой с открытым исходным кодом, предназначенной для работы с SMTP-сервером Postfix и сервером Dovecot IMAP/POP3.
Modoboa написана на Python, выпущена на условиях лицензии ISC. Основными особенностями Modoboa являются:
- Modoboa по умолчанию использует веб-сервер Nginx для обслуживания клиента веб-почты и веб-панели администратора.
- Совместимость с Postfix и Dovecot.
- Поддержка MySQL/MariaDB или базы данных PostgreSQL.
- Легко создавайте неограниченные почтовые ящики и неограниченные почтовые домены в веб-панели администратора.
- Легко создавайте псевдонимы электронной почты в веб-панели администратора.
- Клиент веб-почты предоставляет простой в использовании фильтр сообщений, помогающий упорядочивать сообщения в разных папках.
- Это может помочь вам защитить репутацию вашего домена, отслеживая черные списки электронной почты и создавая отчеты DMARC, поэтому ваши электронные письма имеют больше шансов попасть в папку «Входящие», а не в папку спама.
- Включает в себя интерфейс amavis для блокировки спама и обнаружения вирусов в электронной почте.
- Календарь и адресная книга.
- Интеграция с Let's Encrypt.
- Включает AutoMX, позволяющий конечным пользователям легко настраивать учетную запись почты в настольном или мобильном почтовом клиенте.
Шаг 1: Выберите правильного хостинг-провайдера и купите доменное имя
Чтобы настроить полный почтовый сервер с Modoboa, вам нужен сервер с не менее 3 ГБ оперативной памяти, потому что после установки ваш сервер будет использовать более 2 ГБ оперативной памяти.
Примечание: Вы должны установить Modoboa на чистый свежий сервер Ubuntu 22.04.
Этот учебник сделан на $ 9 / месяц Kamatera VPS (виртуальный частный сервер) с 1 процессором и 3 ГБ оперативной памяти. Они предлагают 30-дневную бесплатную пробную версию.
Kamatera - очень хороший вариант для запуска почтового сервера, потому что
- Они не блокируют порт 25, поэтому вы можете отправлять неограниченное количество электронных писем (транзакционная электронная почта и информационные бюллетени), не тратя деньги на службу ретрансляции SMTP. Kamatera не имеет ограничений SMTP. Вы можете отправлять миллион электронных писем в день.
- IP-адрес не находится в черном списке электронной почты. (По крайней мере, это верно в моем случае. Я выбрал центр обработки данных в Далласе.) Вы определенно не хотите, чтобы вас заносили в страшный черный список IP-адресов Microsoft Outlook или черный список спамратов. Некоторые черные списки блокируют весь диапазон IP-адресов, и у вас нет возможности удалить свой IP-адрес из этого черного списка.
- Вы можете редактировать запись PTR, чтобы улучшить доставку электронной почты.
- Они позволяют вам отправлять информационные бюллетени своим подписчикам электронной почты без каких-либо почасовых или дневных ограничений.
- Вы можете заказать несколько IP-адресов для одного сервера. Это очень полезно для людей, которым нужно отправить большой объем электронных писем. Вы можете распределять трафик электронной почты на несколько IP-адресов, чтобы добиться лучшей доставки электронной почты.
Другие провайдеры VPS, такие как DigitalOcean, блокируют порт 25. DigitalOcean не будет разблокировать порт 25, поэтому вам нужно будет настроить РЕТРАНСЛЯЦИЮ SMTP для обхода блокировки, что может стоить вам дополнительных денег. Если вы используете Vultr VPS, то порт 25 заблокирован по умолчанию. Они могут разблокировать его, если вы откроете запрос в службу поддержки, но они могут заблокировать его снова в любое время, если они решат, что ваша активность по отправке электронной почты запрещена. Vultr фактически может повторно заблокировать его, если вы используете их серверы для отправки информационных бюллетеней.
Перейдите на веб-сайт Kamatera, чтобы создать учетную запись, а затем создайте свой сервер на панели управления учетной записью.
Я рекомендую следовать руководству, связанному ниже, чтобы правильно настроить ваш linux VPS-сервер на Kamatera.
После того, как вы создали сервер, Kamatera отправит вам электронное письмо с данными для входа в SSH сервера. Для входа на сервер используется SSH-клиент. Если вы используете Linux или macOS на своем компьютере, просто откройте окно терминала и выполните следующую команду, чтобы войти на свой сервер. Замените 12.34.56.78 IP-адресом вашего сервера.
ssh root@12.34.56.78
Вам будет предложено ввести пароль.
Вам также нужно доменное имя. Я зарегистрировал свое доменное имя от NameCheap, потому что цена низкая, и они дают whois защиту конфиденциальности бесплатно на всю жизнь.
Шаг 2: Создание записи DNS MX
Запись MX указывает, какой узел или хосты обрабатывают электронную почту для определенного доменного имени. Например, хостом, который обрабатывает электронные письма, является . Если кто-то с учетной записью Gmail отправляет электронное письмо , то сервер Gmail запросит запись MX linuxbabe.com. Когда он узнает, что несет ответственность за принятие электронной почты, он затем запрашивает запись A, чтобы получить IP-адрес, таким образом, электронное письмо может быть доставлено.linuxbabe.commail.linuxbabe.comsomebody@linuxbabe.commail.linuxbabe.commail.linuxbabe.com
В диспетчере DNS создайте запись MX для доменного имени. Введите в поле Имя, чтобы представить основное доменное имя, затем введите в поле Значение.@mail.your-domain.com
Примечание: Имя хоста для записи MX не может быть псевдонимом другого имени. Кроме того, настоятельно рекомендуется использовать имена хостов, а не голые IP-адреса для записи MX.
Диспетчер DNS может потребовать, чтобы вы ввели значение предпочтения (также известное как значение приоритета). Это может быть любое число от 0 до 65 356. Небольшое число имеет более высокий приоритет, чем большое число. Можно ввести 0 для почтового сервера или принять значение по умолчанию.
После создания записи MX также необходимо создать запись A для , чтобы ее можно было разрешить в IP-адрес. Если сервер использует IPv6-адрес, обязательно добавьте запись AAAA.mail.your-domain.com
Если вы используете службу DNS Cloudflare, вы не должны включать функцию CDN при создании записи A для вашего почтового сервера.
Шаг 3: Настройка почтового сервера на Ubuntu 22.04 с помощью установщика Modoboa
Войдите на свой сервер через SSH, затем выполните следующие команды для обновления пакетов программного обеспечения.
sudo apt update
sudo apt upgrade -y
Я настоятельно рекомендую создать пользователя для управления сервером, а не использовать пользователя по умолчанию для повышения безопасности сервера. Выполните следующую команду, чтобы создать пользователя. Замените его предпочтительным именем пользователя.sudorootusername
adduser username
Затем добавьте пользователя в группу.sudo
adduser username sudo
Переключитесь на нового пользователя.
su - username
Modoboa написан на Python. Выполните следующую команду, чтобы установить необходимое программное обеспечение Python.
sudo apt-get install -y git python3-virtualenv python3-pip
Скачайте установщик modoboa с Github.
git clone https://github.com/modoboa/modoboa-installer
Затем перейдите в каталог и создайте файл конфигурации. Замените на собственное доменное имя.modoboa-installerexample.com
cd modoboa-installer
sudo ./run.py --stop-after-configfile-check example.com
Отредактируйте конфигурационный файл с помощью текстового редактора командной строки, такого как nano.installer.cfg
sudo nano installer.cfg
Чтобы получить действительный сертификат TLS от Let's Encrypt для вашего почтового сервера, в разделе измените значение типа с на .[certificate]self-signedletsencrypt
type = letsencrypt
И измените адрес электронной почты с вашего реального адреса электронной почты, который будет использоваться для восстановления учетной записи и важных уведомлений. Вы не сможете получить и установить сертификат Let's Encrypt, если используете адрес электронной почты по умолчанию.admin@example.com
По умолчанию установщик Modoboa установит сервер базы данных PostgreSQL, как указано в следующих строках в конфигурационном файле.
[database]
engine = postgres host = 127.0.0.1
install = true
Если вы хотите использовать сервер базы данных MariaDB, измените движок с . (Modoboa установит MariaDB вместо MySQL.)postgresmysql
Сохраните и закройте файл. (Чтобы сохранить файл в текстовом редакторе Nano, нажмите , затем нажмите для подтверждения. Чтобы выйти, нажмите клавишу .)Ctrl+OEnterCtrl+X
Затем следует использовать полное доменное имя (FQDN) в качестве имени узла для почтового сервера, например . Выполните следующую команду, чтобы задать имя хоста.mail.example.com
sudo hostnamectl set-hostname mail.example.com
Теперь нам нужно проверить, распространяются ли записи DNS в Интернет. В зависимости от используемого регистратора доменных имен запись DNS может распространяться мгновенно или для распространения может потребоваться до 24 часов. Вы можете перейти в https://dnsmap.io, ввести имя хоста вашего почтового сервера (), чтобы проверить распространение DNS.mail.example.com
Если запись DNS распространяется, выполните следующую команду, чтобы начать установку. (Пожалуйста, замените на ваше основное доменное имя, такое как . Не используйте поддомен, как в этой команде).example.comlinuxbabe.commail.example.com
sudo ./run.py --interactive example.com
Процесс установки может занять некоторое время. Это заняло 10 минут на моем сервере. После установки перезапустите сервер, чтобы убедиться, что каждая служба запустится автоматически.
sudo shutdown -r now
Если вы видите ошибку во время установки, вы можете использовать эту опцию, чтобы увидеть более подробные выходные данные.--debug
sudo ./run.py --interactive --debug example.com
После того, как Modoboa завершит установку, вы можете войти в админ панель с именем пользователя и паролем.adminpassword
- Если ваш браузер не может подключиться к панели администратора, возможно, Nginx не запущен. Начните с . Если он не запускается, бегите, чтобы узнать, что не так.sudo systemctl restart nginxsudo nginx -t
После того, как вы вошли в систему, вы должны перейти в -> ->, чтобы изменить пароль.AdminSettingsProfile
Шаг 4: Добавление почтовых ящиков в админ панель Modoboa
Перейдите на вкладку и нажмите кнопку, чтобы добавить новый домен.DomainsAdd
Затем введите основное доменное имя в поле Имя. Настоятельно рекомендуется включить подписывание DKIM, что может помочь с репутацией вашего домена. В поле вы можете ввести случайное слово, например . Выберите 2048 в качестве длины ключа.Key selectormodoboa
На следующем экране вы можете создать учетную запись администратора для своего домена. Протокол SMTP требует, чтобы почтовый сервер имел postmaster@example.com адрес.
Нажмите кнопку Отправить, и ваше доменное имя будет добавлено в Modoboa.
Чтобы добавить адреса электронной почты, перейдите на вкладку и щелкните свое доменное имя.Domains
Затем щелкните Почтовые ящики.
Нажмите кнопку и выберите .AddAccount
Затем выберите роль. Введите адрес электронной почты в поле Имя пользователя и введите пароль.Simple user
На следующем экране при необходимости можно создать псевдоним для этого адреса электронной почты.
После нажатия кнопки отправки создается адрес электронной почты.
Шаг 5: Отправка тестовых писем
Чтобы войти в веб-почту, вам нужно сначала выйти из учетной записи администратора, а затем ввести учетные данные пользователя.
После того, как вы вошли в веб-почту Modoboa, вы можете отправить тестовое электронное письмо с вашего частного почтового сервера на ваш другой адрес электронной почты и наоборот.
Отключить серый список
Входящие электронные письма будут задерживаться на несколько минут, потому что по умолчанию Modoboa включает серый список, который говорит другому отправляющему SMTP-серверу повторить попытку через несколько минут. Это полезно для блокировки спама. Следующее сообщение указывает на то, что серый список включен./var/log/mail.log
postfix/postscreen[20995]: NOQUEUE: reject: RCPT from [34.209.113.130]:36980: 450 4.3.2 Service currently unavailable;
Тем не менее, серый список может быть довольно раздражающим. Вы можете отключить его, отредактировав основной конфигурационный файл Postfix.
sudo nano /etc/postfix/main.cf
Найдите следующие строки в конце файла и закомментируйте их. (Добавьте символ # в начале каждой строки.)
postscreen_pipelining_enable = yes
postscreen_pipelining_action = enforce
postscreen_non_smtp_command_enable = yes
postscreen_non_smtp_command_action = enforce
postscreen_bare_newline_enable = yes
postscreen_bare_newline_action = enforce
Сохраните и закройте файл. Затем перезапустите Postfix, чтобы изменения вступили в силу.
sudo systemctl restart postfix
Теперь вы сможете получать электронные письма, не дожидаясь нескольких минут.
Отключить политику
Если вы обнаружите следующую ошибку в файле, это означает, что демон политики не запущен./var/log/mail.log
postfix/smtpd[229906]: warning: connect to 127.0.0.1:9999: Connection refused
postfix/smtpd[229906]: warning: problem talking to server 127.0.0.1:9999: Connection refused
Вы можете выполнить следующую команду, чтобы попытаться перезапустить его.
sudo systemctl restart supervisor
Затем проверьте, прослушивает ли демон политики порт 9999.
sudo ss -lnpt | grep 9999
Если он по-прежнему не прослушивает порт 9999, то вам нужно отключить демон политики в Postfix.
sudo nano /etc/postfix/main.cf
Найдите следующие строки.
smtpd_recipient_restrictions =
check_policy_service inet:127.0.0.1:9999
permit_mynetworks
permit_sasl_authenticated
check_recipient_access
proxy:pgsql:/etc/postfix/sql-maintain.cf
proxy:pgsql:/etc/postfix/sql-relay-recipient-verification.cf
reject_unverified_recipient
reject_unauth_destination
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_non_fqdn_helo_hostname
Закомментируйте директиву check_policy_service.
smtpd_recipient_restrictions =
# check_policy_service inet:127.0.0.1:9999
permit_mynetworks
permit_sasl_authenticated
check_recipient_access
proxy:pgsql:/etc/postfix/sql-maintain.cf
proxy:pgsql:/etc/postfix/sql-relay-recipient-verification.cf
reject_unverified_recipient
reject_unauth_destination
reject_non_fqdn_sender
reject_non_fqdn_recipient
reject_non_fqdn_helo_hostname
Сохраните и закройте файл. Затем перезапустите Postfix.
sudo systemctl restart postfix
Шаг 6: Проверка того, заблокирован ли порт 25 (исходящий)
Ваш интернет-провайдер или хостинг-провайдер не будет блокировать входящее соединение с портом 25 вашего сервера, что означает, что вы можете получать электронные письма с других почтовых серверов. Тем не менее, многие интернет-провайдеры / хостинг-провайдеры блокируют исходящее соединение с портом 25 других почтовых серверов, что означает, что вы не можете отправлять электронные письма.
Если ваша электронная почта не поступила на другой адрес электронной почты, например Gmail, выполните следующую команду на почтовом сервере, чтобы проверить, заблокирован ли порт 25 (исходящий).
telnet gmail-smtp-in.l.google.com 25
Если он не заблокирован, вы увидите сообщения, как показано ниже, что указывает на успешное установление соединения. (Подсказка. Введите и нажмите клавишу ВВОД, чтобы закрыть подключение.)quit
Trying 74.125.68.26...
Connected to gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP y22si1641751pll.208 - gsmtp
Если порт 25 (исходящий) заблокирован, вы увидите что-то вроде:
Trying 2607:f8b0:400e:c06::1a...
Trying 74.125.195.27...
telnet: Unable to connect to remote host: Connection timed out
В этом случае Postfix не может отправлять электронные письма на другие SMTP-серверы. Попросите вашего интернет-провайдера / хостинг-провайдера открыть его для вас. Если они отклоняют ваш запрос, вам нужно настроить ретрансляцию SMTP для обхода блокировки порта 25.
Все еще не можете отправить электронную почту?
Если порт 25 (исходящий) не заблокирован, но вы по-прежнему не можете отправлять электронные письма со своего почтового сервера на другой адрес электронной почты, такой как Gmail, вам следует проверить почтовый журнал ()./var/log/mail.log
sudo nano /var/log/mail.log
Например, некоторые пользователи могут видеть в файле следующие строки.
host gmail-smtp-in.l.google.com[2404:6800:4003:c03::1b] said: 550-5.7.1 [2a0d:7c40:3000:b8b::2] Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information
Это означает, что ваш почтовый сервер использует IPv6 для отправки электронной почты, но вы не настроили записи IPv6. Вы должны перейти в диспетчер DNS, установить запись для , затем вы должны установить запись для вашего IPv6-адреса, который обсуждается на шаге 8.AAAAmail.your-domain.comPTR
Шаг 7: Использование почтовых клиентов на вашем компьютере или мобильном устройстве
Запустите настольный почтовый клиент, такой как Mozilla Thunderbird, и добавьте учетную запись электронной почты.
- В разделе Сервер входящей почты выберите Протокол IMAP, введите имя сервера, выберите порт 143 и STARTTLS. Выберите в качестве метода проверки подлинности.mail.your-domain.comnormal password
- В разделе исходящей почты выберите протокол SMTP, введите имя сервера, выберите порт 587 и STARTTLS. Выберите в качестве метода проверки подлинности.mail.your-domain.comnormal password
Вы также можете использовать протокол IMAP на порту 993 с шифрованием SSL/TLS.
Шаг 8: Улучшение доставки электронной почты
Чтобы ваши электронные письма не помечались как спам, вы должны установить , и записи.PTRSPFDKIMDMARC
Запись PTR
Запись указателя или PTR-запись сопоставляет IP-адрес с полным доменным именем (полным доменным именем). Это аналог записи A и используется для обратного поиска DNS, что может помочь с блокировкой спамеров. Многие SMTP-серверы отклоняют электронные письма, если для отправляющего сервера не найдена запись PTR.
Чтобы проверить запись PTR на наличие IP-адреса, выполните следующую команду:
dig -x IP-address +short
или
host IP-address
Запись PTR не управляется регистратором доменных имен. Он управляется организацией, которая предоставляет вам IP-адрес. Поскольку вы получаете IP-адрес от вашего хостинг-провайдера или интернет-провайдера, а не от регистратора доменных имен, вы должны установить запись PTR для своего IP-адреса в панели управления вашего хостинг-провайдера или спросить вашего интернет-провайдера. Его значением должно быть имя хоста вашего почтового сервера: . Если ваш сервер использует IPv6-адрес, обязательно добавьте PTR-запись для вашего IPv6-адреса.mail.your-domain.com
Чтобы отредактировать обратную запись DNS для вашего Kamatera VPS, войдите в клиентскую зону Kamatera, затем откройте запрос в службу поддержки и попросите их добавить запись PTR для IP-адресов вашего сервера, чтобы указать IP-адрес на . Вы можете подумать, что это неудобно, но это делается для того, чтобы держать спамеров подальше от платформы, поэтому законные отправители электронной почты, такие как мы, будут иметь отличную репутацию IP.mail.your-domain.com
Запись SPF
Запись SPF (Sender Policy Framework) указывает, каким узлам или IP-адресу разрешено отправлять сообщения электронной почты от имени домена. Вы должны разрешить только вашему собственному почтовому серверу или серверу вашего интернет-провайдера отправлять электронные письма для вашего домена. В интерфейсе управления DNS создайте новую запись TXT, как показано ниже.
Объяснение:
- TXT указывает, что это запись TXT.
- Введите @ в поле имени, чтобы представить основное доменное имя.
- v=spf1 указывает, что это запись SPF, а версия — SPF1.
- mx означает, что всем хостам, перечисленным в записях MX, разрешено отправлять электронные письма для вашего домена, а всем остальным хостам запрещено.
- ~all указывает, что электронные письма с вашего домена должны приходить только с хостов, указанных в записи SPF. Электронные письма, отправленные с других хостов, будут помечены как поддельные.
Чтобы проверить, распространяется ли ваша запись SPF в общедоступный Интернет, вы можете использовать утилиту dig на вашем компьютере Linux, как показано ниже:
dig your-domain.com txt
Этот параметр говорит, что мы хотим запрашивать только записи TXT.txtdig
Запись DKIM
DKIM (DomainKeys Identified Mail) использует закрытый ключ для цифровой подписи электронных писем, отправленных из вашего домена. Получающие SMTP-серверы проверяют подпись с помощью открытого ключа, который публикуется в записи DNS DKIM.
Когда мы добавляли доменное имя в админ панель Moboboa ранее, мы включили DKIM подпись, поэтому о подписывающей части позаботились. Единственное, что осталось сделать, это создать запись DKIM в ДИСПЕТЧЕРЕ DNS. Сначала зайдите в админ панель Modoboa и выберите свое доменное имя. В разделе DNS нажмите кнопку.Show key
Открытый ключ будет раскрыт. Существует два формата. Нам нужен только формат Bind/named.
Зайдите в диспетчер DNS, создайте запись TXT, введите в поле Имя. (Напомним, что мы использовали modoboa в качестве селектора при добавлении доменного имени в админ панели.) Скопируйте все в скобках и вставьте в поле значения. Удалите все двойные кавычки. Диспетчер DNS может потребовать удаления других недопустимых символов, таких как возврат каретки.modoboa._domainkey
Обратите внимание, что запись DKIM может потребоваться некоторое время для распространения в Интернете. В зависимости от используемого регистратора доменных имен запись DNS может распространяться мгновенно или для распространения может потребоваться до 24 часов. Вы можете перейти в https://www.dmarcanalyzer.com/dkim/dkim-check/, войти в качестве селектора и ввести свое доменное имя, чтобы проверить распространение записи DKIM.modoboa
Для тех, кто заинтересован, Modoboa использует OpenDKIM для генерации закрытого ключа для вашего доменного ключа и проверки подписей входящих электронных писем.
Запись DMARC
DMARC расшифровывается как Domain-based Message Authentication, Reporting and Conformance. DMARC может помочь в получении почтовых серверов для идентификации законных электронных писем и предотвращения использования вашего доменного имени при спуфинге электронной почты.
Чтобы создать запись DMARC, перейдите в диспетчер DNS и добавьте запись TXT. В поле имя введите . В поле значения введите следующее:_dmarc
v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@your-domain.com
Приведенная выше запись DMARC является безопасной отправной точкой. Чтобы увидеть полное объяснение DMARC, пожалуйста, ознакомьтесь со следующей статьей.
Шаг 7: Тестирование оценки электронной почты и размещения
После создания записи PTR, SPF, DKIM перейдите к https://www.mail-tester.com. Вы увидите уникальный адрес электронной почты. Отправьте электронное письмо из своего домена на этот адрес, а затем проверьте свой счет. Как видите, я получил идеальную оценку.
Mail-tester.com можете показать вам только оценку отправителя. Есть еще один сервис под названием GlockApps, который позволяет вам проверить, помещена ли ваша электронная почта в папку «Входящие» получателя или папка спама или отклонена напрямую. Он поддерживает многих популярных поставщиков услуг электронной почты, таких как Gmail, Outlook, Hotmail, YahooMail, почта iCloud и т. Д.
Электронная почта отклонена почтовым ящиком Майкрософт?
Корпорация Майкрософт использует внутренний черный список, который блокирует многие законные IP-адреса. Если ваши электронные письма отклоняются Outlook или Hotmail, вам нужно следовать инструкциям, приведенным ниже, чтобы обойти черный список Microsoft Outlook.
Что делать, если ваши электронные письма по-прежнему помечаются как спам?
У меня есть больше советов для вас в этой статье: Как предотвратить пометку ваших писем как спам. Хотя это займет некоторое время и усилия, ваши электронные письма в конечном итоге будут помещены в почтовый ящик после применения этих советов.
Автоматическое продление сертификата Let's Encrypt TLS
Сертификат Let's Encrypt TLS действителен в течение 90 дней. Чтобы автоматически обновить сертификат, отредактируйте файл crontab пользователя root.
sudo crontab -e
Добавьте следующую строку в конец этого файла.
@daily /opt/certbot-auto renew -q && systemctl reload nginx postfix dovecot
Сохраните и закройте файл. Это говорит Cron выполнять команду обновления certbot каждый день. Если у сертификата осталось 30 дней, certbot обновит его. Необходимо перезагрузить веб-сервер Nginx, SMTP-сервер Postfix и IMAP-сервер Dovecot, чтобы они могли получить новый сертификат.
Включение SMTPS-порта 465
Если вы собираетесь использовать клиент Microsoft Outlook, то вам необходимо включить SMTPS-порт 465 в SMTP-сервере Postfix.
Устранение неполадок
Во-первых, пожалуйста, используйте VPS с не менее 2 ГБ оперативной памяти. Запуск Modoboa на 1 ГБ RAM VPS приведет к тому, что база данных, SpamAssassin или ClamAV будут убиты из-за проблемы с нехваткой памяти. Если вы действительно хотите использовать 1 ГБ оперативной памяти VPS, вы потеряете входящие электронные письма и будете иметь другие нежелательные результаты.
Если веб-интерфейс Modoboa недоступен, например, ошибка шлюза 502, вы должны проверить журналы Nginx в каталоге, чтобы найти подсказки. Вы также можете проверить почтовый журнал ./var/log/nginx//var/log/mail.log
Проверьте, запущены ли различные службы.
systemctl status postfix
systemctl status dovecot
systemctl status nginx
systemctl status mariadb
systemctl status clamav-daemon
systemctl status amavis
systemctl status uwsgi
systemctl status supervisor
Если брандмауэр включен, необходимо открыть следующие порты в брандмауэре.
HTTP port: 80
HTTPS port: 443
SMTP port: 25
Submission port: 587 (and 465 if you are going to use Microsoft Outlook mail client)
IMAP port: 143 and 993
Если вы хотите использовать брандмауэр UFW, ознакомьтесь с моим руководством здесь: Начало работы с брандмауэром UFW в Debian и Ubuntu.
Автоматическое отключение ClamAV
Я обнаружил, что сервис имеет тенденцию останавливаться без четкой причины, даже когда достаточно оперативной памяти. Это задержит электронные письма на 1 минуту. Мы можем настроить его на автоматический перезапуск, если он останавливается через сервисный блок systemd. Скопируйте исходный файл сервисного блока в каталог.clamav-daemon/etc/systemd/system/
cp /lib/systemd/system/clamav-daemon.service /etc/systemd/system/clamav-daemon.service
Затем отредактируйте файл сервисного блока.
nano /etc/systemd/system/clamav-daemon.service
Добавьте следующие две строки в раздел [служба].
Restart=always
RestartSec=3
Типа того:
[Service]
ExecStart=/usr/sbin/clamd --foreground=true
# Reload the database
ExecReload=/bin/kill -USR2 $MAINPID
StandardOutput=syslog
Restart=always RestartSec=3
Сохраните и закройте файл. Затем перезагрузите systemd и перезапустите clamav-daemon.service.
systemctl daemon-reload
systemctl restart clamav-daemon