Как стать автором
Обновить

Настройка iredmail на debian 10 (buster)

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров4.6K

mail server - это программа, которая передаёт сообщение от одного компьютера к другому.

iredmail - это многофункциональный почтовый сервер с открытым исходным кодом, который предназначен для дистрибутивов Linux. В инструкции рассмотрим, как установить iRedMail вручную и выполнить необходимые настройки.

1. Первоначальная настройка

И так, данная инструкция написана под систему Debian. Предварительно, выполним следующие действия:

Делаем все под root.

Приступим к установке, обновим пакеты:

sudo apt update && apt upgrade

Ждем обновления, если они обновлены идем дальше:

Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа:

sudo hostnamectl set-hostname mail.example.com

Гдеexample.comваш домен:

Устанавливаем пакет времени:

sudo apt install chrony

Устанавливаем время на сервере:

sudo timedatectl set-timezone Europe/Moscow

Чтобы получить список всех возможных зон, вводим timedatectl list-timezones:

sudo systemctl enable chrony

заранее открываем порты на брандмауэре с помощью iptables:

Брандмауэр — это приложение, на котором происходит фильтрация сетевого трафика на основе заданных администратором правил:

sudo iptables -I INPUT 1 -p tcp --match multiport --dports 25,110,143,465,587,993,995 -j ACCEPT

sudo iptables -I INPUT 1 -p tcp --match multiport --dports 80,443 -j ACCEPT

* где мы откроем следующие порты:

  • 25 — стандартный SMTP через STARTTLS;

  • 110 — стандартный POP3 через STARTTLS;

  • 143 — стандартный IMAP через STARTTLS;

  • 465 — защищенный SMTP через SSL/TLS;

  • 587 — защищенный SMTP через STARTTLS;

  • 993 — защищенный IMAP через SSL/TLS;

  • 995 — защищенный POP3 через SSL/TLS

  • 80 — HTTP для порталов iredadmin и Roundcube;

  • 443 — защищенный HTTPS для порталов iredadmin и Roundcube;

Если он не установлен то ставим:

sudo apt install iptables iptables-persistent

2. Установка iredmail

Проверяем хост который устанавливали ранее:

sudo hostname -f

В ответ вы получите ваш домен:

Устанавливаем зависимости:

sudo apt install gzip dialog

И скачиваем iredmail:

sudo wget https://github.com/iredmail/iRedMail/archive/refs/tags/1.6.8.tar.gz

Распаковываем:

sudo tar zxf iRedMail-1.6.8.tar.gz

Переходим в файл:

sudo cd /iRedMail-1.6.8

Запускаем скрипт:

sudo bash iRedMail.sh

Скрипт напишет Welcome and thanks for your use (Добро пожаловать и спасибо за ваше использование). Нажимаем yes:

Пишем 'y'. И ждем примерно 20 минут.

И после делаем перезагрузку сервера:

sudo reboot

Примеры страниц:

http://mail.example.com/iredmail

http://mail.example.com/webmail

http://mail.example.com/sogo

3. Webmin install

После можно установить webmin.С webmin легко управлять mail server и debian:

sudo curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh

sudo sh setup-repos.sh

sudo apt-get install webmin --install-recommends

4. IredMail ssl

sudo cp {{Ваш сертификат}} /etc/ssl/certs/certs/iRedMail.crt

sudo cp {{Ваш приватный ключ}} /etc/ssl/private/iRedMail.key

sudo service nginx restart

5. Защищаемся от вирусов и СПАМА

Открываем конфигурационный файл amavis:

sudo mcedit /etc/amavis/conf.d/15-content_filter_mode

Снимаем комментарии для строк или добавляем:

@bypass_virus_checks_maps = (   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (   \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

Разрешаем запуск антивируса clamav и amavis:

sudo systemctl enable clamav-daemon clamav-freshclam amavis

sudo systemctl restart amavis clamav-daemon clamav-freshclam

Для обновления базы антиспама выполняем команду:

sudo sa-update --nogpg --verbose

Так как серверы обновление антивируса заблокированы для российских IP-адресов, вносим изменения в конфигурацию:

sudo mcedit /etc/clamav/freshclam.conf

Комментируем строки, которые начинаются на ##DatabaseMirror:

##DatabaseMirror

##DatabaseMirror

И добавляем строку:

DatabaseMirror https://pivotal-clamav-mirror.s3.amazonaws.com

Останавливаем службу clamav-freshclam:

sudo systemctl stop clamav-freshclam

Удаляем старую информацию об обновлениях:

sudo rm -f /var/lib/clamav/freshclam.dat

Запускаем обновление:

sudo freshclam

Ждем обновления, после запускаем службу clamav-freshclam и перезапускаем clamav-daemon:

sudo systemctl start clamav-freshclam

sudo systemctl restart clamav-daemon

Для проверки антивируса отправляем сообщение со следующим содержимым:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

Письмо не должно дойти, а в логе (/var/log/maillog) мы увидим строку:

amavis[17688]: (17688-04) Blocked INFECTED (Eicar-Signature) {DiscardedOutbound,Quarantined}, MYNETS LOCAL

 relay=127.0.0.1[127.0.0.1]:10024, delay=0.25, delays=0.19/0/0/0.06, dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=17688-04 - INFECTED: Eicar-Signature)

Для проверки работы контентного антиспама, отправляем письмо со следующим содержимым:

XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

В логе (/var/log/maillog) мы увидим:

amavis[17689]: (17689-04) Blocked SPAM {DiscardedOutbound,Quarantined}, MYNETS LOCAL status=sent (250 2.7.0 Ok, discarded, id=17689-04 - spam)

6. Отправка почты наружу

Для отправки почты на другие почтовые серверы необходимо правильно сконфигурировать сервер, чтобы письма не попадали в СПАМ. Чтобы это сделать, выполняем инструкции ниже:

Настройки DNS для сервера

Многие почтовые серверы делают запросы в систему доменных имен для проверки легитимности почтового сервера, отправляющего почту. При настройке MTA очень важно правильно добавить необходимые записи в DNS:

1. DNS. Обратная зона используется для проверки соответствия имени сервера в приветствии с именем, которое возвращает NS сервер при запросе по PTR-записи:

И так, для создания записи в обратной зоне, необходимо написать письмо Интернет провайдеру, к сети которого подключен сервер, если почтовый сервер настроен на VPS. IP-адрес нашего сервера должен вести на имя, которым приветствуется наш postfix — можно посмотреть командой:

postconf -n smtpd_banner

Если мы получим пустой ответ, то вводим:

postconf -n myhostname

Если и в этот вариант не вернет ответ, вводим:

hostname

2. А-запись. Также необходимо, чтобы имя сервера, которым представляется почтовый сервер разрешалось в IP-адрес:

Для этого заходим в консоль управления зоной нашего домена и создаем запись типа А для сопоставления имени сервера с IP-адресом, на котором слушает запросы данный сервер:

Настройки DNS для домена

Для каждого домена, для которого будем отправлять почту создаем записи:

  1. SPF.

  2. DMARC.

  3. DKIM

Для проверки корректности настройки сервера, воспользуемся ресурсами:

7. Настройка SPF, DKIM и DMARC

DKIM добавляет в заголовки письма цифровую подпись, которая подтверждает подлинность отправителя и гарантирует целостность письма:

Устанавливаем opendkim:

sudo apt install opendkim opendkim-tools

Запускаем службу и добавляем ее в автозагрузку:

sudo systemctl start opendkim

sudo systemctl enable opendkim

Создаём директорию, где будут лежать ключи:

sudo mkdir -p /etc/opendkim/keys/example.com

Генерируем ключи:

sudo opendkim-genkey --directory /etc/opendkim/keys/example.com/ --domain example.com --selector dkim

Правим права на ключи:

sudo chown -R opendkim:opendkim /etc/opendkim/keys/example.com

В конец файла /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

ignatureAlgorithm rsa-sha256

UserID opendkim:opendkim

Socket inet:8891@localhost

В файл /etc/opendkim/TrustedHosts вносим наш домен:

*.example.com

Файл должен выглядеть таким образом:

127.0.0.1

localhost

*.example.com

Открываем файл /etc/opendkim/KeyTable и приводим к такому виду:

dkim._domainkey.example.com example.com:dkim:/etc/opendkim/keys/example.com/dkim.private

Правим файл /etc/opendkim/SigningTable и указываем в нём следующие данные:

*@example.com dkim._domainkey.example.com

Если по каким-либо причинам этих файлов у вас нет, то их нужно создать:

Для Debian указываем порт, на котором будет работать opendkim:

sudo echo 'SOCKET="inet:8891@localhost"' >> /etc/default/opendkim

И добавляем работу с DKIM в настройку postfix.

sudo postconf -e 'milter_default_action=accept'

sudo postconf -e 'milter_protocol=2'

sudo postconf -e 'smtpd_milters=inet:127.0.0.1:8891'

sudo postconf -e 'non_smtpd_milters=inet:127.0.0.1:8891'

Перезапускаем службы для применения настроек:

sudo systemctl restart opendkim

sudo systemctl restart postfix

Теперь нужно разместить публичный ключ на серверах имён домена, узнать его можно в файле /etc/opendkim /keys/example.com/dkim.txt:

Пример, как это выглядит в нашей панели управления записями доменов:

На серверах имён нужно разместить TXT-запись со следующим содержанием:
Имя: _dmarc.ВАШ_ДОМЕН:
Значение: v=DMARC1; p=none; aspf=r; sp=none

Теперь при отправлении писем с сервера принимающая сторона не будет расценивать их как спам и ваши сообщения дойдут до адресата:

8. Возможные проблемы

1. Не подключиться к серверу по IMAP в Outlook на старых системах Windows

При попытке подключиться к серверу мы можем увидеть ошибку «Невозможно установить безопасное соединение с сервером «IMAP»:

Причина: в старых системах используется по умолчанию TLS 1.0, поддержка которого уже отсутствует:

Решение: необходимо выполнить 3 действия:

1. Устанавливаем обновление KB3140245:

2. Создаем две ветки реестра:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1\Client

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2\Client

Это можно выполнить вручную в утилите regedit или ввести команды:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1\Client"

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2\Client"

В созданных ветках создаем параметр DisabledByDefault с типом DWORD (32 бита) и значением 0. Это можно выполнить командами:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.1\Client" /v DisabledByDefault /t REG_DWORD /d 0

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\Schannel\Protocols\TLS 1.2\Client" /v DisabledByDefault /t REG_DWORD /d 0

Перезагружаем компьютер:

2. Roundcube authentification failed

При попытке отправки письма программа выдает ошибку аутентификации.

Причина: ошибка при передаче пароля самой программой Roundcube.

Решение: необходимо отредактировать конфигурационный файл Roundcube.

Открываем файл:

sudo nano /var/www/html/webmail/config/config.inc.php

Находим опцию:

$config['smtp_pass'] = '%p';

И приводим к виду:

$config['smtp_pass'] = '';

И перезагрузимся:

sudo reboot

Все теперь сделано!!! И сервер работает на 5 балов!!!

Мой telegram: https://t.me/room_server

Подпишись!!!!!!!!!!!!!!!

Теги:
Хабы:
Всего голосов 10: ↑7 и ↓3+4
Комментарии23

Публикации

Истории

Ближайшие события

Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург