Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Postfix CentOS 7 - alterMIME einsetzen
Die OpenSource-Variante von alterMIME kann zu folgenden Aktionen in Bezug auf e-Mail's genutzt werden:
- Einfügen von sog. „Disclaimern“ - e-Mail Fusszeilen bei ein- und ausgehenden e-Mails
- Einfügen von frei wählbaren „X-Header“-Angaben im e-Mail-Header
- Verändern eines oder mehreren bereits in e-Mail-Header vorhandenen „X-Header“
- Entfernen von Dateianhängen basierend auf Dateinamen, oder Dateinhalten
- Austausch von Dateianhängen basierend auf Dateinamen
Herunterladen
Nachfolgende Beschreibung bindet das Drittanbieter-Repository von EPEL ein, damit darüber die Installation erfolgen kann.
- Siehe nachfolgenden internen Link: EPEL CentOS 7
Installation
Nachfolgendes rpm
-Paket ist zur Installation erforderlich:
Die Installation von altermime
, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# yum info altermime Loaded plugins: changelog, priorities [root@vml70060 ~]# yum install altermime Loaded plugins: changelog, priorities 387 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package altermime.x86_64 0:0.3.10-10.el7 will be installed --> Finished Dependency Resolution Changes in packages about to be updated: Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: altermime x86_64 0.3.10-10.el7 epel 57 k Transaction Summary ================================================================================ Install 1 Package Total download size: 57 k Installed size: 131 k Is this ok [y/d/N]: y Downloading packages: altermime-0.3.10-10.el7.x86_64.rpm | 57 kB 00:00 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : altermime-0.3.10-10.el7.x86_64 1/1 Verifying : altermime-0.3.10-10.el7.x86_64 1/1 Installed: altermime.x86_64 0:0.3.10-10.el7 Complete!
Die Installation von altermime
, kann durch ausführen des nachfolgenden Befehls durchgeführt werden:
# rpm -qil altermime Name : altermime Version : 0.3.10 Release : 10.el7 Architecture: x86_64 Install Date: Fri 28 Apr 2017 08:28:38 AM CEST Group : Applications/Internet Size : 133763 License : BSD Signature : RSA/SHA256, Sat 19 Jul 2014 05:31:35 AM CEST, Key ID 6a2faea2352c64e5 Source RPM : altermime-0.3.10-10.el7.src.rpm Build Date : Wed 16 Jul 2014 06:00:49 PM CEST Build Host : buildvm-02.phx2.fedoraproject.org Relocations : (not relocatable) Packager : Fedora Project Vendor : Fedora Project URL : http://www.pldaniels.com/altermime/ Summary : Alter MIME-encoded mailpacks Description : alterMIME is a small program which is used to alter MIME-encoded mailpacks. alterMIME can: * Insert disclaimers * Insert arbitary X-headers * Modify existing headers * Remove attachments based on filename or content-type * Replace attachments based on filename /usr/bin/altermime /usr/share/doc/altermime-0.3.10 /usr/share/doc/altermime-0.3.10/CHANGELOG /usr/share/doc/altermime-0.3.10/LICENCE /usr/share/doc/altermime-0.3.10/README
Konfiguration
Postfix alterMIME Aufruf-Script
Zur Konfiguration von alterMIME ist es notwendig eine Systemgruppe namens altermime
mit folgendem Befehl zu erstellen:
# groupadd -g 107 -r altermime
und einen Systembenutzer ebenfalls namens altermime
mit folgendem Befehl zu erstellen:
# useradd -c "Postfix alterMIME Filter" -d /var/spool/altermime -g altermime -m -r -s /sbin/nologin -u 107 altermime
Zu Überprüfung, ob das erstellen einer Systemgruppe namens altermime
erfolgreich war kann folgender Befehl mit nachfolgender Ausgabe genutzt werden:
# cat /etc/group | grep altermime altermime:x:107:
Zu Überprüfung, ob das erstellen eines Systembenutzers namens altermime
ebenfalls erfolgreich war kann folgender Befehl mit nachfolgender Ausgabe genutzt werden:
# cat /etc/passwd | grep altermime altermime:x:107:107:Postfix alterMIME Filter:/var/spool/altermime:/sbin/nologin
Eine Überprüfung, ob das home
-Verzeichnis angelegt wurde, kann mit folgendem Befehl durchgeführt werden und sollte eine Ausgabe in etwa wie folgende anzeigen:
# ll -la /var/spool/altermime total 16 drwx------ 2 altermime altermime 59 Apr 28 10:18 . drwxr-xr-x. 11 root root 4096 Apr 28 10:18 .. -rw-r--r-- 1 altermime altermime 18 Dec 7 00:19 .bash_logout -rw-r--r-- 1 altermime altermime 193 Dec 7 00:19 .bash_profile -rw-r--r-- 1 altermime altermime 231 Dec 7 00:19 .bashrc
Abschließend kann das automatisch neu angelegte home
-Verzeichnis mit folgendem Befehl und nachfolgender Ausgabe von unnötigem „Balast“ bereinigt werden:
# rm /var/spool/altermime/.* -f rm: cannot remove ‘/var/spool/altermime/.’: Is a directory rm: cannot remove ‘/var/spool/altermime/..’: Is a directory
* Die beiden Hinweise können getrost ignoriert werden!
Zuerst wird mit folgendem Befehl ein neues Verzeichnis mit Namen /etc/postfix/altermime
erstellt:
# mkdir /etc/postfix/altermime
Anschließend eine shell
-Script-Datei mit dem Namen altermime.sh
mit folgendem Befehl angelegt.
# touch /etc/postfix/altermime/altermime.sh
Der Inhalt des shell
-Script /etc/postfix/altermime/altermime.sh
sollte wie folgt aussehen, welches von HowtoForge - Oliver Meyer erstellt wurde, und dem ich auch noch ein paar Ergänzungen hinzugefügt habe!
#!/bin/sh # Localize these. INSPECT_DIR=/var/spool/altermime SENDMAIL=/usr/sbin/sendmail.postfix DISCLAIMER_ADDRESSES=/etc/postfix/altermime/disclaimer_addresses # Exit codes from <sysexits.h> EX_TEMPFAIL=75 EX_UNAVAILABLE=69 # Clean up when done or when aborting. trap "rm -f in.$$" 0 1 2 3 15 # Start processing. cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; } # Obtain - ONLY - From address FROM_ADDRESSES=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1` if [ `grep -wi ^${FROM_ADDRESSES}$ ${DISCLAIMER_ADDRESSES}` ]; then /usr/bin/altermime --input=in.$$ --disclaimer=/etc/postfix/altermime/disclaimer_$FROM_ADDRESSES.text --disclaimer-html=/etc/postfix/altermime/disclaimer_$FROM_ADDRESSES.html --xheader="X-alterMIME: Disclaimer added for mx1.tachtler.net" || { echo Message content rejected; exit $EX_UNAVAILABLE; } else /usr/bin/altermime --input=in.$$ --disclaimer=/etc/postfix/altermime/disclaimer_default.text --disclaimer-html=/etc/postfix/altermime/disclaimer_default.html --xheader="X-alterMIME: Disclaimer added for mx1.tachtler.net" || { echo Message content rejected; exit $EX_UNAVAILABLE; } fi $SENDMAIL "$@" <in.$$ exit $?
WICHTIG - Ein „Disclaimer“ wird nur ausgehenden e-Mails angehängt!
Um das shell
-Script ausführbar zu machen müssen die Besitzrechte wie folgt, mit folgendem Befehl gesetzt werden:
# chown root.postfix /etc/postfix/altermime/altermime.sh
und die Zugriffsrechte wie folgt, mit nachfolgendem Befehl gesetzte werden:
# chmod 750 /etc/postfix/altermime/altermime.sh
Postfix alterMIME Standard Disclaimer
WICHTIG - Zur Steuerung das bei ausgehenden e-Mails ein „Disclaimer“ angehängt werden soll, ist noch eine Standard „Disclaimer-Datei“ für PLAIN-Text und HTML nach folgendem Schema angelegt werden:
disclaimer_default.text
und
disclaimer_default.html
Die Dateien können mit folgenden Befehlen angelegt werden:
# touch /etc/postfix/altermime/disclaimer_default.text
und
# touch /etc/postfix/altermime/disclaimer_default.html
Abschließend muss noch der Inhalt der Standard „Disclaimer“-Datei entsprechend angepasst werden. Hier ein Beispiel für
/etc/postfix/altermime/disclaimer_default.text
--------------------------- Disclaimer www.tachtler.net ---------------------------
Postfix alterMIME Individuelle Disclaimer
WICHTIG - Zur Steuerung für welche ausgehenden e-Mail-Absender ein „Disclaimer“ angehängt werden soll, ist noch die Konfigurationsdatei mit den e-Mail-Adressen als einfache Liste notwendig!
Mit folgendem Befehl kann die Konfigurationsdatei im Verzeichnis /etc/postfix/altermime
und mit dem Namen disclaimer_addresses
erstellt werden:
# touch /etc/postfix/altermime/disclaimer_addresses
Der Inhalt sind die e-Mail-Absenderadressen, welche mit einem „Disclaimer“ ausgehend versorgt werden sollen. Hier ein Beispiel:
postmaster@tachtler.net abuse@tachtler.net
WICHTIG - Da wir benutzerbezogene „Disclaimer“ verwenden möchten, muss für jede e-Mail-Adresse in der Konfigurationsdatei /etc/postfix/altermime/disclaimer_addresses
jeweils auch eine „Disclaimer-Datei“ für PLAIN-Text und HTML nach folgendem Schema angelegt werden:
disclaimer_<e-mail-Adresse>.text
und
disclaimer_<e-mail-Adresse>.html
Die Dateien können mit folgenden Befehlen angelegt werden:
# touch /etc/postfix/altermime/disclaimer_postmaster@tachtler.net.text # touch /etc/postfix/altermime/disclaimer_abuse@tachtler.net.text
und
# touch /etc/postfix/altermime/disclaimer_postmaster@tachtler.net.html # touch /etc/postfix/altermime/disclaimer_abuse@tachtler.net.html
Abschließend muss noch der Inhalt der jeweiligen benutzerbezogenen „Disclaimer“-Datei entsprechend angepasst werden. Hier ein Beispiel für
/etc/postfix/altermime/disclaimer_postmaster@tachtler.net.text
--------------------- Disclaimer postmaster ---------------------
Postfix alterMIME /etc/postfix/master.cf
Um alterMIME in Postfix zu integrieren, sind nachfolgende Konfigurationseinstellungen in der Postfix-Konfigurationsdatei /etc/postfix/master.cf
notwendig.
Die relevanten Änderungen gegenüber der Standard-Konfiguration, sind mit folgendem Kommentar
# Tachtler
versehen.
Anpassungen vorhandener Einstellungen in /etc/postfix/master.cf
(nur relevanter Ausschnitt):
... # Tachtler # AMaViS - Incoming and forward to AMaViS listen on Port 10024 smtp inet n - n - - smtpd -o smtpd_proxy_filter=127.0.0.1:10024 -o content_filter=altermime: ... ... ... #628 inet n - n - - qmqpd # Tachtler # AMaViS - Incoming and forward to alterMIME pickup fifo n - n 60 1 pickup -o content_filter=altermime: cleanup unix n - n - 0 cleanup ... ... ... # alterMIME altermime unix - n n - - pipe flags=Rq user=postfix argv=/etc/postfix/altermime/altermime.sh -f ${sender} -- ${recipient}
WICHTIG - Falls e-Mails durch einen lokalen kleinen MUA Mail User Agent wie z.B. mutt
direkt in ein Postfach einfach auf die Festplatte geschrieben werden, ist es erforderlich hier die Übergabe an alterMIME einzurichten.