Инструменты пользователя

Инструменты веб-сайта


импорт почты через milter

Это старая версия документа!


Импорт почты через MILTER

Для подключения Benno MailArchiv к почтовым системам, работающим под управлением Unix, мы рекомендуем использовать MILTER .

Преимущество этого метода перед подключением Benno MailArchiv через ( always_ )bcc или аналогичный механизм заключается в том, что фактическая информация в заголовке письма не теряется. В письмах, отправленных через BCC, отсутствует соответствующий заголовок. Эта информация передается в виде так называемого конверта от почтового сервера к почтовому серверу.

Демон MILTER " benno-milter " сохраняет каждое входящее письмо в папку "Входящие" архива Benno MailArchiv. При записи файла MILTER сохраняет информацию о заголовке письма ( MAIL FROM , RCPT TO ) в дополнительных заголовках.

  • X-REAL-MAILFROM
  • X-REAL-RCPTTO

Эти заголовки по умолчанию настроены в архиваторе как «<senderheaders /> " или "<recipientheaders /> Они также указаны как «<secretheaders /> «Помечены таким образом, чтобы они не отображались при просмотре электронного письма».

В системах Debian и системах на основе Debian базовая установка выполняется непосредственно из benno-milter в репозитории. После этого требуется только подключение конфигурации Postfix .

В других системах следует выполнять установку вручную.

Примечание: Пакет Milter и представленная здесь информация являются лишь демонстрационным примером и предоставляются «как есть», без каких-либо гарантий полноты.

Если в качестве источников импорта подключено несколько систем, соблюдать конфигурации множественного импорта

Установка из пакета Debian

При наличии предварительно установленного Postfix

После репозитория Benno MailArchiv пакет benno-milter устанавливается через apt. По умолчанию benno-milter настроен для работы в рамках ранее установленного MTA Postfix. Поэтому установку и настройку MTA следует завершить до установки пакета.

После этого пакет будет установлен.

apt-get install benno-milter

После установки пакета демон MILTER подключается к Postfix.

Сокет домена Unix

Настройка соединения MILTER осуществляется в /etc/postfix/main.cf . В него добавляются следующие параметры конфигурации. Примечание: Если Amavis установлен в качестве фильтра пост-очереди, настройку MILTER следует выполнять, как описано «Отключение MILTER для Amavis»

... ### Benno MailArchive Milter smtpd_milters = unix:/benno-milter/benno-milter.sock non_smtpd_milters = local:/benno-milter/benno-milter.sock milter_default_action = tempfail ### /Benno MailArchive Milter

Если демон MILTER устанавливается отдельно от MTA, то с демоном Benno MILTER можно соединение по протоколу TCP .

Затем перезапустите демон Postfix. Внимание : если система настроена таким образом, что электронное письмо проходит через фильтр, а затем повторно отправляется через второй процесс SMTP, необходимо отключить . Это, например, происходит при использовании Amavis.

TCP-сокет

Если демон MILTER должен быть установлен на хосте, отдельном от службы SMTP, демон MILTER должен быть привязан к TCP-сокету и не требует запуска с postfix . Для этой цели скрипт предварительной установки пакета создает файл переопределения /etc/systemd/system/benno-milter.service.d/override.conf .

В конфигурации Postfix пути к сокету заменяются указанием имени хоста/IP-адреса и порта:

smtpd_milters = inet:benno.lw-systems.net:22500 non_smtpd_milters = inet:benno.lw-systems.net:22500

Подробности подключения

  • `smtpd_milters` — Путь к сокету демона MILTER для входящих писем через SMTP. Путь указывается относительно среды chroot(2) установки Postfix.
  • non_smtpd_milters - Путь к сокету демона MILTER для электронных писем, отправляемых в систему через sendmail(1).
  • milter_default_action — Поведение системы в случае недоступности компонента MILTER.
  • lmtpd_milters — Подключает сервер MILTERS к демону для доставки электронных писем в локальные почтовые ящики. Здесь не требуется.

Специальные конфигурации / Другие MTA

В процессе установки пакета система проверяет, существует ли каталог очереди Postfix. Если да, то демон MILTER настраивается для подключения через сокет домена Unix. В противном случае подключение настраивается через TCP-сокет.

Интеграция с отдельным хостом Benno MailArchive

В случае логического разделения между MTA и системой архивирования электронные письма должны быть перенесены в систему архивирования и сохранены там без изменений.

