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 [2023/07/05 10:36] – [/etc/postfix/main.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 21: Zeile 21:
  
 Falls mehrere Systeme als Importquellen angebunden werden, sollten die Anmerkungen der [[Multi-Import|Multi-Import Konfiguration]] beachtet werden.  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 ======
  
Zeile 36: 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.
  
-===== Anbindung per Unix Domain Socket ===== 
- 
-Die Anbindung von Postfix an den MILTER Daemon per Unix Domain Socket wird in der Datei ''/etc/postfix/main.cf'' konfiguriert. 
  
 <file> <file>
Zeile 55: 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 68: Zeile 80:
  
  
-====== Spezielle Konfigurationen / Andere MTAs  ====== 
  
-Das benno-milter Paket ist so konfiguriert, das der MILTER Daemon über den Socket ''/var/spool/postfix/benno-milter/benno-milter.sock'' vom Postfix angesprochen wird. Das Verzeichnis ''/var/spool/postfix/benno-milter'' wird bei der Installation automatisch angelegt. +====== Spezielle Konfigurationen Andere MTAs  ======
-Falls dieses Verzeichnis nicht angelegt werden konnte, weil kein Postfix installiert war, kann der MILTER Daemon nicht starten.+
  
-Nach Installation von Postfix kann die automatische Konfiguration mit Hilfe des Kommandos +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 konfigueriert. Andernfalls wird die Anbindung per TCP Socket eingestellt.
-''apt install --reinstall benno-milter'' durchgeführt werden.+
  
-Die Anbindung an einen anderen MTA sollte per [[#milter_per_tcp-socket|TCP-Socket]] durchgeführt werden. 
 ===== Anbindung bei getrenntem Benno MailArchiv Host ===== ===== Anbindung bei getrenntem Benno MailArchiv Host =====
  
Zeile 82: 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 178: 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 214: 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 238: 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.1688553363.txt.gz · Zuletzt geändert: 2023/07/05 10:36 von lwsystems