Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:postfix_centos_7_-_altermime_einsetzen

Dies ist eine alte Version des Dokuments!


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.

Installation

Nachfolgendes rpm-Paket ist zur Installation erforderlich:

  • altermime - ist im EPEL-Repository des Drittanbieters EPEL CentOS 7 enthalten

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.
ALTERMIME_EXE=/usr/bin/altermime
INSPECT_DIR=/var/spool/altermime
SENDMAIL="/usr/sbin/sendmail.postfix -G -i"
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
        $ALTERMIME_EXE --input=$INSPECT_DIR/in.$$ \
                       --disclaimer=/etc/postfix/altermime/disclaimer_$FROM_ADDRESSES.text \
                       --disclaimer-html=/etc/postfix/altermime/disclaimer_$FROM_ADDRESSES.html \
                       --force-for-bad-html \
                       --xheader="X-alterMIME: Mail body modified (using disclaimer) - `hostname`" \
                       || { echo Message content rejected; exit $EX_UNAVAILABLE; }
else
        $ALTERMIME_EXE --input=$INSPECT_DIR/in.$$ \
                       --disclaimer=/etc/postfix/altermime/disclaimer_default.text \
                       --disclaimer-html=/etc/postfix/altermime/disclaimer_default.html \
                       --force-for-bad-html \
                       --xheader="X-alterMIME: Mail body modified (using disclaimer) - `hostname`" \
                       || { 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.altermime /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
-- 
 
------------------------------------------
e-Mail  : postmaster@tachtler.net
Homepage: http://www.tachtler.net
------------------------------------------

:!: HINWEIS - Nach dem Trennzeichen

--

sollte noch ein Leerzeichen folgen, da sonst einige Clients den „Disclaimer“ nicht richtig vom „Body“ der e-Mail separieren können! * Danke für den Hinweis von Juri Haberland

und

  • /etc/postfix/altermime/disclaimer_default.html
<br>
<span style="font-family:monospace; color:#000000">--&nbsp;</span><br>
<br>
<span style="font-family:monospace; color:#000000">------------------------------------------</span><br>
<span style="font-family:monospace; color:#000000">e-Mail&nbsp;&nbsp;:&nbsp;postmaster@tachtler.net</span><br>
<span style="font-family:monospace; color:#000000">Homepage:&nbsp;http://www.tachtler.net</span><br>
<span style="font-family:monospace; color:#000000">------------------------------------------</span><br>
<br>

:!: HINWEIS - Nach dem Trennzeichen

--

sollte noch ein Leerzeichen (&nbsp;) folgen, da sonst einige Clients den „Disclaimer“ nicht richtig vom „Body“ der e-Mail separieren können! * Danke für den Hinweis von Juri Haberland

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
-- 
 
------------------------------------------
e-Mail  : postmaster@tachtler.net
Homepage: http://www.tachtler.net
------------------------------------------

:!: HINWEIS - Nach dem Trennzeichen - , sollte noch ein Leerzeichen folgen, da sonst einige Clients den „Disclaimer“ nicht richtig vom „Body“ der e-Mail separieren können! * Danke für den Hinweis von Juri Haberland

und

  • /etc/postfix/altermime/disclaimer_postmaster@tachtler.net.html
<br>
<span style="font-family:monospace; color:#000000">--&nbsp;</span><br>
<br>
<span style="font-family:monospace; color:#000000">------------------------------------------</span><br>
<span style="font-family:monospace; color:#000000">e-Mail&nbsp;&nbsp;:&nbsp;postmaster@tachtler.net</span><br>
<span style="font-family:monospace; color:#000000">Homepage:&nbsp;http://www.tachtler.net</span><br>
<span style="font-family:monospace; color:#000000">------------------------------------------</span><br>
<br>

:!: HINWEIS - Nach dem Trennzeichen - , sollte noch ein Leerzeichen (&nbsp;) folgen, da sonst einige Clients den „Disclaimer“ nicht richtig vom „Body“ der e-Mail separieren können! * Danke für den Hinweis von Juri Haberland

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 - alterMIME

versehen.

Anpassungen vorhandener Einstellungen in /etc/postfix/master.cf (nur relevanter Ausschnitt):

(Nur relevanter Ausschnitt):

# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
...
...
...
# Tachtler - new - 
# Outgoing traffic from trusted networks, with amavisd-new (altermime).
192.168.1.60:smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=192.168.0.70:10024
  -o smtpd_client_connection_count_limit=4
  -o smtpd_proxy_options=speed_adjust
192.168.0.60:smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=192.168.0.70:10024
  -o smtpd_client_connection_count_limit=4
  -o smtpd_proxy_options=speed_adjust
127.0.0.1:smtp      inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=192.168.0.70:10024
  -o smtpd_client_connection_count_limit=4
  -o smtpd_proxy_options=speed_adjust
# Tachtler - new -
# Outgoing traffic, BACK from amavisd-new from smtpd_proxy_filter.
192.168.0.60:10025     inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=
  -o smtpd_milters=
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8,192.168.0.0/24,192.168.1.0/24,192.168.2.0/24,88.217.171.167/32
  -o smtpd_client_restrictions=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_relay_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=
  -o mynetworks=0.0.0.0/32,127.0.0.0/8,192.168.0.0/24,192.168.1.0/24,192.168.2.0/24,88.217.171.167/32
  -o receive_override_options=no_unknown_recipient_checks
# Tachtler - new -
# Outgoing traffic, BACK from amavisd-new from content_filter.
192.168.0.60:10027     inet  n       -       n       -       -       smtpd
  -o content_filter=
  -o smtpd_proxy_filter=
  -o smtpd_milters=
  -o smtpd_authorized_xforward_hosts=127.0.0.0/8,192.168.0.0/24,192.168.1.0/24,192.168.2.0/24,88.217.171.167/32
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_relay_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -o mynetworks=0.0.0.0/32,127.0.0.0/8,192.168.0.0/24,192.168.1.0/24,192.168.2.0/24,88.217.171.167/32
  -o smtpd_error_sleep_time=0
  -o smtpd_soft_error_limit=1001
  -o smtpd_hard_error_limit=1000
  -o smtpd_client_connection_count_limit=0
  -o smtpd_client_connection_rate_limit=0
  -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
  -o local_header_rewrite_clients=
...
...
...
# Tachtler - enabled - 
submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  # Tachtler - alterMIME
  -o content_filter=altermime:
  -o lmtp_use_tls=yes
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
#  -o smtpd_client_restrictions=$mua_client_restrictions
#  -o smtpd_helo_restrictions=$mua_helo_restrictions
#  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=
  -o smtpd_relay_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
...
...
...
pickup    unix  n       -       n       60      1       pickup
  -o content_filter=lmtp:[192.168.0.70]:10026
  -o lmtp_use_tls=yes
...
...
...
# Tachtler - alterMIME
altermime unix  -       n       n       -       4       pipe
  flags=Rq user=altermime null_sender= argv=/etc/postfix/altermime/altermime.sh -f ${sender} -- ${recipient}
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
tachtler/postfix_centos_7_-_altermime_einsetzen.1493619283.txt.gz · Zuletzt geändert: 2017/05/01 08:14 von klaus