Простейший вариант — установить демон MILTER на хост архивации. MILTER настроен на привязку TCP-сокета , что позволяет осуществлять связь между MTA и MILTER по сети.

Недостатком такой конфигурации является то, что фактическая передача почты зависит от другого хоста.

benno smtp

Другой вариант — настроить демон MILTER на MTA и передавать электронные письма в систему архивирования через SMTP. В этом случае benno-smtp . Этот пакет содержит демон SMTP, который сохраняет электронные письма, отправленные через порт 2500, в каталоге импорта Benno без изменений.

На хосте MTA имя хоста ( BENNOHOST= ) системы архивирования настроить /etc/default/benno-milter

# # Параметры запуска benno-milter # SOCKET=/var/spool/postfix/benno-milter/benno-milter.sock SPOOLDIR=/srv/benno/inbox #BENNOHOST=your.benno-archive.host

benno milter2smtp

Затем передача активируется с помощью задания cron в файле /etc/cron.d/benno-milter путем раскомментирования команды.

# # Импорт писем из maildump milter # #*/15 * * * * benno /usr/sbin/benno-export2archive

В конечном итоге эта задача cron вызывает программу benno-milter2smtp , которая используется для передачи файлов электронной почты по протоколу SMTP.

Заголовки X-REAL-* из файлов maildump удаляются во время отправки и передаются в качестве информации в конверте. Поэтому при настройке benno-smtp крайне важно убедиться, что параметр `envelope_header = true` `/etc/benno smtp.conf`.

Почтовый сервер Univention

В среде Univention приложение MailArchiv подключено к центральному почтовому серверу. Для настройки переменные UCR задаются следующим образом.

ucr set mail/postfix/mastercf/options/smtp/smtpd_milters=inet:benno-hostname:22500 ucr set mail/postfix/mastercf/options/smtp/milter_default_action=tempfail ucr set mail/postfix/mastercf/options/submission/smtpd_milters=inet:benno-hostname:22500 ucr set mail/postfix/mastercf/options/submission/milter_default_action=tempfail ucr set mail/postfix/mastercf/options/smtps/smtpd_milters=inet:benno-hostname:22500 ucr set mail/postfix/mastercf/options/smtps/milter_default_action=tempfail

В качестве имени хоста может использоваться полное доменное имя системы Benno MailArchiv или IP-адрес.

Для активации конфигурации требуется перезапуск Postfix: systemctl restart postfix

Обмен данными между MTA и Benno MailArchiv через MILTER осуществляется без шифрования. Если почтовый сервер и приложение Benno MailArchiv находятся на одной машине, обмен данными также может осуществляться через имя хоста localhost .

Отключить MILTER для Amavis

Многие спам- и вирусные фильтры требуют наличия SMTP-демона для обратной передачи проанализированных писем в систему. Настройка соединения MILTER в конфигурационном файле main.cf влияет на все службы Postfix SMTP в глобальном масштабе. Это означает, что письмо, прошедшее через обе службы SMTP, будет импортировано в архив дважды. Каждая служба SMTP добавляет свои собственные заголовки, поэтому контрольная сумма письма изменяется, что предотвращает его идентификацию как дубликата.

Внимание : При использовании Amavis для фильтрации спама необходимо отключить параметр MILTER для smtpd на порту 10025, если Amavis настроен как фильтр после очереди. В случае конфигурации до очереди параметры `-o smtpd_milters=` и `-o non_smtpd_milters=` можно опустить.

127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o smtpd_authorized_xforward_hosts=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_milters= -o non_smtpd_milters=

Функция MILTER деактивируется двумя строками «-o *_milters=".

Альтернативный способ подключения указан в файле "master.cf"

В качестве альтернативы настройке в файле "main.cf", MILTER также можно настроить в определении службы SMTP в файле "master.cf". Этот тип настройки не так прост, как main.cf, но он имеет преимущество в предотвращении случайного включения MILTER для нескольких служб SMTP.

# =========================================================================== # тип службы private unpriv chroot wakeup maxproc command + args # (да) (да) (да) (никогда) (100) # =============================================================================== smtp inet n - - - - smtpd -o smtpd_milters=unix:/benno-milter/benno-milter.sock -o non_smtpd_milters=local:/benno-milter/benno-milter.sock -o milter_default_action=tempfail

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

При указании пути к сокету важна конфигурация chroot chroot установлено значение n n , путь должен быть указан как полный путь к сокету. В приведенном выше примере путь задается относительно каталога chroot.

Ручная установка

Предварительно скомпилированная программа, включая скрипты инициализации и описание, может быть установлена ​​из архива tar maildump-milter.tar.gz.

