Как переместить спам в папку спама пользователя с помощью sa-exim и exim4?

Встроенные средства exim

Exim позволяет настроить списки разрешённых и запрещённых отправителей.

Список разрешённых отправителей

Чтобы добавить отправителя в список разрешённых:

  1. Перейдите в Защита от спама → Белый список → Создать.
  2. Укажите IP-адрес, адрес электронной почты или доменное имя в поле Отправитель. Если указано доменное имя, то будут разрешены все почтовые ящики на этом домене.
  3. Нажмите Ok.

Белый список хранится в /etc/<директория exim>/whitelist.

Список запрещённых отправителей

Чтобы добавить отправителя в список запрещённых и его письма всегда отклонялись:

  1. Перейдите в Защита от спама → Чёрный список → Создать.
  2. Укажите IP-адрес, адрес электронной почты или доменное имя в поле Отправитель. Если указано доменное имя, то будут запрещены все почтовые ящики на этом домене.
  3. Нажмите Ok.

Чёрный список хранится в /etc/<директория exim>/blacklist.

DNSBL

DNSBL (DNS blacklist) — списки доменов и IP-адресов, которые, как правило, используются для борьбы со спамом. Exim проверяет наличие почтового домена, с которого отправлено письмо в DNSBL-списках. Если почтовый домен присутствует в списках, то письмо отклоняется.

Чтобы добавить DNSBL-список:

  1. Перейдите в Защита от спама → Список DNSBL → Создать.
  2. Укажите в поле Домен DNSBL адрес чёрного списка.
  3. Нажмите Ok.

Рекомендуем чёрные списки:

Список добавленных DNSBL хранится в /etc/<директория exim>/dnsbllist.

Настройка SpamAssassin

Редактируем файл /etc/default/spamassassin:

#ENABLED=1
CRON=1

Дополнительную настройку и работу с белыми/черными списками можно выполнить через Webmin или добавлением директив в файл конфигурации /var/mail/vmail/.spamassassin/user_prefs

whitelist_from user@domain.com
blacklist_from *@domain.com

Создать директорию и назначить владельца — vexim:

mkdir /var/mail/vmail/.spamassassin

Проверить настройки групп (файл /etc/group), чтобы все наши почтовые сервисы были в группе mail:

mail:x:8:dovecot,clamav,Debian-exim,www-data,mail
Debian-exim:x:113:clamav
clamav:x:116:Debian-exim

Перезапустить службы:
/etc/init.d/exim4 restart
/etc/init.d/dovecot restart
/etc/init.d/spamassassin restart
/etc/init.d/clamav-daemon restart

/var/spool/exim4/scan – настроить право записи для группы mail

Настройка Apache:
добавляем алиас для нашего хоста: /vexim > /var/www/vexim2-master/vexim (можно сделать через Webmin).
Проверяем работу: https://IPv4-address/vexim/. После успешной авторизации создать новые домены и почтовые ящики. В каталоге /var/mail/vmail/ должна появиться новая структура. Если этот каталог остался пустым — проверять права доступа и создавать домены заново.

Отправляем тестовое сообщение и смотрим логи на предмет ошибок.

Дополнительные команды:
Проверка SSL: openssl s_client -connect mail.example.com:pop3s
Выполнить обработку очереди: exim -qf
Очистка очереди: exipick -i | xargs exim -Mrm

Настройка Outlook: при первом подключении к серверу появится окно «Предупреждение безопасности». Нажать кнопку «Показать сертификат», установить.
NB! Могут возникнуть трудности с настройкой MS Outlook 2003 SP1: не подхватывает сертификат. При подключении к серверу дает ошибку 0x800CCC0F. Требуется ручная установка и настройка.

Если включить функцию пересылки сообщений для почтового ящика и указать ящик Гугл, то последний будет блокировать пересылаемые сообщения из-за проверки DKIM. Хотя прямая отправка писем на Гугл прекрасно работает. Помним и на Гугл не пересылаем.

Ручная настройка EFA

Мы же пошли сложным путем, но более гибким. Настройку EFA под себя делали не через интерактивное меню, а правили конфигурационные файлы. Мы хотели не просто всё настроить, а еще и разобраться во всех компонентах и понять, что и как работает.

