Benutzer-Werkzeuge

Webseiten-Werkzeuge


mail-import_via_milter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mail-import_via_milter [2019/01/07 13:57] – [Alternative Anbindung in der master.cf] lwsystemsmail-import_via_milter [2024/02/05 07:37] (aktuell) – [Alternative Anbindung in der "master.cf"] lwsystems
Zeile 14: Zeile 14:
  
  
-Auf Debian und auf Debian basierenden Systemen erfolgt die Grund-Installation direkt aus dem Paket //benno-milter// aus dem Repository. Danach ist nur noch die [[#MILTER_Postfix_Konfiguration|Anbindung der Postfix-Konfiguration]] notwendig. +Auf Debian und auf Debian basierenden Systemen erfolgt die Grund-Installation direkt aus dem Paket //benno-milter// aus dem Repository. Danach ist nur noch die [[#unix_domain_socket|Anbindung der Postfix-Konfiguration]] notwendig. 
  
 Auf anderen Systemen sollte die manuelle Installation vorgenommen werden.  Auf anderen Systemen sollte die manuelle Installation vorgenommen werden. 
Zeile 20: Zeile 20:
 **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.  **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. 
  
 +Falls mehrere Systeme als Importquellen angebunden werden, sollten die Anmerkungen der [[Multi-Import|Multi-Import Konfiguration]] beachtet werden. 
  
 ====== Installation aus Debian Package ====== ====== Installation aus Debian Package ======
  
 +===== Mit vorher installiertem Postfix =====
  