Подготовка

Перед настройкой демона MILTER убедитесь, что существует каталог очереди печати /srv/benno/inbox . Этот каталог должен был быть создан в системе во время установки Benno MailArchiv. Если демон MILTER установлен в другой системе, каталог необходимо создать позже, а также создать пользователя "benno". Этому пользователю должны быть предоставлены права на запись в /srv/benno/inbox .

В системе Debian установлен пакет benno-milter . Он автоматически выполняет шаги по запуску демона MILTER.

  1. useradd –system –gid postfix –shell /bin/false –home /srv/benno/inbox benno
  2. adduser benno postfix
  3. mkdir /srv/benno/inbox
  4. chown benno.postfix /srv/benno/postfix
  5. mkdir /var/spool/postfix/maildump-milter
  6. chown benno.postfix /var/spool/postfix/maildump-milter
  7. cp init.d/maildump-milter /etc/init.d/maildump-milter
  8. update-rc.d maildump-milter start 05 2 3 4 5 . stop 01 0 1 6 .
  9. cp default/maildump-milter /etc/default/maildump-milter
  10. cp sbin/maildump-milter /usr/local/sbin/maildump-milter
  11. /etc/init.d/maildump-milter start

Подключение к Postfix

В файл main.cf добавлены следующие строки.

### Benno MailArchive Milter smtpd_milters = unix:/maildump-milter/socket non_smtpd_milters = local:/maildump-milter/socket #milter_default_action = Accept milter_default_action = tempfail ## if lmtp milter существует : # lmtpd_milters = unix:/maildump-milter/socket ### /Бенно MailArchive Милтер

Установка скриптов

  • cp sbin/maildump2smtp /usr/local/sbin/maildump2smtp
  • cp sbin/benno-maildumpimport /usr/local/sbin/benno-maildumpimport
  • cp cron.d/benno-import /etc/cron.d/benno-import/

Отладка

Работа сервиса регистрируется с помощью syslog с использованием механизма LOG_MAIL.

Тестовый звонок

Для целей тестирования демон также можно запустить с консоли, используя следующую команду.

sudo  -u benno -g postfix / usr / sbin / benno - milter \ -p local : /var/spool/postfix/benno-milter/benno-milter.sock \ -o  / srv / benno / inbox -l /tmp/benno-milter.pid 

параметр -l /tmp/benno-milter.pid необходимо опустить.

Системад

Демон Benno MILTER запускается системой systemd . Конфигурация службы определяется в файле службы /etc/systemd/system/benno-milter.service .

В конечном итоге запуск демона осуществляется следующим вызовом:

/ usr / sbin / benno-milter \ -l  ${RUNTIME_DIRECTORY} / benno-milter.pid \ -p  ${SOCKET_TYPE} : ${SOCKET} \ -o  ${SPOOLDIR}  ${MILTERARGS}

Указанные здесь переменные среды предварительно настроены в файле службы:

# systemctl show benno-milter --property=Environment
SOCKET_TYPE = local
 SOCKET = / var / spool / postfix / benno - milter / benno - milter.sock SPOOLDIR = / srv / benno / inbox PIDFILE = /run/benno-milter/benno-milter.pid

Эти переменные могут быть перезаписаны настройками в конфигурационном файле /etc/default/benno-milter .

Пользователь и группа

Если MILTER подключен к Postfix через сокет домена UNIX, служба запускается от имени пользователя "benno" и группы "postfix". При подключении через сокет TCP этот параметр может отличаться. Текущие параметры конфигурации можно получить с помощью следующих команд:

# systemctl show benno-milter --property=User # systemctl show benno-milter --property=Group

Настройки, отклоняющиеся от стандарта, определяются в конфигурационном файле /etc/systemd/system/benno-milter.service.d/override.conf .

запуск Systemd

eval $ ( systemctl show benno-milter --property =User --property =Group \ --property =Environment --property =RuntimeDirectory | \ perl  -pe  's/^Environment=//' ) ; \ . / etc / default / benno-milter; \ sudo  -u  $User  -g  $Group \ / usr / sbin / benno-milter \ -l  / run / ${RUNTIME_DIRECTORY} / benno-milter.pid \ -p  ${SOCKET_TYPE} : ${SOCKET} \ -o  ${SPOOLDIR}  ${MILTERARGS}
mail-import_via_milter.1689756517.txt.gz · Zuletzt geändert: 2023/07/19 08:48 von lwsystems