Первым делом в файле main.cf настроек postfix добавили mynetworks, с которых принимались соединения по SMTP. Затем прописали ограничения по helo запросам, отправителям, получателям, и указали пути к картам с политиками ACCEPT или REJECT при соблюдении определенных условий. Также, inet_protocols был изменен на ipv4, чтобы исключить соединения по ipv6.

Затем изменили политику Spam Actions на Store в конфигурационном файле /etc/MailScanner/MailScanner.conf. Это значит, что если письмо будет определено как спам, оно уйдет в карантин. Это помогает дополнительно обучать SpamAssassin.

После таких настроек мы столкнулись с первой проблемой. На нас обрушились тысячи писем от адресатов you@example.com, fail2ban@example.com, root@localhost.localdomain и т.д. Получатели были схожие. Также получили письма, отправленные MAILER-DAEMON, то есть фактически без отправителя.

В итоге получили забитую очередь без возможности найти среди «красного полотна» нормальные, письма не-спам. Решили делать REJECT подобных писем, используя стандартный функционал Postfix карт: helo_access, recipient_access, sender_access. Теперь вредные адресаты и подобные стали успешно REJECT’иться. А те письма, которые отправлялись MAILER-DAEMON отфильтровываются по helo запросам.

Когда очередь вычистили, а наши нервы успокоились, начали настраивать SpamAssassin.

Через веб-интерфейс

Первый способ — через веб-интерфейс MailWatch. В каждом письме можно увидеть заголовки, тело, а также оценку по алгоритму Байеса и других показателях. Выглядит это так:

Score Matching Rule Description
-0.02 AWL Adjusted score from AWL reputation of From: address
0.80 BAYES_50 Bayes spam probability is 40 to 60%
0.90 DKIM_ADSP_NXDOMAIN No valid author signature and domain not in DNS
0.00 HTML_MESSAGE HTML included in message
1.00 KAM_LAZY_DOMAIN_SECURITY Sending domain does not have any anti-forgery methods
0.00 NO_DNS_FOR_FROM Envelope sender has no MX or A DNS records
0.79 RDNS_NONE Delivered to internal network by a host with no rDNS
2.00 TO_NO_BRKTS_HTML_IMG To: lacks brackets and HTML and one image
0.00 WEIRD_PORT Uses non-standard port number for HTTP

Открыв письмо, можно поставить галку в чекбоксе «SA Learn» и выбрать одно из нескольких действий:

  • As Ham — пометить письмо как чистое (тренировка алгоритма Байеса);
  • As Spam — пометить письмо как спам (тренировка алгоритма Байеса);
  • Forget — пропустить письмо;
  • As Spam+Report — пометить письмо как спам и отправить информацию о нём в сети по обнаружению спама (razor + pyzor);
  • As Ham+Revoke — пометить письмо как чистое и отправить информацию о нём в сети по обнаружению спама (razor + pyzor).

Через консоль

Делается это просто. Команда выглядит следующим образом:

В этой команде письмо с ID: 0DC5B48D4.A739D, которое находится в архиве спам писем за определенную дату /20170224/spam/, помечается как чистое (не спам) .

Бытует мнение, что достаточно обучать SpamAssassin только для эффективной фильтрации почты. Мы решили тренировать SpamAssassin, скармливая ему абсолютно все письма, как чистые, так и спам. В дополнение, мы нашли базу спам-писем и отдали SA на растерзание.

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

Для того, чтобы SpamAssassin начал работать на полную мощность, на старте ему необходимо скормить около 1000 различных писем. Поэтому наберитесь терпения и приступайте к тренировке.

Пока еще рано говорить о полной победе над спамом. Однако, сейчас количество жалоб на спам с наших серверов равно нулю. Более детально рассказывать о самом процессе обучения сейчас не будем— не хочется раскрывать все фишки. Хотя, если поковыряться в настройках, разобраться не сложно.

P.S.: Эта статья не является панацеей. Мы просто решили поделиться с вами одним из наших методов борьбы со спамом.

Создание сертификатов SSL

Сертификаты SSL используются для шифрования передачи почты, что хорошо для защиты от несанкционированного чтения почты.

openssl dhparam -out /etc/exim4/dhparam.pem 4096
cd /etc/ssl && openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 100000 -subj ‘/O=Some Org/CN=mail.example.com’

Для других почтовых доменов указываем другое имя файла вместо smtpd.pem, например, mail.example.com.pem.
Права доступа к сертификату: 0440 (только чтение для владельца рут и группы мейл).