-Nachdem das [[Repository|Benno MailArchiv Repository]] konfiguriert wurde, wird das Paket //benno-milter// per apt installiert.+ 
 +Nachdem das [[Repository|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. 
 + 
 +Anschließend wird das Paket installiert.
  
 <code> <code>
Zeile 32: Zeile 37:
 Nach der Installation des Pakets wird der MILTER Daemon an Postfix angebunden. Nach der Installation des Pakets wird der MILTER Daemon an Postfix angebunden.
  
 +===== Unix Domain Socket =====
  
-====== Anbindung an Postfix ====== 
  
 Die MILTER-Anbindung wird in der Konfigurationsdatei ''/etc/postfix/main.cf'' vorgenommen. Hierfür werden hier die folgenden Konfigurationsparameter hinzugefügt. 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_fuer_amavis_deaktivieren|MILTER für Amavis deaktivieren]] beschrieben durchgeführt werden. **Achtung** Falls Amavis als Post-Queue Filter installiert ist, sollte die Konfiguration des MILTERs wie in [[#milter_fuer_amavis_deaktivieren|MILTER für Amavis deaktivieren]] beschrieben durchgeführt werden.
  
-===== /etc/postfix/main.cf ===== 
  
 <file> <file>
Zeile 49: Zeile 53:
 </file> </file>
  
-Falls der MILTER Daemon vom MTA getrennt installiert werden soll, kann der Benno MILTER Daemon per [[#milter_per_tcp-socket|über TCP angebunden]] werden.   +Falls der MILTER Daemon vom MTA getrennt installiert werden soll, kann der Benno MILTER Daemon per [[#tcp-socket|über TCP angebunden]] werden.   
  
 Danach den Postfix-Daemon neu starten. 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 [[#milter_fuer_amavis_deaktivieren|deaktiviert]] werden.  **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 [[#milter_fuer_amavis_deaktivieren|deaktiviert]] werden. 
 Dieses ist zum Beispiel beim Einsatz von Amavis der Fall. Dieses ist zum Beispiel beim Einsatz von Amavis der Fall.
 +
 +===== TCP-Socket =====
 +
 +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.
 +
 +Diese Konfiguration kann auch nachträglich in ''[[benno-milter|/etc/default/benno-milter]]'' vorgenommen werden.
 +
 +In der Postfix-Konfiguration werden die Pfade zum Socket durch die Angabe von Hostname/IP-Adresse und Port ersetzt:
 +
 +  smtpd_milters = inet:benno.lw-systems.net:22500
 +  non_smtpd_milters = inet:benno.lw-systems.net:22500
 +
 +  
 +
 ===== Details der Anbindung  ===== ===== Details der Anbindung  =====
  
Zeile 62: Zeile 80:
  
  
-====== Besonderheiten / spezielle Konfigurationen  ====== 
  
-Postfix ist ein sehr flexibel konfigurierbarer MailserverDaher muss die individuelle Konfiguration der Anbindung des MILTERS in einigen Fällen von den hier aufgeführten Beispielen abweichenWir haben hier einige häufig auftretende Anwendungsfälle aufgeführt+====== Spezielle Konfigurationen / Andere MTAs  ====== 
 + 
 +Bei der Installation des Packages wird geprüft, ob das Spool-Verzeichnis von Postfix vorhanden ist. In diesem Fall wird der MILTER-Daemon für die Anbindung per Unix Domain Socket konfigueriertAndernfalls wird die Anbindung per TCP Socket eingestellt.
  
 ===== Anbindung bei getrenntem Benno MailArchiv Host ===== ===== Anbindung bei getrenntem Benno MailArchiv Host =====
Zeile 71: Zeile 90:
  
 Die einfachste Möglichkeit ist, den MILTER-Daemon auf dem Archivierungs-Host zu installieren. Die einfachste Möglichkeit ist, den MILTER-Daemon auf dem Archivierungs-Host zu installieren.
-Der MILTER wird so konfiguriert, daß er einen [[mail-import_via_milter#milter_per_tcp-socket|TCP-Socket]] bindet, so daß die Kommunikation zwischen MTA und MILTER über das Netwerk erfolgen kann.+Der MILTER wird so konfiguriert, daß er einen [[mail-import_via_milter#tcp-socket|TCP-Socket]] bindet, so daß die Kommunikation zwischen MTA und MILTER über das Netwerk erfolgen kann.
  
 Diese Konfiguration hat den Nachteil, daß der eigentiche Mailtransport von einem weiteren Host abhängig ist. Diese Konfiguration hat den Nachteil, daß der eigentiche Mailtransport von einem weiteren Host abhängig ist.
Zeile 111: Zeile 130:
 ==== Univention Mailserver ==== ==== Univention Mailserver ====
  
-Ein Univention-Setup mit einem einzelnen Server für Benno MailArchiv erfordert die Installation des //benno-milter// Pakets direkt auf dem [[https://www.univention.de/produkte/univention-app-center/app-katalog/mailserver/|UCS Mailserver]]Hier wird das  [[Repository]] von Benno MailArchiv auf dem UCS System eingetragen und //benno-milter// installiert. +In einer Univention-Umgebung wird die MailArchiv App auf dem zentralen Mailserver angebundenZur Konfiguration werden die UCR-Variablen wie folgt gesetzt.
- +
-Die Konfiguration der Postfix-Anbindung wird mit Hilfe der Univention-Config-Registry durchgeführt. +
 <code> <code>
-ucr set mail/postfix/mastercf/options/smtp/smtpd_milters=unix:/var/spool/postfix/benno-milter/benno-milter.sock+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/smtp/milter_default_action=tempfail
-ucr set mail/postfix/mastercf/options/smtps/smtpd_milters=unix:/var/spool/postfix/benno-milter/benno-milter.sock+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 ucr set mail/postfix/mastercf/options/smtps/milter_default_action=tempfail
 </code> </code>
 +Als Hostnamen kann der FQDN des Benno MailArchiv Systems oder die IP-Adresse angegeben werden.
  
 +Zur Aktivierung der Konfiguration ist ein Neustart von Postfix notwendig: ''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 für Amavis deaktivieren  ===== ===== MILTER für Amavis deaktivieren  =====
  
Zeile 165: Zeile 186:
 </file> </file>
  
-Falls der //submission//-Port ebenfalls gebunden ist, muss die MILTER-Konfiguration hier ebenfalls eingefügt werden.+Falls der **//submission//**-Port ebenfalls gebunden ist, muss die MILTER-Konfiguration hier ebenfalls eingefügt werden.
  
 Bei Angabe des Pfades zum Socket ist die //chroot// Konfiguration des Dienstes wichtig. Falls //chroot// auf //n// gesetzt wird oder der Defaultwert in der Kommentarzeile mit //n// angegeben ist, muss der Pfad als kompletter Pfad zum Socket angegeben werden. Im Beispiel oben ist der Pfad relativ zum chroot-Verzeichnis konfiguriert.  Bei Angabe des Pfades zum Socket ist die //chroot// Konfiguration des Dienstes wichtig. Falls //chroot// auf //n// gesetzt wird oder der Defaultwert in der Kommentarzeile mit //n// angegeben ist, muss der Pfad als kompletter Pfad zum Socket angegeben werden. Im Beispiel oben ist der Pfad relativ zum chroot-Verzeichnis konfiguriert. 
-====== MILTER per TCP-Socket ====== 
  
-Falls der MILTER Daemon auf einem vom SMTP-Service getrennten Host installiert werden soll, muss der MILTER Daemon an einen TCP-Socket gebunden werden. In der Konfigurationsdatei ''/etc/default/benno-milter'' wird die Parameter 
- 
-  SOCKET_TYPE=inet 
-  SOCKET=22500@0.0.0.0 
- 
-gesetzt. In der Postfix-Konfiguration werden die Pfade zum Socket durch die Angabe von Hostname/IP-Adresse und Port ersetzt: 
- 
-  smtpd_milters = inet:benno.lw-systems.net:22500 
-  non_smtpd_milters = inet:benno.lw-systems.net:22500 
- 
-   
 ====== Manuelle Installation ====== ====== Manuelle Installation ======
  
Zeile 201: Zeile 210:
   - ''cp sbin/maildump-milter /usr/local/sbin/maildump-milter''   - ''cp sbin/maildump-milter /usr/local/sbin/maildump-milter''
   - ''/etc/init.d/maildump-milter start''   - ''/etc/init.d/maildump-milter start''
 +
  
 ===== Anbindung an Postfix  ===== ===== Anbindung an Postfix  =====
Zeile 225: Zeile 235:
  
  
 +====== Debugging ======
 +
 +Das Logging des Services erfolgt mittels syslog mit der Facility LOG_MAIL.
 +
 +===== Testaufruf =====
 +
 +Zu Testzwecken kann der Daemon auch auf der Konsole mit dem folgenden Kommandoaufruf gestartet werden.
 +
 +<code bash>
 +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
 +</code>
 +
 +Der Paramter ''-l /tmp/benno-milter.pid'' muss bei Benno MILTER < 2.10.0 weggelassen werden.
 +
 +===== Systemd =====
 +
 +Der Benno MILTER Daemon wird von //systemd// gestartet. Die Konfiguration des Services wird im Servicefile ''/etc/systemd/system/benno-milter.service'' festgelegt.
 +
 +Der Daemon wird letztendlich mit dem folgenden Aufruf gestartet:
 +
 +<code bash>
 +/usr/sbin/benno-milter \
 +    -l ${RUNTIME_DIRECTORY}/benno-milter.pid \
 +    -p ${SOCKET_TYPE}:${SOCKET} \
 +    -o ${SPOOLDIR} ${MILTERARGS}
 +</code>
 +
 +Die hier aufgeführten Umgebungsvariablen werden im Servicefile vorkonfiguriert:
 +
 +  # systemctl show benno-milter --property=Environment
 +
 +<code bash>
 +SOCKET_TYPE=local
 +SOCKET=/var/spool/postfix/benno-milter/benno-milter.sock
 +SPOOLDIR=/srv/benno/inbox
 +PIDFILE=/run/benno-milter/benno-milter.pid  
 +</code>
 +
 +Diese Variablen werden ggfs. durch die Einstellungen der Konfigurationsdatei ''/etc/default/benno-milter'' überschrieben.
 +
 +==== Benutzer und Gruppe ====
 +
 +Falls der MILTER per UNIX DOMAIN Socket an Postfix angebunden ist, wird der Service mit dem User "benno" und der Gruppe "postfix" gestartet. Bei Anbindung per TCP Socket kann diese Einstellung abweichen. Die jeweils aktuelle Konfigurationseinstellung kann über die folgenden Aufrufe ausgelesen werden:
 +
 +  # systemctl show benno-milter --property=User
 +  # systemctl show benno-milter --property=Group
 +
 +Vom Standard abweichende Einstellungen sind in der Konfigurationsdatei ''/etc/systemd/system/benno-milter.service.d/override.conf'' festgelegt.
 +
 +==== Systemd Start ====
 +
 +
 +<code bash>
 +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}
 +</code>
mail-import_via_milter.1546869476.txt.gz · Zuletzt geändert: 2019/01/07 13:57 von lwsystems