Приступим к установке, обновим пакеты:
sudo apt update && apt upgrade
Ждем обновления, если они обновлены идем дальше:
Задаем правильное имя серверу — это важный шаг, так как большинство антиспам систем выполняют проверки, обращаясь к серверу по имени в ожидании ответа:
sudo hostnamectl set-hostname mail.example.com
Устанавливаем пакет времени:
Устанавливаем время на сервере:
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 apt install gzip dialog
sudo tar zxf iRedMail-1.6.8.tar.gz
Скрипт напишет Welcome and thanks for your use (Добро пожаловать и спасибо за ваше использование). Нажимаем yes:
Пишем 'y'. И ждем примерно 15 минут:
И после делаем перезагрузку сервера:
3. Установка платной версии iredmail (iRedAdmin-Pro)
Сначала выполняем 2 шаг, а после выполняем следующие действия:
cd /iRedAdmin-Pro-SQL/tools
Скрипт выполнится быстро и сделает все сам. После заходим в iredadmin:
4. Webmin install
После можно установить webmin. С webmin легко управлять mail server и debian:
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:
Останавливаем службу clamav-freshclam:
sudo systemctl stop clamav-freshclam
Удаляем старую информацию об обновлениях:
sudo rm -f /var/lib/clamav/freshclam.dat
Ждем обновления, после запускаем службу 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 — можно посмотреть командой:
Если мы получим пустой ответ, то вводим:
Если и в этот вариант не вернет ответ, вводим:
2. А-запись. Также необходимо, чтобы имя сервера, которым представляется почтовый сервер разрешалось в IP-адрес:
Для этого заходим в консоль управления зоной нашего домена и создаем запись типа А для сопоставления имени сервера с IP-адресом, на котором слушает запросы данный сервер:
Для каждого домена, для которого будем отправлять почту создаем записи:
Для проверки корректности настройки сервера, воспользуемся ресурсами:
7. Настройка SPF, DKIM и DMARC
DKIM добавляет в заголовки письма цифровую подпись, которая подтверждает подлинность отправителя и гарантирует целостность письма:
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 добавляем следующие настройки:
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
PidFile /var/run/opendkim/opendkim.pid
ignatureAlgorithm rsa-sha256
Socket inet:8891@localhost
В файл /etc/opendkim/TrustedHosts вносим наш домен:
Файл должен выглядеть таким образом:
Открываем файл /etc/opendkim/KeyTable и приводим к такому виду:
Правим файл /etc/opendkim/SigningTable и указываем в нём следующие данные:
Если по каким-либо причинам этих файлов у вас нет, то их нужно создать:
Для 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-запись со следующим содержанием:
Значение: 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'] = '';
Все теперь сделано!!! И сервер работает на 5 балов!!!