Примечание.
Недостаток самоподписанных сертификатов — их нельзя импортировать в аккаунт Гугл, чтобы Гугл забирал почту с нашего ящика. С некоторого момента времени Гугл доверяет только центрам сертификации, например, таким как Mozilla CA. Поэтому или покупаем сертификат, или не паримся с Гуглом, т.к. самоподписанные сертификаты прекрасно работают как на ПК, так и на мобильных устройствах (Android — проверено).

Настройка Dovecot

Пример файлов конфигурации Dovecot.
В файле dovecot.conf следует обратить внимание на строки:

service auth {
unix_listener auth-client {
mode = 0600
user = Debian-exim
}
unix_listener auth-master {
mode = 0600
user = Debian-exim
}
user = root
}

service pop3-login {
chroot = login
process_limit = 200
process_min_avail = 3
service_count = 1
vsz_limit = 64 M
}

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

protocol lda {
postmaster_address = postmaster@example.com
auth_socket_path = /var/run/dovecot/auth-master
}

passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}

passdb {
driver = pam
}

userdb {
args = blocking=yes
driver = passwd
}

userdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}

##!include conf.d/*.conf
##!include_try local.conf

С помощью local_name{} задаются разные сертификаты для нескольких доменов.

В файле dovecot-sql.conf.ext отредактировать строки:

driver = mysql
connect = host=/var/run/mysqld/mysqld.sock user=mail_user password=CHANGE dbname=vexim
default_pass_scheme = SHA512-CRYPT
password_query = SELECT crypt AS password, ‘/var/mail/vmail/%d/%n’ AS userdb_home, ‘mail’ AS userdb_uid, ‘mail’ AS userdb_gid FROM users WHERE username = ‘%n@%d’ AND enabled = ‘1’
user_query = SELECT pop AS home, uid AS uid, gid AS gid FROM users WHERE username = ‘%n@%d’

Примечание: в файле конфигурации Dovecot по умолчанию подключаются дополнительные настройки в директории conf.d.

Популярные opensource-решения против спама

Rspamd

Он подходит для систем различного масштаба. Умеет интегрироваться в различные MTA (в документации описаны Exim, Postfix, Sendmail и Haraka) или работать в режиме SMTP-прокси.

Система оценки сообщений такая же, как в SpamAssassin, в частности на основании разных факторов: регулярных выражений, блок-листов DNS, белых, серых, черных списков, SPF, DKIM, статистики, хешей (fuzzy hashes) и прочего — только в работе используются другие алгоритмы.

В Rspamd поддерживается расширение при помощи плагинов.

Apache SpamAssassin

Известность SA получил благодаря использованию технологии байесовской фильтрации. Каждое сообщение при прохождении тестов получает определенный балл и при достижении порога помещается в спам.

Легко интегрируется практически с любым почтовым сервисом. В SA доступны популярные технологии, которые подключаются как плагины: DNSBL, SPF, DKIM, URIBL, SURBL, PSBL, Razor, RelayCountry, автоматическое ведение белого списка (AWL) и другие.

Установка в общем не сложна. После установки SpamAssassin требует тонкой настройки параметров и обучения на спам-письмах.

ASSP

Платформно-зависимый SMTP-прокси-сервер, принимающий сообщения до MTA и анализирующий его на спам.

Поддерживаются все популярные технологии: белые и серые списки, байесовский фильтр, DNSBL, DNSWL, URIBL, SPF, DKIM, SRS, проверка на вирусы (с ClamAV), блокировка или замена вложений и многое другое. Обнаруживается кодированный MIME-спам и картинки (при помощи Tesseract). Возможности расширяются при помощи модулей.

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

MailScanner

MailScanner легко интегрируется с любым МТА, в поставке есть готовые конфигурационные файлы. Помимо собственных наработок, он может использовать сторонние решения. Для проверки на спам может использоваться SpamAssassin.

EFA-project

В EFA входят такие компоненты:

