Задача: Хочу разобрать как поднимается почтовый сервис на базе iRedMail
сперва на Ubuntu 18.04 Server
Цель которую я преследую данной заметкой и последующими по этой теме — это отойти от использования публичных почтовых серверов (Yandex, Mail, Yahoo
) в пользу своего собственного, где я разберу как он устанавливает, настроена безопасность и шифрование, антивирусная защита, резервное копирование и самое главное почта будут хранится исключительно на моих мощностях и никто к ней не сможет получить доступ. Для меня это приоритетная задача. В роли почтового севера для начала буду использовать iRedMail. iRedMail
— это скрипт оболочки, который автоматически устанавливает и настраивает все необходимые компоненты почтового сервера на вашем сервере Linux
, что само-собой исключает ручную установку и настройку. Но как бы не так, все равно расширенный функционал получается если править конфигурационные файлы. Я согласен на это.
В сборку входят такие пакеты как Postfix+Dovecot+LDAP, MySQL или PostreSQL back-end на выбор)+SpamAssassin+ClamAV+AmaViS+RoundCube .
Более подробно о компонентах и их функциях:
Postfix - агент передачи почты (MTA — Mail transfer agent) предоставляет SMTP сервис;
Dovecot (MDA/LDA) - свободный и очень безопасный POP3/POP3S и IMAP/IMAPS сервер, служит для получения почты. Использует Sieve для фильтрации почтовых сообщений;
MySQL - служит для хранения данных приложений и пользовательских учетных записей, управляется при помощи консоли или phpmyadmin;
OpenLDAP - служит для хранения пользовательских учетных записей про протоколу OpenLDAP;
Policyd - служба политик сервера Postfix; Policyd v2 — кодовое имя «cluebringer»;
Amavisd - используется в качестве интерфейса между Postfix и SpamAssassin.;
SpamAssassin - это одна из самых известных программ по борьбе со спамом,
ClamAV - антивирус, который в свою очередь применяются для обнаружения вирусов в почтовых сообщениях;
Nginx, Apache - web server;
Roundcube - пользовательский веб-интерфейс для почтовой системы;
Awstats - анализатор лог-файлов для Nginx, Apache и Postfix;
iRedAdmin - веб панель администратора;
Fail2ban - программа для сканирования лог-файлов, находящихся (как правило) в каталоге /var/log/maillog и блокирующая те ip-адреса, с которых усматриваются признаки попыток подбора паролей к разнообразным службам;
Я реализую вот такую схему в своей тестовой лаборатории.
WAN-IP
-> по заметке на обычный компьютер установлен Proxmox
, а внутри pfsense, srv-mail (ubuntu 18.04 Server)
Proxmox
enp2s0: 78.108.199.93/29
vmbr1: 10.0.0.1/30
vmbr2: 10.90.90.1/24 (lan network)
srv-gw (pfsense 2.5.5)
vmbr1 - 10.0.0.2/30
vmbr2 - 10.90.90.2/24
srv-mail (Ubuntu 18.04 Server)
vmbr2: 10.90.90.5
Шаг №1:
Покупаем доменное имя и арендуем VPS
я купил доменное имя ekzorchik.com
на jino.ru
Шаг №2:
Прописываем DNS
-записи где куплено DNS
-имя:
Шаг №3:
Создаем запрос в поддержку кто выдал нам статический WAN-IP
адрес с просьбой прописать PTR
запись на соответствие mail.ekzorchik.com = 78.108.199.93
PTR
-запись сопоставляет IP
-адрес вашего сервера с доменным именем, в случае если это не так, вероятнее всего ваши письма будут попадать в спам.
Чтобы проверить выполните следующую команду:
ekzorchik@mail:~$ dig -x 78.108.199.93 +short
В ответ вы должны получать адрес вашего поддомена:
mail.ekzorchik.com.
Шаг №4:
Установите FQDN
— имя вашей системы:
ekzorchik@ubuntu:~$ sudo hostnamectl set-hostname mail.polygon.local ekzorchik@ubuntu:~$ cat /etc/hostname mail.polygon.local
Шаг №5:
Перед установкой мы должны привести запись с адресом нашего сервера в файле /etc/hosts
к виду
ekzorchik@ubuntu:~$ sudo nano /etc/hosts 127.0.0.1 mail.polygon.local mail localhost ekzorchik@ubuntu:~$ sudo reboot
Шаг №6:
на шлюзе (pfSense
) делаем проброс порта
На заметку: Port 25 is used for communication between mail servers.
25 — стандартный SMTP (без шифрования или через STARTTLS);
80 — HTTP для порталов iRedAdmin и Roundcube;
110 — стандартный POP3 (без шифрования или через STARTTLS);
143 — стандартный IMAP (без шифрования или через STARTTLS);
443 — защищенный HTTPS для порталов iRedAdmin и Roundcube;
465 — защищенный SMTP через SSL/TLS;
587 — защищенный SMTP через STARTTLS;
993 — защищенный IMAP через SSL/TLS;
995 — защищенный POP3 через SSL/TLS.
Шаг №7:
Произвожу скачивание и установку iRedMail:
ekzorchik@mail:~$ wget https://github.com/iredmail/iRedMail/archive/1.4.2.tar.gz ekzorchik@mail:~$ tar zxf 1.4.2.tar.gz ekzorchik@mail:~$ cd iRedMail-1.4.2/ ekzorchik@mail:~/iRedMail-1.4.2$ chmod +x iRedMail.sh ekzorchik@mail:~/iRedMail-1.4.2$ sudo ./iRedMail.sh Yes, /var/vmail, Next Choose a web server you want to run: nginx, Next Choose preferred backend used to store mail accounts: MariaDB, Next Password for MySQL administrator: root Password: <PASSWORD>, Next Please specify your first mail domain name: ekzorchik.com, Next Please specify password for the mail domain administrator: <PASSWORD>, Next Optional components: Roundcubemail, netdata, iRedAdmin ************************************************************************* ***************************** WARNING *********************************** ************************************************************************* * * * Below file contains sensitive infomation (username/password), please * * do remember to *MOVE* it to a safe place after installation. * * * * * /home/ekzorchik/iRedMail-1.4.2/config * * ************************************************************************* ********************** Review your settings ***************************** ************************************************************************* * Storage base directory: /var/vmail * Mailboxes: * Daily backup of SQL/LDAP databases: * Store mail accounts in: MariaDB * Web server: Nginx * First mail domain name: ekzorchik.com * Mail domain admin: postmaster@ekzorchik.com * Additional components: Roundcubemail netdata iRedAdmin < Question > Continue? [y|N] y * URLs of installed web applications: * * - Roundcube webmail: https://mail.polygon.lan/mail/ * - netdata (monitor): https://mail.polygon.lan/netdata/ * * - Web admin panel (iRedAdmin): https://mail.polygon.lan/iredadmin/ * * You can login to above links with below credential: * * - Username: postmaster@ekzorchik.com * - Password: <PASSWORD> ekzorchik@mail:~/iRedMail-1.4.2$ sudo reboot
Шаг №8:
Чтобы почта начала приходить и отправляться в моем случае
ekzorchik@mail:~$ sudo nano /etc/postfix/main.cf #myhostname = mail.polygon.local myhostname = ekzorchik.com myorigin = mail.polygon.local #mydomain = mail.polygon.local mydomain = ekzorchik.com ekzorchik@mail:~$ sudo systemctl restart postfix
На заметку: если postfix
используется не только для доставки почты на локальную машину, нужно в строку mydestination
добавить $mydomain.
Шаг №9:
Авторизуюсь в Web
-интерфейсе администрирования
https://mail.ekzorchik.com/iredadmin/
— авторизуюсь
Username: postmaster@ekzorchik.com
Password: <PASSWORD>
создаю почтовый ящик
@mail: alektest@ekzorchik.com
@pass: <PASSWORD>
Шаг №10:
Авторизуюсь в почтовом ящике через Web
-интерфейс
https://mail.ekzorchik.com/mail/
Шаг №11:
Письма отправленные и получаемые в Web
-интерфейсе отображаются + можно видеть в реальном виде лог обработки писем:
ekzorchik@mail:~$ sudo tail -f /var/log/syslog Oct 28 10:58:11 mail postfix/amavis/smtp[4354]: 4Hfybj0nTsz40Xf: to=<alektest@ekzorchik.com>, relay=127.0.0.1[127.0.0.1]:10024, delay=2, delays=0.04/0/0/2, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4Hfybl0cn6z40Xk) Oct 28 10:58:11 mail postfix/qmgr[4213]: 4Hfybj0nTsz40Xf: removed Oct 28 10:58:11 mail postfix/pipe[4399]: 4Hfybl0cn6z40Xk: to=<alektest@ekzorchik.com>, relay=dovecot, delay=0.05, delays=0.01/0.01/0/0.03, dsn=2.0.0, status=sent (delivered via dovecot service) Oct 28 10:58:11 mail postfix/qmgr[4213]: 4Hfybl0cn6z40Xk: removed Oct 28 11:01:01 mail CRON[4452]: (root) CMD (python3 /opt/iredapd/tools/cleanup_db.py >/dev/null) Oct 28 11:01:01 mail CRON[4455]: (root) CMD (python3 /opt/www/iredadmin/tools/cleanup_db.py >/dev/null 2>&1) Oct 28 11:01:01 mail CRON[4454]: (root) CMD (python3 /opt/www/iredadmin/tools/delete_mailboxes.py) Oct 28 11:01:29 mail postfix/anvil[4388]: statistics: max connection rate 1/60s for (smtpd:77.88.28.108) at Oct 28 10:58:08 Oct 28 11:01:29 mail postfix/anvil[4388]: statistics: max connection count 1 for (smtpd:77.88.28.108) at Oct 28 10:58:08 Oct 28 11:01:29 mail postfix/anvil[4388]: statistics: max cache size 1 at Oct 28 10:58:08 Лог отправляемого из веб интерфейса сообщения от имени alektest@ekzorchik.com на ekzorchik@yandex.ru Oct 28 11:02:01 mail CRON[4474]: (root) CMD (python3 /opt/iredapd/tools/spf_to_greylist_whitelists.py >/dev/null) Oct 28 11:02:20 mail postfix/submission/smtpd[4484]: connect from mail.polygon.local[127.0.0.1] Oct 28 11:02:20 mail postfix/submission/smtpd[4484]: Anonymous TLS connection established from mail.polygon.local[127.0.0.1]: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) Oct 28 11:02:20 mail postfix/trivial-rewrite[4486]: warning: do not list domain ekzorchik.com in BOTH mydestination and virtual_mailbox_domains Oct 28 11:02:20 mail postfix/trivial-rewrite[4486]: warning: do not list domain ekzorchik.com in BOTH mydestination and virtual_mailbox_domains Oct 28 11:02:20 mail postfix/submission/smtpd[4484]: 4HfyhX6PvLz40Xf: client=mail.polygon.local[127.0.0.1], sasl_method=LOGIN, sasl_username=alektest@ekzorchik.com Oct 28 11:02:20 mail postfix/cleanup[4492]: 4HfyhX6PvLz40Xf: message-id=<67d389a15f9efb1421f76faa4d11c4a9@ekzorchik.com> Oct 28 11:02:20 mail roundcube: <i694lht9> User alektest@ekzorchik.com [95.221.47.84]; Message <67d389a15f9efb1421f76faa4d11c4a9@ekzorchik.com> for ekzorchik@yandex.ru; 250: 2.0.0 Ok: queued as 4HfyhX6PvLz40Xf Oct 28 11:02:20 mail postfix/qmgr[4213]: 4HfyhX6PvLz40Xf: from=<alektest@ekzorchik.com>, size=543, nrcpt=1 (queue active) Oct 28 11:02:20 mail postfix/submission/smtpd[4484]: disconnect from mail.polygon.local[127.0.0.1] ehlo=2 starttls=1 auth=1 mail=1 rcpt=1 data=1 quit=1 commands=8 Oct 28 11:02:21 mail postfix/10025/smtpd[4502]: connect from mail.polygon.local[127.0.0.1] Oct 28 11:02:21 mail postfix/trivial-rewrite[4486]: warning: do not list domain ekzorchik.com in BOTH mydestination and virtual_mailbox_domains Oct 28 11:02:21 mail postfix/10025/smtpd[4502]: 4HfyhY0qvDz40Xk: client=mail.polygon.local[127.0.0.1] Oct 28 11:02:21 mail postfix/cleanup[4492]: 4HfyhY0qvDz40Xk: message-id=<67d389a15f9efb1421f76faa4d11c4a9@ekzorchik.com> Oct 28 11:02:21 mail postfix/qmgr[4213]: 4HfyhY0qvDz40Xk: from=<alektest@ekzorchik.com>, size=1786, nrcpt=1 (queue active) Oct 28 11:02:21 mail postfix/10025/smtpd[4502]: disconnect from mail.polygon.local[127.0.0.1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5 Oct 28 11:02:21 mail amavis[1931]: (01931-02) Passed CLEAN {RelayedInternal}, ORIGINATING/MYNETS LOCAL [127.0.0.1]:52434 ESMTP/ESMTP <alektest@ekzorchik.com> -> <ekzorchik@yandex.ru>, (), Queue-ID: 4HfyhX6PvLz40Xf, Message-ID: <67d389a15f9efb1421f76faa4d11c4a9@ekzorchik.com>, mail_id: kl1Bzo_KVqot, b: NIvTzhDsA, Hits: -1, size: 543, queued_as: 4HfyhY0qvDz40Xk, Subject: "2222", From: <alektest@ekzorchik.com>, User-Agent: Roundcube_Webmail, helo=localhost, Tests: [ALL_TRUSTED=-1], autolearn=ham autolearn_force=no, autolearnscore=0, dkim_new=dkim:ekzorchik.com, 171 ms Oct 28 11:02:21 mail postfix/amavis/smtp[4497]: 4HfyhX6PvLz40Xf: to=<ekzorchik@yandex.ru>, relay=127.0.0.1[127.0.0.1]:10026, delay=0.27, delays=0.07/0.01/0/0.18, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 4HfyhY0qvDz40Xk) Oct 28 11:02:21 mail postfix/qmgr[4213]: 4HfyhX6PvLz40Xf: removed Oct 28 11:02:21 mail postfix/smtp[4503]: Trusted TLS connection established to mx.yandex.ru[77.88.21.249]:25: TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) Oct 28 11:02:21 mail postfix/smtp[4503]: 4HfyhY0qvDz40Xk: to=<ekzorchik@yandex.ru>, relay=mx.yandex.ru[77.88.21.249]:25, delay=0.85, delays=0.01/0.02/0.15/0.66, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on vla5-6df523ac66f4.qloud-c.yandex.net as 1635408141-b6S3LLD0Kq-2Ls0xgcC) Oct 28 11:02:21 mail postfix/qmgr[4213]: 4HfyhY0qvDz40Xk: removed
тока сообщения попадают в SPAM:
содержимое письма с темой 2222
Received: from vla5-6df523ac66f4.qloud-c.yandex.net (vla5-6df523ac66f4.qloud-c.yandex.net [2a02:6b8:c18:348f:0:640:6df5:23ac]) by vla5-ccb8f91e485f.qloud-c.yandex.net with LMTP id roZNN5onXF-RzWAFjJv for <ekzorchik@yandex.ru>; Thu, 28 Oct 2021 11:02:21 +0300 Received: from ekzorchik.com (78.108.199.93 [78.108.199.93]) by vla5-6df523ac66f4.qloud-c.yandex.net (mxfront/Yandex) with ESMTPS id b6S3LLD0Kq-2Ls0xgcC; Thu, 28 Oct 2021 11:02:21 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) Return-Path: alektest@ekzorchik.com X-Yandex-TimeMark: 1635408141.412 X-Yandex-Fwd: 1 Authentication-Results: vla5-6df523ac66f4.qloud-c.yandex.net; dkim=neutral header.i=@ekzorchik.com X-Yandex-Spam: 4 X-Yandex-Suid-Status: 4 190115445 Received: from mail.polygon.local (mail.polygon.local [127.0.0.1]) by ekzorchik.com (Postfix) with ESMTP id 4HfyhY0qvDz40Xk for <ekzorchik@yandex.ru>; Thu, 28 Oct 2021 11:02:21 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ekzorchik.com; h= content-transfer-encoding:content-type:message-id:user-agent :subject:to:from:date:mime-version; s=dkim; t=1635408140; x= 1638000141; bh=jhrRVKkvcmW2U1JbeDDSIEi+JZqUBTUMU2Ulo7iLZyc=; b=2 fNJB48QySw2xFuzloWt93j9AgnYHOoxAoxThHT0MF4X7SrVoiw8c/5Hx28CgLBtw AphGq6+E2/0kc12zTNF8nDe2O1LHCA7v6wJySaFe+S6xVz+q/yMJgdZIps1j1mKv ocwt8W4ycti2zUNEP3nOMRZzAFRNYzmMhLaphnpMt+RpW/Y4bwd3rzl2I6b9DaXI B6ZApjmO+WutfIerB6Lc+Ao8hdxX1U90rsIkKPZQqUzQE/PsX1M5OLdisNQnDzOB dWbi4qQoGygpNn1Zmszr9Zi6WQQRlxTcdgWBnIEkVFRlwq+e+kx3lwxSccP6ct+q c5uBZ4bWITdzt8/vwMiOg== X-Virus-Scanned: Debian amavisd-new at mail.polygon.local Received: from ekzorchik.com ([127.0.0.1]) by mail.polygon.local (mail.polygon.local [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id kl1Bzo_KVqot for <ekzorchik@yandex.ru>; Thu, 28 Oct 2021 11:02:20 +0300 (MSK) Received: from localhost (mail.polygon.local [127.0.0.1]) by ekzorchik.com (Postfix) with ESMTPSA id 4HfyhX6PvLz40Xf for <ekzorchik@yandex.ru>; Thu, 28 Oct 2021 11:02:20 +0300 (MSK) MIME-Version: 1.0 Date: Thu, 28 Oct 2021 11:02:20 +0300 From: alektest@ekzorchik.com To: ekzorchik@yandex.ru Subject: 2222 User-Agent: Roundcube Webmail Message-ID: <67d389a15f9efb1421f76faa4d11c4a9@ekzorchik.com> X-Sender: alektest@ekzorchik.com Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit X-Yandex-Forward: 49486e59bf228f8857d81b7c0161154a 222
Шаг №12:
Сейчас буду устанавливать сертификат Lets Encrypted
дабы уйти от Web
-строки при обращении к iRedMail
что сертификат у меня самоподписанный:
ekzorchik@mail:~$ sudo apt-get install -y python-certbot-nginx ekzorchik@mail:~$ sudo certbot certificates Saving debug log to /var/log/letsencrypt/letsencrypt.log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - No certs found. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ekzorchik@mail:~$ ekzorchik@mail:~$ hostname mail.polygon.local
На заметку: Важно чтобы доступ к почтовому серверу mail.ekzorchik.com
был открыт при обращении через 80/tcp
ekzorchik@mail:~$ sudo certbot certonly --webroot --agree-tos --email support@ekzorchik.ru -d mail.ekzorchik.com -w /var/www/html/ Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator webroot, Installer None Obtaining a new certificate Performing the following challenges: http-01 challenge for mail.ekzorchik.com Using the webroot path /var/www/html for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/mail.ekzorchik.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/mail.ekzorchik.com/privkey.pem Your cert will expire on 2022-01-26. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le ekzorchik@mail:~$
Шаг №13:
Чтобы полученный сертификат от Let's Encrypt
обновлялся самостоятельно каждые 90
дней (по умолчанию) нужно:
ekzorchik@mail:~$ sudo crontab -e @daily letsencrypt renew --quiet && systemctl reload postfix dovecot nginx
Шаг №14:
После получения сертификата TLS
, давайте сконфигурируем nginx
:
ekzorchik@mail:~$ sudo nano /etc/nginx/templates/ssl.tmpl #ssl_certificate /etc/ssl/certs/iRedMail.crt; #ssl_certificate_key /etc/ssl/private/iRedMail.key; ssl_certificate /etc/letsencrypt/live/mail.ekzorchik.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/mail.ekzorchik.com/privkey.pem; ekzorchik@mail:~$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful ekzorchik@mail:~ ekzorchik@mail:~$ sudo systemctl restart nginx.service
Шаг №15:
Открываем браузер и переходим в веб-интерфейс iredadmin
—
Шаг №16:
Гарантируем доставку почты.
Чтобы ваши письма не помечались как спам, в популярных паблик сервисах эл. почты, вы должны установить PTR SPF, DKIM
и DMARC
-записи.
SPF
запись Запись SPF (Sender Policy Framework)
указывает, какие хосты или IP-адрес разрешены для отправки сообщений электронной почты от имени домена. Там должен быть указан только адрес вашего VPS.
Эта запись создается в настройках домена, в панели вашего регистратора.
Создайте там TXT
-запись со следующим содержанием:
Record - TXT
Name - @
Value - v=spf1 mx ~all
TTL - 90 sec
DKIM
запись DKIM (DomainKeys Identified Mail)
использует закрытый ключ для подписи исходящих сообщений, отправленных с вашего домена. Получающие SMTP
-серверы проверяют эту подпись с помощью открытого ключа, который публикуется в -записи DKIM
.
Скрипт iRedMail
автоматически создает DKIM
для вашего сервера. Единственное, что осталось сделать, это создать DKIM
запись.
Быстрее всего выполнить команду:
ekzorchik@mail:~$ amavisd-new showkeys Error in config file "/etc/amavis/conf.d/50-user": Can't open PEM file /var/lib/dkim/ekzorchik.com.pem: Permission denied at /usr/sbin/amavisd-new line 637. ekzorchik@mail:~$ sudo amavisd-new showkeys ; key#1 2048 bits, i=dkim, d=ekzorchik.com, /var/lib/dkim/ekzorchik.com.pem dkim._domainkey.ekzorchik.com. 3600 TXT ( "v=DKIM1; p=" "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7nK+lhw/fTWj7YSNAaDR" "z/wxarXfniTQYj8yct3gRFxkjO5zP3N48kqzk3DxFflYdy3IZyS3jJUAxGXp2f+q" "mzH+f5Wqr6uibT2dS7Xg++NGig2qsFcAv2UXopUnznVxLC7WNHmLEIam07yF8Ck4" "zbKjWnJRTJOoL7PIZ/TpDPFK+NGjEQgecapGisMZAv9VH4gZod0cNE41D0tP0Qr5" "/lVzZUIyMgwrHF04zc0ohOSnI5RR+6ke9Fajk9W7Cp2WrL2LFbnvHzE7A3XrFcgi" "UbXGJGzfrtkFMSC6jO5mmgkp+uyujiihwRhNZ/lDzeGVSl8zKLe9YhAlhmuzA/0Y" "YwIDAQAB") ekzorchik@mail:~$ ekzorchik@mail:~$ cd iRedMail-1.4.2/ ekzorchik@mail:~/iRedMail-1.4.2$ sudo nano iRedMail.tips
record for DKIM support: копируем блок, который начинается на — «v=DKIM1; p=».
Теперь создадим еще одну запись в панели регистратора (у меня на jino.ru
) предварительно удалив все кавычки из только что скопированного блока текста.
Record type - TXT
Name - dkim._domainkey
Value - v=DKIM1; p= ваш ключ....
TTL - 90 sec
Проверим, что все правильно сделали:
ekzorchik@mail:~/iRedMail-1.4.2$ sudo amavisd-new testkeys TESTING#1 ekzorchik.com: dkim._domainkey.ekzorchik.com => pass ekzorchik@mail:~/iRedMail-1.4.2$
DMARC
запись — отвечает за проверку подлинности отправителя. В настройках регистратора создадим новую запись:
DNS record - TXT
Name - _dmarc
Value - v=DMARC1; p=none; pct=100; rua=mailto:dmarc-reports@ekzorchik.com
TTL - 5 min
Шаг №17:
Чтобы к POP3/IMAP
можно было подключаться без STARTTLS
нужно открыть файл конфигурации Dovecot:
ekzorchik@mail:~$ sudo nano /etc/dovecot/dovecot.conf #ssl = required ssl = yes #disable_plaintext_auth = yes disable_plaintext_auth = no ekzorchik@mail:~$ sudo systemctl restart dovecot
Шаг №18:
А теперь реализую вот такую схему работы:
Шаг №19:
Установим TLS
сертификат в Postfix and Dovecot
ekzorchik@mail:~$ sudo ls /etc/letsencrypt/live/mail.ekzorchik.com README cert.pem chain.pem fullchain.pem privkey.pem Открываем main.cf и вместо дефолтных значений указываем путь до файлов созданных под доменное имя почтового сервера: ekzorchik@mail:~$ sudo nano /etc/postfix/main.cf #smtpd_tls_key_file = /etc/ssl/private/iRedMail.key #smtpd_tls_cert_file = /etc/ssl/certs/iRedMail.crt #smtpd_tls_CAfile = /etc/ssl/certs/iRedMail.crt smtpd_tls_key_file = /etc/letsencrypt/live/mail.ekzorchik.com/privkey.pem smtpd_tls_cert_file = /etc/letsencrypt/live/mail.ekzorchik.com/cert.pem smtpd_tls_CAfile = /etc/letsencrypt/live/mail.ekzorchik.com/chain.pem smtpd_tls_CApath = /etc/ssl/certs
Перезапускаю Postfix:
ekzorchik@mail:~$ sudo systemctl restart postfix
Отредактируем конфигурационный файл Dovecot:
ekzorchik@mail:~$ sudo nano /etc/dovecot/dovecot.conf #ssl_cert = </etc/ssl/certs/iRedMail.crt #ssl_key = </etc/ssl/private/iRedMail.key ssl_cert = </etc/letsencrypt/live/mail.ekzorchik.com/fullchain.pem ssl_key = </etc/letsencrypt/live/mail.ekzorchik.com/privkey.pem
Перезапускаю Dovecot:
ekzorchik@mail:~$ sudo systemctl reload dovecot
Шаг №20:
Включаю работу отправки почты через SMTPS 465/tcp:
ekzorchik@mail:~$ sudo nano /etc/postfix/master.cf 465 inet n - y - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_client_restrictions=permit_mynetworks,permit_sasl_authenticated,rej$ -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o smtpd_sasl_type=dovecot # -o smtpd_sasl_path=private/auth -o content_filter=smtp-amavis:[127.0.0.1]:10026 ekzorchik@mail:~$ sudo systemctl restart postfix
после смотрим лог
ekzorchik@mail:~$ sudo tail -f /var/log/mail.log
Теперь настройки для подключения к почтовому серверу:
IMAP:
mail.ekzorchik.com
993
SSL/TLS
SMTP:
mail.ekzorchik.com
465
SSL/TLS
На заметку: исходя и портов выше которые нужны для работы почтового сервера я оставляю правила проброс порта на pfsense: 25,80,443,465,993
порты: 143,587
— убираю
и произведя настройки на смартфоне Honor 9X
письмо отправленное на support@ekzorchik.ru
уже попадает в папку "Входящие"
, а не как раньше "Спам"
На заметку: После не забыть посмотреть заметку "Подключение Outlook 2016 к серверу iRedMail домена @ekzorchik.ru"
Итого, я для себя разобрал как поднять почтовый сервер на базе iRedmail
, получен сертификат от Let's Encrypt
, почтовый ящик подключается через 993/tcp & 465/tcp
— сейчас еще потестируем различный функционал, как было ранее сделано с OwnCloud
(ранее использовал Dropbox
) и переведу сервис почты под свое крыло администрирования дабы не зависеть ни от кого, а полагаться на собственные силы. Тем самым получая опыт и знания. На этом пока заметка завершена, с уважением автор блога Олло Александра aka ekzorchik.