Маша и Медведь (Masha and The Bear) - Подкидыш (23 Серия)
Оглавление:
- Предпосылки
- Установите Redis
- Установить Unbound
- Установить Rspamd
- Настроить Rspamd
- Настроить Nginx
- Настроить Postfix
- Настроить голубятню
- Создать ключи DKIM
- Настройки DNS
- Вывод
Это третья часть нашей Установки и настройки почтового сервера. В этом руководстве мы рассмотрим установку и настройку системы фильтрации спама Rspamd и ее интеграцию в наш почтовый сервер, создавая DNS-записи DKIM и DMARC.
Вы можете спросить, почему мы решили использовать Rspamd, а не Spamassassin. Rspamd более активно поддерживается и пишется на C, и это намного быстрее, чем Spamassassin, который написан на Perl. Другая причина в том, что Rspamd поставляется с модулем подписи DKIM, поэтому нам не придется использовать другое программное обеспечение для подписи наших исходящих электронных писем.
Предпосылки
Прежде чем продолжить этот урок, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.
Установите Redis
Redis будет использоваться Rspamd в качестве системы хранения и кэширования, для установки просто запустите:
Установить Unbound
Unbound - это очень безопасный проверяющий, рекурсивный и кэширующий распознаватель DNS.
Основная цель установки этого сервиса - уменьшить количество внешних DNS-запросов. Этот шаг не является обязательным и может быть пропущен.
sudo apt update
sudo apt install unbound
Настройки Unbound по умолчанию должны быть достаточными для большинства серверов.
Чтобы установить unbound в качестве основного DNS-преобразователя вашего сервера, выполните следующие команды:
sudo echo "nameserver 127.0.0.1" >> /etc/resolvconf/resolv.conf.d/head
sudo resolvconf -u
Если вы не используете
resolvconf
вам нужно отредактировать файл
/etc/resolv.conf
вручную.
Установить Rspamd
Мы установим последнюю стабильную версию Rspamd из ее официального репозитория.
Начните с установки необходимых пакетов:
sudo apt install software-properties-common lsb-release
sudo apt install lsb-release wget
Добавьте ключ GPG репозитория в ваш список ключей apt sources с помощью следующей команды wget:
wget -O- https://rspamd.com/apt-stable/gpg.key | sudo apt-key add -
Включите репозиторий Rspamd, выполнив:
echo "deb http://rspamd.com/apt-stable/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/rspamd.list
Как только хранилище будет включено, обновите индекс пакета и установите Rspamd, используя следующие команды:
sudo apt update
sudo apt install rspamd
Настроить Rspamd
Вместо изменения стандартных конфигурационных файлов мы создадим новые файлы в каталоге
/etc/rspamd/local.d/local.d/
которые будут перезаписаны по умолчанию.
По умолчанию
normal worker
Rspamd, который просматривает сообщения электронной почты, прослушивает все интерфейсы на порту 11333. Создайте следующий файл, чтобы настроить обычного работника Rspamd на прослушивание только интерфейса localhost:
bind_socket = "127.0.0.1:11333";
proxy worker
прослушивает порт 11332 и поддерживает протокол milter. Чтобы Postfix мог взаимодействовать с Rspamd, нам нужно включить режим milter:
bind_socket = "127.0.0.1:11332"; milter = yes; timeout = 120s; upstream "local" { default = yes; self_scan = yes; }
Далее нам нужно установить пароль для
controller worker
сервера
controller worker
который обеспечивает доступ к веб-интерфейсу Rspamd. Для генерации зашифрованного пароля выполните:
rspamadm pw --encrypt -p P4ssvv0rD
Вывод должен выглядеть примерно так:
$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb
Не забудьте изменить пароль (
P4ssvv0rD
) на более безопасный.
Скопируйте пароль с вашего терминала и вставьте его в файл конфигурации:
/etc/rspamd/local.d/worker-controller.inc
password = "$2$khz7u8nxgggsfay3qta7ousbnmi1skew$zdat4nsm7nd3ctmiigx9kjyo837hcjodn1bob5jaxt7xpkieoctb";
Позже мы настроим Nginx в качестве обратного прокси-сервера для рабочего веб-сервера контроллера, чтобы мы могли получить доступ к веб-интерфейсу Rspamd.
Установите Redis в качестве бэкенда для статистики Rspamd, добавив следующие строки в файл
classifier-bayes.conf
:
servers = "127.0.0.1"; backend = "redis";
Откройте файл
milter_headers.conf
и установите заголовки
milter_headers.conf
:
use =;
Вы можете найти больше информации о milter заголовках здесь.
Наконец, перезапустите службу Rspamd, чтобы изменения вступили в силу:
Настроить Nginx
В первой части этой серии мы создали серверный блок Nginx для экземпляра PostfixAdmin.
Откройте файл конфигурации Nginx и добавьте следующую директиву местоположения, выделенную желтым цветом:
/etc/nginx/sites-enabled/mail.linuxize.com.conf
… location /rspamd { proxy_pass http://127.0.0.1:11334/; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }…
Перезагрузите службу Nginx, чтобы изменения вступили в силу:
sudo systemctl reload nginx
rspamadm pw
на
https://mail.linuxize.com/rspamd/
, введите ранее сгенерированный пароль с помощью команды
rspamadm pw
и вы увидите веб-интерфейс Rspamd.
Настроить Postfix
Нам нужно настроить Postfix для использования Rspamd milter.
Выполните следующую команду, чтобы обновить основной файл конфигурации Postfix:
sudo postconf -e "milter_protocol = 6"
sudo postconf -e "milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}"
sudo postconf -e "milter_default_action = accept"
sudo postconf -e "smtpd_milters = inet:127.0.0.1:11332"
sudo postconf -e "non_smtpd_milters = inet:127.0.0.1:11332"
Перезапустите службу Postfix, чтобы изменения вступили в силу:
sudo systemctl restart postfix
Настроить голубятню
Мы уже установили и настроили Dovecot во второй части этой серии, и теперь мы установим модуль фильтрации
sieve
и интегрируем Dovecot с Rspamd.
Начните с установки модуля фильтрации Dovecot:
sudo apt install dovecot-sieve dovecot-managesieved
После установки пакетов откройте следующие файлы и отредактируйте строки, выделенные желтым цветом.
/etc/dovecot/conf.d/20-lmtp.conf
… protocol lmtp { postmaster_address = [email protected] mail_plugins = $mail_plugins sieve }…
/etc/dovecot/conf.d/20-imap.conf
… protocol imap {… mail_plugins = $mail_plugins imap_quota imap_sieve… }…
/etc/dovecot/conf.d/20-managesieve.conf
… service managesieve-login { inet_listener sieve { port = 4190 }… }… service managesieve { process_limit = 1024 }…
/etc/dovecot/conf.d/90-sieve.conf
plugin {… # sieve = file:~/sieve;active=~/.dovecot.sieve sieve_plugins = sieve_imapsieve sieve_extprograms sieve_before = /var/mail/vmail/sieve/global/spam-global.sieve sieve = file:/var/mail/vmail/sieve/%d/%n/scripts;active=/var/mail/vmail/sieve/%d/%n/active-script.sieve imapsieve_mailbox1_name = Spam imapsieve_mailbox1_causes = COPY imapsieve_mailbox1_before = file:/var/mail/vmail/sieve/global/report-spam.sieve imapsieve_mailbox2_name = * imapsieve_mailbox2_from = Spam imapsieve_mailbox2_causes = COPY imapsieve_mailbox2_before = file:/var/mail/vmail/sieve/global/report-ham.sieve sieve_pipe_bin_dir = /usr/bin sieve_global_extensions = +vnd.dovecot.pipe…. }
Сохраните и закройте файлы.
Создайте каталог для скриптов sieve:
mkdir -p /var/mail/vmail/sieve/global
Создайте глобальный фильтр сита для перемещения писем, помеченных как спам, в каталог
Spam
:
require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }
Следующие два скрипта-сита будут запускаться всякий раз, когда вы перемещаете письмо в каталог
Spam
или из него:
require; pipe:copy "rspamc";
/var/mail/vmail/sieve/global/report-ham.sieve
require; pipe:copy "rspamc";
Перезапустите службу Dovecot, чтобы изменения вступили в силу:
sudo systemctl restart dovecot
Скомпилируйте ситовые скрипты и установите правильные разрешения:
sievec /var/mail/vmail/sieve/global/spam-global.sieve
sievec /var/mail/vmail/sieve/global/report-spam.sieve
sievec /var/mail/vmail/sieve/global/report-ham.sieve
sudo chown -R vmail: /var/mail/vmail/sieve/
Создать ключи DKIM
DomainKeys Identified Mail (DKIM) - это метод проверки подлинности электронной почты, который добавляет криптографическую подпись к заголовкам исходящих сообщений. Это позволяет получателю удостовериться в том, что электронное письмо с заявлением, исходящим из определенного домена, действительно было разрешено владельцем этого домена. Основной целью этого является предотвращение поддельных сообщений электронной почты.
У нас могут быть разные ключи DKIM для всех наших доменов и даже несколько ключей для одного домена, но для простоты этой статьи мы будем использовать один ключ DKIM, который позже можно будет использовать для всех новых доменов.
Создайте новый каталог для хранения ключа DKIM и
rspamadm
новую пару ключей DKIM с
rspamadm
утилиты
rspamadm
:
sudo mkdir /var/lib/rspamd/dkim/
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
rspamadm dkim_keygen -b 2048 -s mail -k /var/lib/rspamd/dkim/mail.key | sudo tee -a /var/lib/rspamd/dkim/mail.pub
В приведенном выше примере мы используем
mail
в качестве селектора DKIM.
Теперь у вас должно быть два новых файла в каталоге
/var/lib/rspamd/dkim/
,
mail.key
который является нашим файлом личного ключа, и
mail.pub
который содержит открытый ключ DKIM. Мы обновим наши записи зоны DNS позже.
Установите правильное владение и разрешения:
sudo chown -R _rspamd: /var/lib/rspamd/dkim
sudo chmod 440 /var/lib/rspamd/dkim/*
Теперь нам нужно указать Rspamd, где искать ключ DKIM, имя селектора и последнюю строку, чтобы включить подпись DKIM для псевдонимов адресов отправителей. Для этого создайте новый файл со следующим содержимым:
/etc/rspamd/local.d/dkim_signing.conf
selector = "mail"; path = "/var/lib/rspamd/dkim/$selector.key"; allow_username_mismatch = true;
Rspamd также поддерживает подпись для подписей с проверенной цепью (ARC). Вы можете найти больше информации о спецификации ARC здесь.
Rspamd использует модуль DKIM для работы с сигнатурами ARC, чтобы мы могли просто скопировать предыдущую конфигурацию:
sudo cp /etc/rspamd/local.d/dkim_signing.conf /etc/rspamd/local.d/arc.conf
Перезапустите службу Rspamd, чтобы изменения вступили в силу:
Настройки DNS
Мы уже создали пару ключей DKIM, и теперь нам нужно обновить нашу зону DNS. Открытый ключ DKIM хранится в файле
mail.pub
. Содержимое файла должно выглядеть так:
cat /var/lib/rspamd/dkim/mail.pub
mail._domainkey IN TXT ("v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4yl" "nVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB");
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGaVuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB
Мы также создадим доменную аутентификацию сообщений (
DMARC
), которая предназначена для того, чтобы сообщать принимающему серверу, принимать или нет электронную почту от определенного отправителя. В основном это защитит ваш домен от прямой подмены домена и улучшит репутацию вашего домена.
мы реализуем следующую политику DMARC:
_dmarc IN TXT "v=DMARC1; p=none; adkim=r; aspf=r;"
Давайте разберем вышеупомянутую запись DMARC:
-
v=DMARC1
- это идентификатор DMARC,p=none
- сообщает получателю, что делать с сообщениями, которые не срабатывают в DMARC. В нашем случае для него установлено значение none, что означает, что не предпринимать никаких действий в случае сбоя DMARC. Вы также можете использовать 'отклонить' илиadkim=r
quarantine
adkim=r
иaspf=r
- выравниваниеDKIM
иSPF
,r
для Relaxed иs
для Strict, в нашем случае мы используем Relaxed Alignment для DKIM и SPF.
То же, что и раньше, если вы используете свой собственный DNS-сервер Bind, вам просто нужно скопировать и вставить запись в файл доменной зоны, а если вы используете другого провайдера DNS, вам нужно создать запись TXT с
_dmarc
в качестве имени и
v=DMARC1; p=none; adkim=r; aspf=r;
v=DMARC1; p=none; adkim=r; aspf=r;
как ценность / содержание.
Распространение изменений DNS может занять некоторое время. Вы можете проверить, распространились ли записи, используя команду dig:
dig mail._domainkey.linuxize.com TXT +short
"v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqdBRCqYzshc4LmmkxUkCH/rcIpSe/QdNIVmBrgqZmZ5zzWQi7ShdFOH7V32/VM1VRk2pkjDV7tmfbwslsymsfxgGhVHbU0R3803uRfxAiT2mYu1hCc9351YpZF4WnrdoA3BT5juS3YUo5LsDxvZCxISnep8VqVSAZOmt8wFsZKBXiIjWuoI6XnWrzsAfoaeGa" "VuUZBmi4ZTg0O4ylnVlIz11McdZTRe1FlONOzO7ZkQFb7O6ogFdepWLsM9tYJ38TFPteqyO3XBjxHzp1AT0UvsPcauDoeHUXgqbxU7udG1t05f6ab5h/Kih+jisgHHF4ZFK3qRtawhWlA9DtS35DlwIDAQAB"
dig _dmarc.linuxize.com TXT +short
"v=DMARC1; p=none; adkim=r; aspf=r;"
Вы также можете проверить текущую политику DMARC вашего домена или создать свою собственную политику DMARC здесь.
Вывод
Вот именно для этой части урока. В следующей части этой серии мы продолжим установку и настройку RoundCube.
почтовый сервер postfix dovecot dns rspamdЭтот пост является частью серии «Настройка и настройка почтового сервера».
Другие посты в этой серии:
• Настройте почтовый сервер с помощью PostfixAdmin. • Установите и настройте Postfix и Dovecot. • Установите и интегрируйте Rspamd. • Установите и настройте Roundcube Webmail.Драйверы осторожно ... Но установите отчет о сбоях на вашем iPhone

Если вы столкнулись с конфликтом, вы будете чувствовать себя намного лучше, используя этот iPhone приложение, чтобы получить отчет о страховании.
Швеция для мобильных операторов: установите или заткнись на требованиях скорости

Операторы мобильной связи больше не могут предъявлять максимальные требования к пропускной способности в их маркетинг, правительство Швеции решило ...
Интегрируйте проверку орфографии в каждое приложение Windows с помощью tinyspell

Узнайте, как интегрировать проверку орфографии в каждое приложение Windows с tinySpell.