В качестве MTA (mail transfer agent) выступает Postfix — надежный, быстрый, проверенный годами;
Ядро спам фильтра — MailScanner — плечом к плечу с антивирусом принимают на себя весь удар;
Спам фильтр — SpamAssassin — определяет письма-спам. В основу включено множество оценочных систем, MTA и наборы регулярных выражений;ClamAV — антивирус, который работает с MailScanner;MailWatch — удобный веб-интерфейс для работы с MailScanner и другими приложениями;
Фильтр контента — DCC — определяет массовую рассылку через отправку хеш-сумм тела писем на специальный сервер, который в свою очередь предоставляет ответ в виде числа полученных хешей. Если число превышает порог score=6, письмо считается спамом;Pyzor и Razor — помогают SpamAssassin точнее распознавать спам, используя сети по обнаружению спама;
Для grey-листинга используется SQLgrey — служба политики postfix, позволяющая снизить количество спама, которое может быть принято получателями;
Для распознавания изображений используется модуль ImageCeberus — определяет порно изображения и т.д.
Мы выбрали EFA, поскольку проект включает в себя все лучшие характеристики вышеперечисленных. К тому же наши администраторы уже имели некоторый опыт работы с ним, поэтому выбор остановили именно на EFA. Приступим к описанию установки.

Организация почтовой базы данных

Здесь я понимаю под словом «база данных» именно хранилище учетных данных пользователей (почтовых ящиков),
а не то что Вы могли подумать. Я не рекомендую использовать реляционную СУБД (MySQL, PostgreSQL), если
число ящиков не превышает значение 400-500. Реляционная СУБД — это всегда тяжелое приложение,
которое «жрет» память и терроризирует дисковую подсистему. Каждый отдельный процесс exim создает
отдельное подключение к БД, что на первых порах (когда этих процессов работает не больше 5-6 одновременно)
никак заметно не сказывается на работе системы в целом; но когда поток почты становится интенсивнее,
сервер начинает заметно тормозить, требуя тонкого тюнинга СУБД. Этот тюнинг однозначно нужен при высокой
нагрузке, и всегда требует правильной организации самих данных в базе. На маленьком сервере это просто
абсурд, а на большом — производственная необходимость. Лучше начать с простой базы данных в /etc/passwd
или CDB, чтобы потом была возможность спроектировать реляционную БД с нуля.

В данной статье я описываю настройку exim на хранение учетных данных в /etc/passwd. Также, я предлагаю
при нескольких почтовых доменах выбрать один основной, а остальные (которые в этом случае будут виртуальными)
маршрутизировать на основной с помощью алиасов. Например, наш основной домен — mydomain.ru, в котором
есть ящики info@mydomain.ru и sales@mydomain.ru. Теперь требуется сделать домен workdom.ru с ящиками
info@workdom.ru и admin@workdom.ru. Поскольку домены хранить в /etc/passwd нереально (на группу и
пользователя там ограничение в 16 символов), то пусть адрес info@workdom.ru будет ссылкой на
info.wd.ru@mydomain.ru, а admin@workdom.ru соответственно ссылкой на admin.wd.ru@mydomain.ru. Это абсолютно
нормальный рабочий способ организации виртуального почтового хостинга для небольшого числа вручную
администрируемых ящиков. Конечно, при большом количестве ящиков полюбому придется сварганить что-то
универсальное, но эти ситуации уже выходят за пределы предметной области данной статьи.

Сервис POP3

Почему именно tpop3d, а не, скажем, popa3d (в порядке убывания важности):

  1. Можно прикручивать свою собственную схему авторизации с помощью perl-скриптов
  2. Очень легко реализуется мульти-доменный (virtual domains) доступ к ящикам
  3. Также может использовать для авторизации MySQL/PgSQL/LDAP/PAM/file/cmd
  4. Обширные возможности для конфигурирования

Итак, будем использовать PAM, т.к. учетные записи почтовых ящиков хранятся в /etc/passwd. В исходном
файле конфигурации /usr/local/etc/tpop3d.conf все уже заточено для работы в стандартном режиме (ящики
в формате mbox в /var/mail, авторизация через PAM). В нашем же случае надо лишь кое-что подправить.

Пусть любители ломать POP3-сервисы отдыхают (т.к. сервис будет «прослушивать» только внутренний интерфейс):

RFC по POP3 требует ждать неожиданного замолчавшего клиента 600 сек (10 мин). Я считаю, что это в современных
условиях весьма много:

Ящики в формате maildir и находятся в /mail:

Один ящик — один клиент: так должно быть. Если двум или более клиентам нужно получать почту, направленную на
один и тот же адрес, следует воспользоваться алиасами.

Теперь можно запускать сервис:

Установка и последующая настройка EFA

Устанавливать решили на VPS с чистой CentOS 6.8 x64, который выступает в качестве relay-сервера. Первым делом, необходимо обновить все системные утилиты и компоненты до последних версий, которые доступны в репозиториях. Для этого используем команду:

Затем устанавливаем утилиты wget и screen, если они не были установлены:

После чего, скачаем скрипт, который выполнит установку EFA:

Даем скрипту права на исполнение:

Запускаем screen:

И запускаем скрипт:

Теперь можно свернуть наш скрин используя комбинацию Ctrl + A + D.

После установки нужно заново войти на сервер через ssh, используя данные для первого входа. Это нужно для запуска скрипта инициализации и первичной настройки EFA.

После входа, система предлагает ответить на несколько вопросов, чтобы настроить EFA.

Список вопросов выглядит следующим образом:

Функция Свойство
Hostname Указывается хостнейм машины
Domainname Домен, к которому относится машина. В сумме с хостнеймом, получится полный FQDN сервера
Adminemail Ящик администратора, который будет получать письма от самой системы (доступные обновления, различные отчеты и т.д.)
Postmasteremail Ящик человека, который будет получать письма, которые имеют отношение к MTA
IP address IP адрес машины
Netmask Маска
Default Gateway Шлюз
Primary DNS Первичный DNS сервер
Secondary DNS Вторичный DNS сервер
Local User Логин локального администратора. Используется для входа в систему и в веб-интерфейс MailWatch
Local User Password Пароль
Root Password Пароль для пользователя root
VMware tools Будет отображаться только, если установка происходит на виртуальную машину под управлением VMware. Она необходима для установки инструментов по работе с VMware
UTC Time Если Ваша машина находится в часовом поясе UTC, необходимо выбрать Yes
Timezone Тут можно выбрать другой часовой пояс, отличный от UTC
Keyboard Layout Раскладка клавиатуры, которая будет использоваться в системе
IANA Code Тут указывается код страны, в которой находится машина. Это необходимо для того, чтобы определить, с каких зеркал в будущем будут скачиваться обновления
Your mailserver Индивидуальный параметр. Используется в случае если EFA работает и на приём писем
Your organization name Название организации. Используется для заголовков в письмах
Auto Updates Задается политика автообновлений. По умолчанию установлено disabled. В этом случае, автообновлений не будет, но на емейл админа будут приходить уведомления о доступных обновлениях

После такой анкеты, отображается весь список ответов. Если что-то нужно изменить, набираем номер вопроса и вводим новые данные. Когда готовы двигаться дальше, набираем ОК и жмем Enter. Система начнет процесс автонастройки.

По завершению конфигурирования, система перезагрузится и будет в полной боевой готовности.

В следующий раз, авторизуясь по ssh, сразу отобразится конфигурационное меню EFA. В этом меню доступно множество полезных действий:

  • Перезагрузка / выключение системы;
  • Изменение сетевых параметров;
  • Настройка MailScanner;
  • Включение / выключение grey-листинг;
  • Включение / отключение автообновления;
  • Настройка системы как исходящего relay-сервера;
  • Изменение ящика Adminemail;
  • Добавление / удаление почтовых доменов;
  • Изменение настроек фильтров спама;
  • Восстановление mysql базу, в случае повреждения из-за аварийного завершения работы.

Это список основных опций EFA, которые недоступны для редактирования через веб-интерфейс MailWatch. Поэтому, хорошо знать, где их найти.

Проверки url-ов в списках URIBL/SURBL

Устанавливаем приложения curl и GeoIP из портов ftp/curl и net/GeoIP соответственно. Затем
создаем временную папку для работы, например (я так делаю):

Скачиваем исходники с сайта David Saez:

Теперь, чтобы на FreeBSD собрать все это, необходимо слегка подправить исходники. Для начала
подготовим исходные тексты exim:

После распаковки и сборки, ищем директорию внутри work, где есть local_scan.h. У меня это
work/exim-4.69/build-FreeBSD-i386.

Теперь будем править Makefile так, чтобы он нашел все что нужно:

Путь /usr/local/include нужен для того, чтобы make нашел GeoIP.h. Также для сборки pipe.c нужно
подключить библиотеку с сигналами — правим pipe.c:

Все. Теперь собираем модуль и копируем его поближе к exim-у:

Осталось лишь подредактировать /usr/local/etc/exim/configure. В глобальной секции дописываем
(если ее еще нет) проверку mime:

а в секции ACL добавляем саму проверку:

Теперь можно запускать MTA:

Для теста URIBL, возьмем любой заблокированный url в тексте (например http://videpol.ru) и попробуем
написать сами себе письмо с какого-нибудь левого почтовика.

Настройка DKIM

DKIM расшифровывается как DomainKeys Identified Mail, что можно перевести как “Идентифицированная ключом домена почта”. Это метод аутентификации, дающий возможность проверить, действительно ли письмо отправлено с домена, фигурирующего в поле “От”. DKIM — эффективный метод борьбы с фишинговыми письмами и спамом.

Создание ключей DKIM при помощи opendkim-tool

1. Для начала, необходимо установить opendkim-tools. Сделать это можно с помощью следующей команды:

apt-get install opendkim-tools

2. Затем надо создать папку dkim, в которой будут хранится ключи:

mkdir /etc/exim4/dkim

3. Права на папку необходимо поменять с root на Debian-exim:

chown -R Debian-exim:Debian-exim /etc/exim4/dkim

4. Следующей командой генерируются открытый и закрытый ключи для домена example.com:

opendkim-genkey -D /etc/exim4/dkim/ -d mydomain.com -s mymail

Здесь:

D — каталог, в который будут сгенерированы ключи;

d — домен, который будет использовать этот ключ для подписания;

s — mymail — имя селектора, строкового идентификатора, который, в принципе, может быть любым.

В результате, вы получите файлы etc/exim4/dkim/mymail.private и /etc/exim4/dkim/mymail.txt с секретным и публичными ключами соответственно.

5. Теперь надо перейти в папку /etc/exim4/dkim/ и переименовать mail.private в example.com.key:

cd /etc/exim4/dkim/

mv mymail.private mydomain.com.key

6. Права на example.com.private (файл закрытого ключа) следует поменять с root на Debian-exim:

chown -R Debian-exim:Debian-exim /etc/exim4/dkim/mydomain.com.key

chmod 640 /etc/exim4/dkim/mydomain.com.key

Настройки DNS

В файле mail.txt (cat /etc/exim4/dkim/mymail.txt) должно быть следущее содержимое:

mymail._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC57fv+meeGTF2gtQ/FO1WAT7hYrPTnKir06k3YR6ZBCLhAVbfEOAZ9OkVTAEf67T61eRY8w8hojnN9dxd07XIZ8KyatNXajWfYo3g0YDWopTfVfoaI4XFXqQH8V6iXyobArpSe3MSTSTqNFuS+w498JoHAkeXXhcl6kmjdSGkPtwIDAQAB" ) ;

—--- DKIM key mymail for mydomain.com

Эту информацию необходимо добавить в TXT запись DNS зоны. В поле имя надо добавить

mymail._domainkey

в поле Контент —

v=DKIM1; k=rsa; " "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC57fv+meeGTF2gtQ/FO1WAT7hYrPTnKir06k3YR6ZBCLhAVbfEOAZ9OkVTAEf67T61eRY8w8hojnN9dxd07XIZ8KyatNXajWfYo3g0YDWopTfVfoaI4XFXqQH8V6iXyobArpSe3MSTSTqNFuS+w498JoHAkeXXhcl6kmjdSGkPtwIDAQAB

Теперь mymail.txt можно просто удалить.

Чтобы проверить, всё ли в порядке с добавленными записями, надо выполнить следующую команду:

dig txt mymail._domainkey.mydomain.com | grep DKIM

Ответ должен быть такого вида:

mymail._domainkey.mydomain.com. 2214 IN TXT "v=DKIM1\; k=rsa\...

Определение DKIM Author Domain Signing Practices (DKIM ADSP)

Чтобы указать практики DKIM Author Domain Signing Practices (DKIM ADSP), следует добавить в TXT DNS домена ещё одну запись:

_adsp._domainkey.mydomain.com IN TXT "dkim=all"

Здесь:

all — отправка неподписанных сообщений запрещена;

discardable — все неподписанные сообщения должны быть заблокированы на стороне получателя;

unknown — домен может подписывать некоторые или все письма.

Настройка Exim

Настройка Exim начинается с добавления следующих строк в конфигурационный файл /etc/exim4/exim4.conf.template (перед секцией remote_smtp):

# DKIM:

DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_KEY_FILE = /etc/exim4/dkim/DKIM_DOMAIN.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
DKIM_SELECTOR = mymail

Конфигурационный файл может быть разделён на несколько более мелких файлов в процессе установки exim4. В таком случае, указанные строки необходимо добавить в файл /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp

Ещё один вариант — ручное создание конфигурационного файла /etc/exim4/exim4.conf. В таком случае, добавлять строки следует в этот файл.

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

/etc/init.d/exim4 restart

Проверка записей в конфигурационным файле Exim

Чтобы проверить записи в конфигурационном файле Exim, следует выполнить следующую команду:

exim -bP transports | grep dkim

Ответ должен иметь следующий вид:

dkim_domain = ${lc:${domain:$h_from:}}
dkim_private_key = ${if exists{/etc/exim4/dkim/${lc:${domain:$h_from:}}.key}{/etc/exim4/dkim/${lc:${domain:$h_from:}}.key}{0}}
dkim_selector = mymail

где dkim_selector это первое слово перед ._domainkey в открытом ключе

От автора

Я не противник postfix и sendmail. Однако проект протокола SMTP судя по всему писался, что
называется, «на коленке». Поэтому, администратор почтового сервера должен очень хорошо
разбираться в тонкостях работы своего сервера, чтобы хоть как-либо эффективно
сдерживать поток входящей (а иногда и исходящей) грязи (вирусы + спам + неизбежные проблемы,
определяющие специфику конкретной системы).

Sendmail с этой точки зрения (разбора тонкостей) является динозавром, раскопки которого давно
пора поручить опытным археологам — может быть они расскажут нам о светлом прошлом UUCP.
Postfix — другая крайность, свежий софт; работает по принципу «поставил и забыл». Но:

  1. Дыры в нем находят ежеквартально — как в свое время находили в sendmail.
  2. Активный интерес к postfix чаще всего проявляют Unix (а еще чаще Linux) админы со слишком
    серьезным отношением к себе. Они думают, что одна эта софтина решит все их проблемы с почтой раз и
    навсегда. Они ее ставят, запускают, и фанатеют от такой «простоты».
  3. Опции конфигурирования postfix местами настолько путанны, что без чтения документации
    редактировать их сложновато. А качество последней оставляет желать лучшего.
  1. Дыры можно отслеживать и вовремя зашивать (обновляться), но ведь выбор postfix-а обычно делается
    именно из-за нежелания изучать предмет хоть-сколько нибудь глубоко. Эта лень мешает подписаться на рассылку,
    а без рассылки о существовании дыр узнаем по факту взлома — со временем сервер таки ломают.
  2. Фанатизм фиксирует в уме админа уверенность в абсолютной правильности (а если смотреть на треды
    в форумах, то «праведности») такого метода работы. И когда приходит время крутить настройки, гордыня
    (которая выросла из фанатизма) заставляет беднягу усиленно сопротивляться переменам.
  3. Изменение параметров уже работающей системы — процесс всегда гораздо более трудоемкий и нервный, чем
    настройка с нуля, когда есть время спокойно «покрутить». А тут еще эти «странные» опции…. :) Приемущество
    postfix, указанное на сайте как «easy to administer» просто не соответствует действительности. Вообще
    чтение документации по postfix может привести к исчезновению энтузиазма: не делайте это, не делайте то…

Трезвостатья расчитана
на небольшие почтовые сервера

В статье приводятся ссылки на различные части RFC протокола SMTP, в скобках приводится конкретный
пункт. Полный текст сего документа можно посмотреть
на IETF под номером 2821.

SpamAssassin

SpamAssassin анализирует содержимое писем. После анализа в заголовки письма добавляются строки, в которых указан уровень спама. В почтовом клиенте можно настроить фильтры, которые будут учитывать результаты анализа SpamAssassin. Например, для почтового клиента Mozilla Thunderbird:

  1. Перейдите в Инструменты → Фильтры сообщений.
  2. Выберите почтовый ящик в Фильтры для.
  3. Нажмите Создать.
  4. Укажите Имя фильтра.
  5. Настройте фильтр:
    1. Нажмите Тема и выберите Настроить в выпадающем меню признаков.

      Создание правила фильтрации

    2. Укажите в поле Новый заголовок сообщения значение «X-Spam-Level».
    3. Выберите Содержит в типе условия.

      Создание правила фильтрации

    4. В качестве значения признака уровень спама будет применён фильтр. Уровень указывается от 1 до 10 символами «*». Рекомендуем уровень 7 — «*******».

      Создание правила фильтрации

  6. Нажмите Ok.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: