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

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


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

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


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

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

Dieses hat gegenüber der Anbindung von Benno MailArchiv per (always_)bcc oder einem ähnlichen Mechanismus den Vorteil, daß die eigentlichen Envelope-Informationen nicht verloren gehen. Bei E-Mails, die per BCC verschickt werden, existiert kein entsprechender Header in der E-Mail selbst. Diese Information wird als sogenannter Envelope von Mailserver zu Mailserver übermittelt.

Der MILTER Daemon „benno-milter“ speichert jede eingehende E-Mail im Inbox-Verzeichnis von Benno MailArchiv. Beim Schreiben der Datei speichert der MILTER die Envelope-Informationen (MAIL FROM, RCPT TO) in den zusätzlichen Headern

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

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

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

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

Hinweis: Das Milter-Paket und die diesbezüglichen, an dieser Stelle dargestellten Informationen, stehen als demonstratives Beispiel und „as is“ ohne Anspruch auf Vollständigkeit zur Verfügung.

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

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

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

Nachdem das Benno MailArchiv Repository konfiguriert wurde, wird das Paket benno-milter per apt installiert. In der Voreinstellung ist benno-milter für die Implementierung in einen vorher installierten Postfix MTA konfiguriert. Daher sollte vor der Installation des Packages die Installation und Konfiguration des MTA abgeschlossen sein.

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

apt-get install benno-milter

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

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

Die MILTER-Anbindung wird in der Konfigurationsdatei /etc/postfix/main.cf vorgenommen. Hierfür werden hier die folgenden Konfigurationsparameter hinzugefügt. Achtung Falls Amavis als Post-Queue Filter installiert ist, sollte die Konfiguration des MILTERs wie in MILTER für Amavis deaktivieren beschrieben durchgeführt werden.

... ### 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

Falls der MILTER Daemon vom MTA getrennt installiert werden soll, kann der Benno MILTER Daemon per über TCP angebunden werden.

Danach den Postfix-Daemon neu starten. Achtung: Falls das System so konfiguriert ist, daß eine Mail einen Filter durchläuft und dann erneut über einen zweiten SMTP-Prozess eingeliefert wird, muss der MILTER in diesem SMTPD deaktiviert werden. Dieses ist zum Beispiel beim Einsatz von Amavis der Fall.

TCP-сокет

Falls der MILTER Daemon auf einem vom SMTP-Service getrennten Host installiert werden soll, muss der MILTER Daemon an einen TCP-Socket gebunden werden und der Deamon muss nicht mit der Gruppe postfix gestartet werden. Hierfür wird vom Pre-Install Script des Pakets die Override-Datei /etc/systemd/system/benno-milter.service.d/override.conf angelegt.

В конфигурации 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 и системой архивирования электронные письма должны быть перенесены в систему архивирования и сохранены там без изменений.

Die einfachste Möglichkeit ist, den MILTER-Daemon auf dem Archivierungs-Host zu installieren. Der MILTER wird so konfiguriert, daß er einen TCP-Socket bindet, so daß die Kommunikation zwischen MTA und MILTER über das Netwerk erfolgen kann.

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

benno smtp

Eine andere Möglichkeit ist die Konfiguration des MILTER Daemons auf dem MTA und die Übertragung der E-Mails per SMTP zum Archivierungssystem. Hier wird auf dem Benno MailArchiv Host wird das Paket benno-smtp installiert. Das Paket enthält den SMTP Daemon, der über Port 2500 eingelieferte E-Mails werden ohne Veränderung im Benno Import Verzeichnis speichert.

На хосте 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

Danach wird die Übertragung per Cron-Job in /etc/cron.d/benno-milter durch entkommentieren des Kommandos aktiviert.

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

Dieser Cron-Job ruft letztendlich das Programm benno-milter2smtp auf, mit dem die E-Maildatein per SMTP übertragen werden.

Die X-REAL-* Header der Maildump-Dateien werden beim Versand entfernt und als Envelope-Informationen übertragen. Daher muss bei der Konfiguration von benno-smtp darauf geachtet werden, dass in der Konfigurationsdatei /etc/benno-smtp/benno-smtp.conf die Einstellung envelope_header = true gesetzt ist.

Почтовый сервер 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

Die Kommunikation zwischen MTA und Benno Mailarchiv per MILTER erfolgt unverschlüsselt. Falls sich der Mailserver und die Benno MailArchiv App auf der gleichen Maschine befinden, kann die Kommunikation auch über den Hostnamen localhost erfolgen.

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

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

Achtung: Bei SPAM-Filterung per Amavis muss der MILTER für den smtpd auf Port 10025 deaktiviert werden, falls Amavis als Post-Queue Filter konfiguriert ist. Im Falle einer Pre-Queue Konfiguration können die -o smtpd_milters= und -o non_smtpd_milters= Konfigurationen entfallen.

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

Falls der submission-Port ebenfalls gebunden ist, muss die MILTER-Konfiguration hier ebenfalls eingefügt werden.

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

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

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

Подготовка

Vor der Konfiguration des MILTER Daemons muss sichergestellt werden, dass das Spoolverzeichnis /srv/benno/inbox existiert. Dieses Verzeichnis sollte ist der Installation von Benno MailArchiv auf dem System angelegt worden. Falls der MILTER-Daemon auf einem anderen System installiert wird, muss das Verzeichnis nachträglich erstellt und der Benutzer benno angelegt werden. Dieser muss Schreibrechte auf dem Verzeichnis /srv/benno/inbox erhalten.

Auf einem Debian System wird das Paket benno-milter installiert. Dieses führt die Schritte zur Inbetriebnahme des MILTER Daemons automatisch durch.

  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/

Debuggging

Работа сервиса регистрируется с помощью 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

Der Paramter -l /tmp/benno-milter.pid muss bei Benno MILTER < 2.10.0 weggelassen werden.

SystemD

Der Benno MILTER Daemon wird mittels systemd gestartet. Die Konfiguration des Services wird im Servicefile /etc/systemd/system/benno-milter.service festgelegt.

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

/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  

Diese Variablen werden ggfs. durch die Einstellungen der Konfigurationsdatei /etc/default/benno-milter überschrieben.

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

Если 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 Start

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.1689756446.txt.gz · Zuletzt geändert: 2023/07/19 08:47 von lwsystems