Android

Установите и интегрируйте rspamd

Маша и Медведь (Masha and The Bear) - Подкидыш (23 Серия)

Маша и Медведь (Masha and The Bear) - Подкидыш (23 Серия)

Оглавление:

Anonim

Это третья часть нашей Установки и настройки почтового сервера. В этом руководстве мы рассмотрим установку и настройку системы фильтрации спама Rspamd и ее интеграцию в наш почтовый сервер, создавая DNS-записи DKIM и DMARC.

Вы можете спросить, почему мы решили использовать Rspamd, а не Spamassassin. Rspamd более активно поддерживается и пишется на C, и это намного быстрее, чем Spamassassin, который написан на Perl. Другая причина в том, что Rspamd поставляется с модулем подписи DKIM, поэтому нам не придется использовать другое программное обеспечение для подписи наших исходящих электронных писем.

Предпосылки

Прежде чем продолжить этот урок, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo.

Установите Redis

Redis будет использоваться Rspamd в качестве системы хранения и кэширования, для установки просто запустите:

sudo apt install redis-server

Установить 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:

/etc/rspamd/local.d/worker-normal.inc

bind_socket = "127.0.0.1:11333";

proxy worker прослушивает порт 11332 и поддерживает протокол milter. Чтобы Postfix мог взаимодействовать с Rspamd, нам нужно включить режим milter:

/etc/rspamd/local.d/worker-proxy.inc

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 :

/etc/rspamd/local.d/classifier-bayes.conf

servers = "127.0.0.1"; backend = "redis";

Откройте файл milter_headers.conf и установите заголовки milter_headers.conf :

/etc/rspamd/local.d/milter_headers.conf

use =;

Вы можете найти больше информации о milter заголовках здесь.

Наконец, перезапустите службу Rspamd, чтобы изменения вступили в силу:

sudo systemctl restart 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 :

/var/mail/vmail/sieve/global/spam-global.sieve

require; if anyof(header:contains "YES", header:contains "Yes", header:contains "*** SPAM ***") { fileinto:create "Spam"; stop; }

Следующие два скрипта-сита будут запускаться всякий раз, когда вы перемещаете письмо в каталог Spam или из него:

/var/mail/vmail/sieve/global/report-spam.sieve

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, чтобы изменения вступили в силу:

sudo systemctl restart 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.