Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:postfix_centos_7_-_migration_von_version_2.x_auf_3.x

Postfix CentOS 7 - Migration von Version 2.x auf 3.x

Postfix ist Wietse Venema's Mail-Server, welcher bei „IBM research“ als Alternative zum ehemals weit verbreiteten Programm Sendmail entwickelt wurde. Postfix erhebt den Anspruch ein schneller, einfach zu administrierender und sicherer Mail-Server zu sein.

:!: WICHTIG - Bei CentOS ab der Version 7.x ist Postfix in der Version 2.10.1 enthalten, was die Nutzung einiger Möglichkeiten neuerer Postfix Versionen verhindert. Deshalb soll Postfix aus nachfolgendem Drittanbieter-Repository installiert werden!

Postfix wird von Wietse Venema entwickelt.

Ab hier werden zur Ausführung nachfolgender Befehle root-Rechte benötigt. Um der Benutzer root zu werden, melden Sie sich bitte als root-Benutzer am System an, oder wechseln mit nachfolgendem Befehl zum Benutzer root:

$ su -
Password:

Herunterladen

Nachfolgend soll ein Drittanbieter-Repository, welches von dem mir sehr geschätzten Michael Nausch betrieben wird und eine sichere und verlässliche Quelle für rpm-Pakete darstellt, wie unter nachfolgendem internen Link dargestellt, eingebunden werden:

:!: HINWEIS - Aktuell kommt das rpm-Paket für Postfix Version 3.x noch aus dem mailserver.guru-testing-Repository!

Deinstallation

Bevor mit der eigentlichen Deinstallation des postfix-Pakets begonnen werden kann, sollte Postfix mit nachfolgendem Befehl gestoppt werden:

# systemctl stop postfix.service

Dienst/Deamon-Stopp durchführen

Um einen Postfix, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers nicht mehr zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server nicht mehr mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl disable postfix.service
rm '/etc/systemd/system/multi-user.target.wants/postfix.service'

Eine Überprüfung, ob beim Neustart des Server der dovecot-Dienst/Deamon wirklich nicht mehr mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e postfix.service
postfix.service                        disabled

bzw.

# systemctl is-enabled postfix.service
disabled

Paket postfix entfernen

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, kann mit nachfolgenden Befehlen, das alte rpm-Paket - postfix deinstalliert werden:

# yum remove postfix
Loaded plugins: changelog, priorities
Resolving Dependencies
--> Running transaction check
---> Package postfix.x86_64 2:2.10.1-6.el7 will be erased
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package         Arch           Version                 Repository         Size
================================================================================
Removing:
 postfix         x86_64         2:2.10.1-6.el7          @anaconda          12 M

Transaction Summary
================================================================================
Remove  1 Package

Installed size: 12 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : 2:postfix-2.10.1-6.el7.x86_64                                1/1 
warning: directory /var/spool/postfix: remove failed: Device or resource busy
  Verifying  : 2:postfix-2.10.1-6.el7.x86_64                                1/1 

Removed:
  postfix.x86_64 2:2.10.1-6.el7                                                 

Complete!

:!: HINWEIS - Nachfolgende Warnung

warning: directory /var/spool/postfix: remove failed: Device or resource busy

da sich es bei diesem Verzeichnis um eine eigene Partition, bzw. Mount-Point und diese in Benutzung ist, handelt!

Installation: Postfix

Nachfolgender interne Link beschreibt die Installation von Postfix unter Verwendung des internen Links zur Einbindung des mailserver.guru - CentOS 7-Repositories:

Nach erfolgreicher Einbindung des Drittanbieter-Repository, sind nachfolgende Anpassungen in den Konfigurationsdateien

  • /etc/yum.repos.d/mailserver.guru.repo
  • /etc/yum.repos.d/CentOS-Base.repo

noch erforderlich, um die Installation des Postfix Version 3.x noch aus dem mailserver.guru-testing-Repository durchführen zu können.

/etc/yum.repos.d/mailserver.guru.repo

[mailserver.guru-os]
name=Extra (Mailserver-)Packages for Enterprise Linux 7 - $basearch
baseurl=http://repo.mailserver.guru/7/os/$basearch
priority=50
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/MAILSERVER.GURU-RPM-GPG-KEY-CentOS-7
exclude=postfix,postfix-*
 
 
[mailserver.guru-testing]
name=Testing (Mailserver-)Packages for Enterprise Linux 7 - $basearch
baseurl=http://repo.mailserver.guru/7/testing/$basearch/
priority=50
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/MAILSERVER.GURU-RPM-GPG-KEY-CentOS-7

Erklärungen zu den Anpassungen:

  • exclude=postfix,postfix-*

Herausnehmen des Pakets postfix und alle damit Verbundenen Pakete aus dem mailserver.guru-os-Repository.

  • enabled=1

Aktivieren des mailserver.guru-testing-Repository.

/etc/yum.repos.d/CentOS-Base.repo

(Nur relevanter Ausschnitt)

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
priority=1
exclude=postfix,postfix-*

Erklärungen zu den Anpassungen:

  • exclude=postfix,postfix-*

Herausnehmen des Pakets postfix und alle damit Verbundenen Pakete aus dem CentOS-Base-Repository.

Paket postfix installieren

Nachdem das Drittanbieter-Repository

erfolgreich eingebunden wurde, kann mit nachfolgendem Befehl, das neuere rpm-Paket - postfix installiert werden:

# yum install postfix
Loaded plugins: changelog, priorities
820 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package postfix.x86_64 2:3.4.5-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package      Arch        Version            Repository                    Size
================================================================================
Installing:
 postfix      x86_64      2:3.4.5-1.el7      mailserver.guru-testing      1.4 M

Transaction Summary
================================================================================
Install  1 Package

Total download size: 1.4 M
Installed size: 4.1 M
Is this ok [y/d/N]: y
Downloading packages:
postfix-3.4.5-1.el7.x86_64.rpm                             | 1.4 MB   00:09     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:postfix-3.4.5-1.el7.x86_64                                 1/1 
  Verifying  : 2:postfix-3.4.5-1.el7.x86_64                                 1/1 

Installed:
  postfix.x86_64 2:3.4.5-1.el7                                                  

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket postfix installiert wurden.

# rpm -qil postfix
Name        : postfix
Epoch       : 2
Version     : 3.4.5
Release     : 1.el7
Architecture: x86_64
Install Date: Mon 20 May 2019 10:38:44 AM CEST
Group       : System Environment/Daemons
Size        : 4347936
License     : IBM
Signature   : RSA/SHA1, Wed 03 Apr 2019 04:15:06 PM CEST, Key ID 60ecfb9e8195aea0
Source RPM  : postfix-3.4.5-1.el7.src.rpm
Build Date  : Wed 03 Apr 2019 04:14:44 PM CEST
Build Host  : vml000137.dmz.nausch.org
Relocations : (not relocatable)
Packager    : Django <django@mailserver.guru>
URL         : http://www.postfix.org
Summary     : Postfix Mail Transport Agent
Description :
Postfix is a Mail Transport Agent (MTA), supporting LDAP, SMTP AUTH (SASL),
TLS
/etc/pam.d/smtp
/etc/pam.d/smtp.postfix
/etc/postfix
/etc/postfix/access
/etc/postfix/canonical
/etc/postfix/dynamicmaps.cf
/etc/postfix/dynamicmaps.cf.d
/etc/postfix/generic
/etc/postfix/header_checks
/etc/postfix/main.cf
/etc/postfix/main.cf.proto
/etc/postfix/master.cf
/etc/postfix/master.cf.proto
/etc/postfix/postfix-files
/etc/postfix/relocated
/etc/postfix/transport
/etc/postfix/virtual
/etc/sasl2/smtpd.conf
/usr/bin/mailq
/usr/bin/mailq.postfix
/usr/bin/newaliases
/usr/bin/newaliases.postfix
/usr/bin/rmail
/usr/bin/rmail.postfix
/usr/lib/postfix/libpostfix-dns.so
/usr/lib/postfix/libpostfix-global.so
/usr/lib/postfix/libpostfix-master.so
/usr/lib/postfix/libpostfix-tls.so
/usr/lib/postfix/libpostfix-util.so
/usr/lib/sendmail
/usr/lib/sendmail.postfix
/usr/lib/systemd/system/postfix.service
/usr/libexec/postfix
/usr/libexec/postfix/aliasesdb
/usr/libexec/postfix/anvil
/usr/libexec/postfix/bounce
/usr/libexec/postfix/chroot-update
/usr/libexec/postfix/cleanup
/usr/libexec/postfix/discard
/usr/libexec/postfix/dnsblog
/usr/libexec/postfix/error
/usr/libexec/postfix/flush
/usr/libexec/postfix/lmtp
/usr/libexec/postfix/local
/usr/libexec/postfix/master
/usr/libexec/postfix/nqmgr
/usr/libexec/postfix/oqmgr
/usr/libexec/postfix/pickup
/usr/libexec/postfix/pipe
/usr/libexec/postfix/post-install
/usr/libexec/postfix/postfix-script
/usr/libexec/postfix/postfix-tls-script
/usr/libexec/postfix/postfix-wrapper
/usr/libexec/postfix/postlogd
/usr/libexec/postfix/postmulti-script
/usr/libexec/postfix/postscreen
/usr/libexec/postfix/proxymap
/usr/libexec/postfix/qmgr
/usr/libexec/postfix/qmqpd
/usr/libexec/postfix/scache
/usr/libexec/postfix/showq
/usr/libexec/postfix/smtp
/usr/libexec/postfix/smtpd
/usr/libexec/postfix/spawn
/usr/libexec/postfix/tlsmgr
/usr/libexec/postfix/tlsproxy
/usr/libexec/postfix/trivial-rewrite
/usr/libexec/postfix/verify
/usr/libexec/postfix/virtual
/usr/sbin/postalias
/usr/sbin/postcat
/usr/sbin/postconf
/usr/sbin/postdrop
/usr/sbin/postfix
/usr/sbin/postkick
/usr/sbin/postlock
/usr/sbin/postlog
/usr/sbin/postmap
/usr/sbin/postmulti
/usr/sbin/postqueue
/usr/sbin/postsuper
/usr/sbin/sendmail
/usr/sbin/sendmail.postfix
/usr/sbin/smtp-sink
/usr/sbin/smtp-source
/usr/share/doc/postfix-3.4.5
/usr/share/doc/postfix-3.4.5/COMPATIBILITY
/usr/share/doc/postfix-3.4.5/LICENSE
/usr/share/doc/postfix-3.4.5/README-Postfix-SASL-RedHat.txt
/usr/share/doc/postfix-3.4.5/README_FILES
/usr/share/doc/postfix-3.4.5/README_FILES/AAAREADME
/usr/share/doc/postfix-3.4.5/README_FILES/ADDRESS_CLASS_README
/usr/share/doc/postfix-3.4.5/README_FILES/ADDRESS_REWRITING_README
/usr/share/doc/postfix-3.4.5/README_FILES/ADDRESS_VERIFICATION_README
/usr/share/doc/postfix-3.4.5/README_FILES/BACKSCATTER_README
/usr/share/doc/postfix-3.4.5/README_FILES/BASIC_CONFIGURATION_README
/usr/share/doc/postfix-3.4.5/README_FILES/BUILTIN_FILTER_README
/usr/share/doc/postfix-3.4.5/README_FILES/COMPATIBILITY_README
/usr/share/doc/postfix-3.4.5/README_FILES/CONNECTION_CACHE_README
/usr/share/doc/postfix-3.4.5/README_FILES/CONTENT_INSPECTION_README
/usr/share/doc/postfix-3.4.5/README_FILES/DATABASE_README
/usr/share/doc/postfix-3.4.5/README_FILES/DB_README
/usr/share/doc/postfix-3.4.5/README_FILES/DEBUG_README
/usr/share/doc/postfix-3.4.5/README_FILES/DSN_README
/usr/share/doc/postfix-3.4.5/README_FILES/ETRN_README
/usr/share/doc/postfix-3.4.5/README_FILES/FILTER_README
/usr/share/doc/postfix-3.4.5/README_FILES/FORWARD_SECRECY_README
/usr/share/doc/postfix-3.4.5/README_FILES/INSTALL
/usr/share/doc/postfix-3.4.5/README_FILES/IPV6_README
/usr/share/doc/postfix-3.4.5/README_FILES/LINUX_README
/usr/share/doc/postfix-3.4.5/README_FILES/LOCAL_RECIPIENT_README
/usr/share/doc/postfix-3.4.5/README_FILES/MAILDROP_README
/usr/share/doc/postfix-3.4.5/README_FILES/MEMCACHE_README
/usr/share/doc/postfix-3.4.5/README_FILES/MILTER_README
/usr/share/doc/postfix-3.4.5/README_FILES/MULTI_INSTANCE_README
/usr/share/doc/postfix-3.4.5/README_FILES/NFS_README
/usr/share/doc/postfix-3.4.5/README_FILES/OVERVIEW
/usr/share/doc/postfix-3.4.5/README_FILES/PACKAGE_README
/usr/share/doc/postfix-3.4.5/README_FILES/POSTSCREEN_README
/usr/share/doc/postfix-3.4.5/README_FILES/QSHAPE_README
/usr/share/doc/postfix-3.4.5/README_FILES/RELEASE_NOTES
/usr/share/doc/postfix-3.4.5/README_FILES/RESTRICTION_CLASS_README
/usr/share/doc/postfix-3.4.5/README_FILES/SASL_README
/usr/share/doc/postfix-3.4.5/README_FILES/SCHEDULER_README
/usr/share/doc/postfix-3.4.5/README_FILES/SMTPD_ACCESS_README
/usr/share/doc/postfix-3.4.5/README_FILES/SMTPD_POLICY_README
/usr/share/doc/postfix-3.4.5/README_FILES/SMTPD_PROXY_README
/usr/share/doc/postfix-3.4.5/README_FILES/SOHO_README
/usr/share/doc/postfix-3.4.5/README_FILES/STANDARD_CONFIGURATION_README
/usr/share/doc/postfix-3.4.5/README_FILES/STRESS_README
/usr/share/doc/postfix-3.4.5/README_FILES/TLS_LEGACY_README
/usr/share/doc/postfix-3.4.5/README_FILES/TLS_README
/usr/share/doc/postfix-3.4.5/README_FILES/TUNING_README
/usr/share/doc/postfix-3.4.5/README_FILES/ULTRIX_README
/usr/share/doc/postfix-3.4.5/README_FILES/UUCP_README
/usr/share/doc/postfix-3.4.5/README_FILES/VERP_README
/usr/share/doc/postfix-3.4.5/README_FILES/VIRTUAL_README
/usr/share/doc/postfix-3.4.5/README_FILES/XCLIENT_README
/usr/share/doc/postfix-3.4.5/README_FILES/XFORWARD_README
/usr/share/doc/postfix-3.4.5/TLS_ACKNOWLEDGEMENTS
/usr/share/doc/postfix-3.4.5/TLS_LICENSE
/usr/share/doc/postfix-3.4.5/bounce.cf.default
/usr/share/doc/postfix-3.4.5/examples
/usr/share/doc/postfix-3.4.5/examples/chroot-setup
/usr/share/doc/postfix-3.4.5/examples/chroot-setup/LINUX2
/usr/share/doc/postfix-3.4.5/examples/qmail-local
/usr/share/doc/postfix-3.4.5/examples/qmail-local/qmail-local.txt
/usr/share/doc/postfix-3.4.5/examples/smtpd-policy
/usr/share/doc/postfix-3.4.5/examples/smtpd-policy/README.SPF
/usr/share/doc/postfix-3.4.5/examples/smtpd-policy/greylist.pl
/usr/share/doc/postfix-3.4.5/main.cf.default
/usr/share/man/man1/mailq.1.gz
/usr/share/man/man1/mailq.postfix.1.gz
/usr/share/man/man1/newaliases.1.gz
/usr/share/man/man1/newaliases.postfix.1.gz
/usr/share/man/man1/postalias.1.gz
/usr/share/man/man1/postcat.1.gz
/usr/share/man/man1/postconf.1.gz
/usr/share/man/man1/postdrop.1.gz
/usr/share/man/man1/postfix-tls.1.gz
/usr/share/man/man1/postfix.1.gz
/usr/share/man/man1/postkick.1.gz
/usr/share/man/man1/postlock.1.gz
/usr/share/man/man1/postlog.1.gz
/usr/share/man/man1/postmap.1.gz
/usr/share/man/man1/postmulti.1.gz
/usr/share/man/man1/postqueue.1.gz
/usr/share/man/man1/postsuper.1.gz
/usr/share/man/man1/sendmail.postfix.1.gz
/usr/share/man/man1/smtp-sink.1.gz
/usr/share/man/man1/smtp-source.1.gz
/usr/share/man/man5/access.5.gz
/usr/share/man/man5/aliases.5.gz
/usr/share/man/man5/aliases.postfix.5.gz
/usr/share/man/man5/body_checks.5.gz
/usr/share/man/man5/bounce.5.gz
/usr/share/man/man5/canonical.5.gz
/usr/share/man/man5/cidr_table.5.gz
/usr/share/man/man5/generic.5.gz
/usr/share/man/man5/header_checks.5.gz
/usr/share/man/man5/master.5.gz
/usr/share/man/man5/memcache_table.5.gz
/usr/share/man/man5/nisplus_table.5.gz
/usr/share/man/man5/postconf.5.gz
/usr/share/man/man5/postfix-wrapper.5.gz
/usr/share/man/man5/regexp_table.5.gz
/usr/share/man/man5/relocated.5.gz
/usr/share/man/man5/socketmap_table.5.gz
/usr/share/man/man5/tcp_table.5.gz
/usr/share/man/man5/transport.5.gz
/usr/share/man/man5/virtual.5.gz
/usr/share/man/man8/anvil.8.gz
/usr/share/man/man8/bounce.8.gz
/usr/share/man/man8/cleanup.8.gz
/usr/share/man/man8/defer.8.gz
/usr/share/man/man8/discard.8.gz
/usr/share/man/man8/dnsblog.8.gz
/usr/share/man/man8/error.8.gz
/usr/share/man/man8/flush.8.gz
/usr/share/man/man8/lmtp.8.gz
/usr/share/man/man8/local.8.gz
/usr/share/man/man8/master.8.gz
/usr/share/man/man8/oqmgr.8.gz
/usr/share/man/man8/pickup.8.gz
/usr/share/man/man8/pipe.8.gz
/usr/share/man/man8/postlogd.8.gz
/usr/share/man/man8/postscreen.8.gz
/usr/share/man/man8/proxymap.8.gz
/usr/share/man/man8/qmgr.8.gz
/usr/share/man/man8/qmqpd.8.gz
/usr/share/man/man8/scache.8.gz
/usr/share/man/man8/sendmail.8.gz
/usr/share/man/man8/showq.8.gz
/usr/share/man/man8/smtp.8.gz
/usr/share/man/man8/smtpd.8.gz
/usr/share/man/man8/spawn.8.gz
/usr/share/man/man8/tlsmgr.8.gz
/usr/share/man/man8/tlsproxy.8.gz
/usr/share/man/man8/trace.8.gz
/usr/share/man/man8/trivial-rewrite.8.gz
/usr/share/man/man8/verify.8.gz
/usr/share/man/man8/virtual.8.gz
/var/lib/misc/postfix.aliasesdb-stamp
/var/lib/postfix
/var/spool/postfix
/var/spool/postfix/active
/var/spool/postfix/bounce
/var/spool/postfix/corrupt
/var/spool/postfix/defer
/var/spool/postfix/deferred
/var/spool/postfix/flush
/var/spool/postfix/hold
/var/spool/postfix/incoming
/var/spool/postfix/maildrop
/var/spool/postfix/pid
/var/spool/postfix/private
/var/spool/postfix/public
/var/spool/postfix/saved
/var/spool/postfix/trace

Dienst/Deamon-Start einrichten

Um einen Postfix, welcher als Dienst/Deamon als Hintergrundprozess läuft, auch nach einem Neustart des Servers zur Verfügung zu haben, soll der Dienst/Daemon mit dem Server mit gestartet werden, was mit nachfolgendem Befehl realisiert werden kann:

# systemctl enable postfix.service

:!: HINWEIS - Sollte keine Ausgabe nach Ausführung des Befehls erfolgen, wurde dieser mit der Installation bereits eingerichtet.

Eine Überprüfung, ob beim Neustart des Server der postfix-Dienst/Deamon wirklich mit gestartet wird, kann mit nachfolgendem Befehl erfolgen und sollte eine Anzeige, wie ebenfalls nachfolgend dargestellt ausgeben:

# systemctl list-unit-files --type=service | grep -e postfix.service
postfix.service                        enabled

bzw.

# systemctl is-enabled postfix.service
enabled

Installation: Datenbank-Module

pcre

Für den Einsatz der Datenbankunterstützungen vom Typ pcre, welche für die Konfigurationen wie,

  • header_checks
  • mime_header_checks
  • nested_header_checks
  • body_checks

zum Einsatz kommen kann, ist die Installation des rpm-Pakets

  • postfix-pcre

erforderlich, was mit nachfolgendem Befehl durchgeführt werden kann:

# yum install postfix-pcre
Loaded plugins: changelog, priorities
820 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package postfix-pcre.x86_64 2:3.4.5-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package         Arch      Version             Repository                  Size
================================================================================
Installing:
 postfix-pcre    x86_64    2:3.4.5-1.el7       mailserver.guru-testing     31 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 31 k
Installed size: 26 k
Is this ok [y/d/N]: y
Downloading packages:
postfix-pcre-3.4.5-1.el7.x86_64.rpm                        |  31 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:postfix-pcre-3.4.5-1.el7.x86_64                            1/1 
  Verifying  : 2:postfix-pcre-3.4.5-1.el7.x86_64                            1/1 

Installed:
  postfix-pcre.x86_64 2:3.4.5-1.el7                                             

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket postfix-prce installiert wurden.

# rpm -qil postfix-pcre
Name        : postfix-pcre
Epoch       : 2
Version     : 3.4.5
Release     : 1.el7
Architecture: x86_64
Install Date: Mon 20 May 2019 01:26:46 PM CEST
Group       : Applications/System
Size        : 26325
License     : IBM
Signature   : RSA/SHA1, Wed 03 Apr 2019 04:15:07 PM CEST, Key ID 60ecfb9e8195aea0
Source RPM  : postfix-3.4.5-1.el7.src.rpm
Build Date  : Wed 03 Apr 2019 04:14:44 PM CEST
Build Host  : vml000137.dmz.nausch.org
Relocations : (not relocatable)
Packager    : Django <django@mailserver.guru>
URL         : http://www.postfix.org
Summary     : PCRE Database Support for Postfix
Description :
Install this package if you need support for the PCRE database type in postfix
/etc/postfix/dynamicmaps.cf.d/pcre.cf
/usr/lib/postfix/postfix-pcre.so
/usr/share/doc/postfix-3.4.5/README_FILES/PCRE_README
/usr/share/man/man5/pcre_table.5.gz

mysql

Für den Einsatz der Datenbankunterstützungen vom Typ mysql, welche für die optionale Verwendung von MySQL oder MariaDB in Konfigurationen wie,

  • virtual_alias_maps
  • virtual_mailbox_domains
  • virtual_mailbox_maps

zum Einsatz kommen kann, ist die Installation des rpm-Pakets

  • postfix-mysql

erforderlich, was mit nachfolgendem Befehl durchgeführt werden kann:

# yum install postfix-mysql
Loaded plugins: changelog, priorities
820 packages excluded due to repository priority protections
Resolving Dependencies
--> Running transaction check
---> Package postfix-mysql.x86_64 2:3.4.5-1.el7 will be installed
--> Finished Dependency Resolution

Changes in packages about to be updated:


Dependencies Resolved

================================================================================
 Package          Arch      Version            Repository                  Size
================================================================================
Installing:
 postfix-mysql    x86_64    2:3.4.5-1.el7      mailserver.guru-testing     33 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 33 k
Installed size: 30 k
Is this ok [y/d/N]: y
Downloading packages:
postfix-mysql-3.4.5-1.el7.x86_64.rpm                       |  33 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : 2:postfix-mysql-3.4.5-1.el7.x86_64                           1/1 
  Verifying  : 2:postfix-mysql-3.4.5-1.el7.x86_64                           1/1 

Installed:
  postfix-mysql.x86_64 2:3.4.5-1.el7                                            

Complete!

Mit nachfolgendem Befehl kann überprüft werden, welche Inhalte mit den Paket postfix-mysql installiert wurden.

# rpm -qil postfix-mysql
Name        : postfix-mysql
Epoch       : 2
Version     : 3.4.5
Release     : 1.el7
Architecture: x86_64
Install Date: Mon 20 May 2019 01:26:46 PM CEST
Group       : Applications/System
Size        : 30695
License     : IBM
Signature   : RSA/SHA1, Wed 03 Apr 2019 04:15:07 PM CEST, Key ID 60ecfb9e8195aea0
Source RPM  : postfix-3.4.5-1.el7.src.rpm
Build Date  : Wed 03 Apr 2019 04:14:44 PM CEST
Build Host  : vml000137.dmz.nausch.org
Relocations : (not relocatable)
Packager    : Django <django@mailserver.guru>
URL         : http://www.postfix.org
Summary     : MySQL Database Support for Postfix
Description :
Install this package if you need support for the MySQL database type in postfix
/etc/postfix/dynamicmaps.cf.d/mysql.cf
/usr/lib/postfix/postfix-mysql.so
/usr/share/doc/postfix-3.4.5/README_FILES/MYSQL_README
/usr/share/man/man5/mysql_table.5.gz

Konfiguration: Änderungen

Nachfolgende Einstellungen haben sich geändert und werden standardmäßig deshalb in einem „abwärts kompatiblem Modus“ betrieben.

append_dot_mydomain

:!: ACHTUNG - Der Standardwert von append_dot_mydomain wurde von yes auf no geändert!

Parameter Beschreibung
append_dot_mydomain Standard: Postfix ≥ 3.0: no, Postfix < 3.0: yes.

Fügt bei lokal übermittelten E-Mails die Zeichenfolge .$mydomain an Adressen an, die keine .domain-Informationen enthalten. Bei entfernt übermittelten E-Mails wird stattdessen die Zeichenkette .$remote_header_rewrite_domain angefügt.

Hinweis 1: Diese Funktion ist standardmäßig deaktiviert. Wenn deaktiviert, können Benutzer keine E-Mails an „user@partialdomainname“ senden, sondern müssen stattdessen vollständige Domainnamen angeben.

Hinweis 2: Mit Postfix Version 2.2 erfolgt das Umschreiben der Adresse des Nachrichtenkopfes nur dann, wenn eine der folgenden Bedingungen erfüllt ist:
Die Nachricht wird mit dem Befehl Postfix sendmail empfangen,
Die Nachricht wird von einem Netzwerk-Client empfangen, der mit $local_header_rewrite_clients übereinstimmt,
Die Nachricht wird vom Netzwerk empfangen, und der Parameter remote_header_rewrite_domain gibt einen Nicht-Leerwert an.

Um das Verhalten vor Postfix Version 2.2 zu erhalten, muss local_header_rewrite_clients = static:all angegeben werden.

Siehe auch: http://www.postfix.org/postconf.5.html#append_dot_mydomain

Dies kann zu einer unerwarteten Nichtzustellung von E-Mails führen, nachdem Postfix von einer älteren Version aktualisiert wurde. Das abwärts „compatibility_level“ soll solche Überraschungen verhindern.

Solange der Parameter append_dot_mydomain auf seinem impliziten Standardwert belassen wird und die Einstellung „compatibility_levelkleiner als 1 ist, kann Postfix eine der folgenden Meldungen protokollieren:

  • Meldungen über fehlende „localhost“ in mydestination oder einer anderen Adressklasse:
postfix/trivial-rewrite[14777]: using backwards-compatible
    default setting append_dot_mydomain=yes to rewrite
    "localhost" to "localhost.example.com"; please add
    "localhost" to mydestination or other address class

Wenn Postfix die obige Meldung protokolliert, ist eine mögliche Lösung „localhost“ zu mydestination (oder virtual_alias_domains, virtual_mailbox_domains oder relay_domains) hinzuzufügen und den Befehl

# systemctl reload postfix.service

auszuführen.

  • Nachrichten über unvollständige Domains in E-Mail-Adressen:
postfix/trivial-rewrite[25835]: using backwards-compatible
    default setting append_dot_mydomain=yes to rewrite "foo" to
    "foo.example.com"

Wenn Postfix die obige Meldung für andere Domains als „localhost“ protokolliert und der Absender nicht so geändert werden kann, dass er den vollständige Domainnamen in E-Mail-Adressen verwendet, dann sollte die Abwärtskompatibilät in der Konfigurationsdatei

  • /etc/postfic/main.cf

auf

  • append_dot_mydomain = yes

mit nachfolgendem Befehl, dauerhaft eingestellt werden.

# postconf append_dot_mydomain=yes

oder

# Enable appending .$mydomain to e-mail adresses without domain(.tld) part(s).
append_dot_mydomain = yes

Anschließend muss die geänderte Konfiguration mit nachfolgendem Befehl neu eingelesen werden:

# systemctl reload postfix.service

mynetworks_style

:!: ACHTUNG - Der Standardwert von mynetworks_style wurde von subnet auf host geändert!

Parameter Beschreibung
mynetworks_style Standard: Postfix ≥ 3.0: host, Postfix < 3.0: subnet

Das Verfahren zum Erzeugen des Standardwertes für den Parameter mynetworks. Dies ist die Liste der vertrauenswürdigen Netzwerke für die Zugangskontrolle von Relais usw.

mynetworks_style = host, wenn Postfix nur dem lokalen Rechner „vertrauen“ soll.

mynetworks_style = subnet, wenn Postfix entfernten SMTP-Clients in denselben IP-Subnetzwerken wie dem lokalen Rechner „vertrauen“ soll. Unter Linux funktioniert dies nur mit Schnittstellen, die mit dem Befehl ifconfig angegeben wurden.

mynetworks_style = class, wenn Postfix entfernten SMTP-Clients in denselben IP-Klasse-A/B/C-Netzwerken wie dem lokalen Computer „vertrauen“ soll. Achtung - Dies kann dazu führen, dass Postfix dem Netzwerk des gesamten Providers „vertraut“. Stattdessen sollte eine explizite mynetworks-Liste angelegt werden, wie im Konfigurationsparameter mynetworks beschrieben.

Siehe auch: http://www.postfix.org/postconf.5.html#mynetworks_style

Mit diesem Parameter wird die Funktion permit_mynetworks implementiert. Die Änderung könnte zu unerwarteten access denied Fehlern führen, nachdem Postfix von einer älteren Version aktualisiert wurde. Das abwärts „compatibility_level“ soll solche Überraschungen verhindern.

Solange die Parameter mynetworks und mynetworks_style auf ihren impliziten Standardwerten belassen werden und die Einstellung „compatibility_levelkleiner als 2 ist, kann der Postfix SMTP-Server eine der folgenden Meldungen protokollieren:

    postfix/smtpd[17375]: using backwards-compatible default setting
        mynetworks_style=subnet to permit request from client
        "foo.example.com[10.1.1.1]"
    postfix/postscreen[24982]: using backwards-compatible default
        setting mynetworks_style=subnet to permit request from client
        "10.1.1.1"

Soll die Client-Anfrage nicht abgelehnt werden, dann sollte die Abwärtskompatibilät in der Konfigurationsdatei

  • /etc/postfic/main.cf

auf

  • mynetworks_style = subnet

mit nachfolgendem Befehl, dauerhaft eingestellt werden.

# postconf mynetworks_style=subnet

oder

# Set to "trust" remote SMTP clients in the same IP subnetworks as the local machine.
mynetworks_style = subnet

Anschließend muss die geänderte Konfiguration mit nachfolgendem Befehl neu eingelesen werden:

# systemctl reload postfix.service

relay_domains

:!: ACHTUNG - Der Standardwert von relay_domains wurde von $mydestination auf einen leeren Wert geändert!

Parameter Beschreibung
relay_domains Standard: Postfix ≥ 3.0: leer, Postfix < 3.0: $mydestination

Definiert an welche Zieldomänen (und Subdomänen davon) dieses System E-Mails weiterleiten soll. Einzelheiten zur Verwendung des Wertes relay_domains sind in der Beschreibung der SMTP-Empfängerbeschränkungen permit_auth_destination und reject_unauth_destination zu finden.

Domänen, die mit $relay_domains übereinstimmen, werden mit dem $relay_transport Mail Delivery Transport ausgeliefert. Der SMTP-Server validiert Empfängeradressen mit $relay_recipient_maps und lehnt nicht vorhandene Empfänger ab. Siehe auch die Adressklasse der Relaiy-Domänen in http://www.postfix.org/ADDRESS_CLASS_README.html.

Hinweis - Postfix leitet E-Mails nicht automatisch an Domänen weiter, die dieses System als primären oder Backup-MX-Host angeben. Siehe auch permit_mx_backup Einschränkung in der postconf-Manualseite - man postfconf.

Es können auch eine Liste von Host- oder Domänennamen, im /file/name-Mustern oder type:table-Suchtabellen, getrennt durch Kommas und/oder Leerzeichen angegeben werden. Lange Zeilen können fortgesetzt werden, indem die nächste Zeile mit Leerzeichen beginnen. Ein /file/name-Muster wird durch seinen Inhalt ersetzt; eine type:table-Suchtabelle wird verglichen, wenn eine (übergeordnete) Domäne als Nachschlagewerk erscheint. Es kann auch eine negation mit !pattern angegeben werden, um eine Domain aus der Liste auszuschließen. Das Definition !/file/name wird nur in Postfix ab Version 2.4 und höher unterstützt.

Der Musterabgleich von Domänennamen wird durch das Vorhandensein oder Fehlen von relay_domains im Parameterwert parent_domain_matches_subdomains gesteuert.

Siehe auch: http://www.postfix.org/postconf.5.html#relay_domains

Dies kann zu unerwarteten Fehlern Relay access denied oder ETRN-Fehlern führen, nachdem Postfix von einer älteren Version aktualisiert wurde. Das abwärts „compatibility_level“ soll solche Überraschungen verhindern.

Solange der Parameter relay_domains auf seinem impliziten Standardwert belassen wird und die Einstellung „compatibility_levelkleiner als 2 ist, kann Postfix eine der folgenden Meldungen protokollieren.

  • Meldungen über das Akzeptieren von E-Mails für eine entfernte Domäne:
    postfix/smtpd[19052]: using backwards-compatible default setting
        relay_domains=$mydestination to accept mail for domain
        "foo.example.com"

    postfix/smtpd[19052]: using backwards-compatible default setting
        relay_domains=$mydestination to accept mail for address
        "user@foo.example.com"
  • Meldungen über die Bereitstellung des ETRN-Dienstes für eine entfernte Domäne:
    postfix/smtpd[19138]: using backwards-compatible default setting
        relay_domains=$mydestination to flush mail for domain
        "bar.example.com"

    postfix/smtp[13945]: using backwards-compatible default setting
        relay_domains=$mydestination to update fast-flush logfile for
        domain "bar.example.com"

Wenn Postfix weiterhin E-Mails für diese Domäne annehmen oder weiterhin ETRN-Dienst für diese Domäne bereitstellen soll, dann sollte die Abwärtskompatibilät in der Konfigurationsdatei

  • /etc/postfic/main.cf

auf

  • relay_domains = $mydestination

mit nachfolgendem Befehl, dauerhaft eingestellt werden.

# postconf 'relay_domains=$mydestination'

oder

# The relay_domains parameter restricts what destinations this system will relay mail to.
relay_domains = $mydestination

Anschließend muss die geänderte Konfiguration mit nachfolgendem Befehl neu eingelesen werden:

# systemctl reload postfix.service

:!: HINWEIS - Hochkomma sind wie oben angegeben erforderlich!

/etc/postfix/relay_domains

Anstelle von $mydestination ist es besser, eine explizite Liste von Domainnamen anzugeben, auch wenn diese leer ist oder sein sollte, wie nachfolgendes Beispiel zeigt:

# Tachtler
relay_domains = btree:/etc/postfix/relay_domains

:!: WICHTIG - Zum Abschluss muss die Konfigurationsdatei in ein Datenbank-Format, z.B. das Format btree mithilfe des Postfix eigenen Befehls postmap umgewandelt werden, auch wenn diese leer ist oder sein sollte, wie nachfolgender Beispiel und Befehl zeigt:

# postmap btree:/etc/postfix/relay_domains

Anschließend sollte eine neue Datei mit dem Namen /etc/postfix/relay_domains.db entstanden sein, was mit nachfolgendem Befehl überprüft werden:

# ls -l /etc/postfix/relay_domains*
-rw-r--r-- 1 root root    0 Sep 28  2015 /etc/postfix/relay_domains
-rw-r--r-- 1 root root 8192 Sep 28  2015 /etc/postfix/relay_domains.db

smtputf8_enable

:!: ACHTUNG - Der Standardwert von smtputf8_enable wurde von no auf yes geändert!

:!: HINWEIS - Diese Funktion ist erst ab Postfix Version 3.0 verfügbar.

Parameter Beschreibung
smtputf8_enable Standard: ja

Aktivieren Sie die vorläufige SMTPUTF8-Unterstützung für die in RFC 6531…6533 beschriebenen Protokolle. Dies setzt voraus, dass Postfix zur Unterstützung dieser Protokolle entwickelt wurde.

Siehe auch: http://www.postfix.org/postconf.5.html#smtputf8_enable

Mit der neuen Einstellung yes lehnt der Postfix SMTP-Server Nicht-ASCII-Adressen von Clients ab, die keine SMTPUTF8-Unterstützung anfordern, nachdem Postfix von einer älteren Version aktualisiert wurde. Das abwärts „compatibility_level“ soll solche Überraschungen verhindern.

Solange der Parameter smtputf8_enable auf seinem impliziten Standardwert belassen wird und die Einstellung „compatibility_levelkleiner als 1 ist, protokolliert Postfix jedes Mal eine Warnung, wenn ein SMTP-Befehl einen lokalen Teil der Nicht-ASCII-Adresse verwendet, ohne die Unterstützung von SMTPUTF8 anzufordern:

    postfix/smtpd[27560]: using backwards-compatible default setting
        smtputf8_enable=no to accept non-ASCII sender address
        "??@example.org" from localhost[127.0.0.1]

    postfix/smtpd[27560]: using backwards-compatible default setting
        smtputf8_enable=no to accept non-ASCII recipient address
        "??@example.com" from localhost[127.0.0.1]

Wenn die Adresse nicht abgelehnt werden soll und der Client nicht für die Verwendung von SMTPUTF8 aktualisiert werden kann, dann sollte die Abwärtskompatibilät in der Konfigurationsdatei

  • /etc/postfic/main.cf

auf

  • smtputf8_enable = no

mit nachfolgendem Befehl, dauerhaft eingestellt werden.

# postconf smtputf8_enable=no

oder

# Do NOT reject non-ASCII addresses from clients that don't request SMTPUTF8 support.
smtputf8_enable = no

Anschließend muss die geänderte Konfiguration mit nachfolgendem Befehl neu eingelesen werden:

# systemctl reload postfix.service

chroot

:!: ACHTUNG - Der Standardwert in der master.cf - Spalte: chroot wurde von y„ (ja) auf n (nein) geändert!

:!: HINWEIS - Die Spalte: chroot war unter CentOS-7 bereits komplett auf n (nein) gesetzt!

Der neue Standard vermeidet das Kopieren von Systemdateien unter dem Postfix-Warteschlangenverzeichnis. Server mit strengen Sicherheitsanforderungen können jedoch die Chroot-Funktion nach dem Update von Postfix von einer älteren Version aktiviert lassen. Das abwärts “compatibility_level„ ist so konzipiert, dass gewählt werden kann, ob er das alte Verhalten beibehalten werden soll.

Solange die Spalte: chroot in der master.cf auf seinem impliziten Standardwert belassen wird und die Einstellung “compatibility_levelkleiner als 1 ist, kann Postfix die folgende Meldung protokollieren, während dieser die Konfigurationsdatei master.cf einliest:

    postfix/master[27664]: /etc/postfix/master.cf: line 72: using
        backwards-compatible default setting chroot=y

Wenn der jeweilige Dienst chroot bleiben soll, dann sollte die abwärts kompatible Einstellung chroot = y in der Konfigurationsdatei master.cf dauerhaft gesetzte werden. Nachfolgendes Beispiel zeigt, wie die chroot-Einstellung für den Dienst smtp inet zu aktivieren wären:

Für die Konfigurationsdatei

  • /etc/postfic/master.cf

kann mit nachfolgendem Befehl, dies dauerhaft eingestellt werden.

# postconf -F smtp/inet/chroot=y

oder

smtp      inet  n       -       y       -       -       smtpd

Anschließend muss die geänderte Konfiguration mit nachfolgendem Befehl neu eingelesen werden:

# systemctl reload postfix.service

backwards-compatibility safety net

:!: HINWEIS - Diese Funktion ist erst ab Postfix Version 3.0 verfügbar.

Parameter Beschreibung
compatibility_level Standard: 0

Ein Sicherheitsnetz, das Postfix nach einem Upgrade auf eine neuere Postfix-Version mit abwärts kompatiblen Standardeinstellungen laufen lässt.

Siehe auch: http://www.postfix.org/postconf.5.html#compatibility_level

Die Abwärtskompatibilität wird durch Aktualisieren der Einstellung compatibility_level in der Konfigurationsdatei

  • /etc/postfic/main.cf

auf

  • compatibility_level=N

mit nachfolgendem Befehl, dauerhaft eingestellt.

# postconf compatibility_level=N

oder

# The level below is what should be used with new (not upgrade) installs.
compatibility_level = N

Anschließend muss die geänderte Konfiguration mit nachfolgendem Befehl neu eingelesen werden:

# systemctl reload postfix.service

Für N wird die Nummer angegeben, die in der postfix-Warnmeldung ausgegeben wurde:

    warning: To disable backwards compatibility use "postconf compatibility_level=N" and "postfix reload"

:!: HINWEIS - Server, die sich nicht um Abwärtskompatibilität kümmern (wollen), können mitcompatibility_level = 9999 -
auf eigenes Risiko - konfiguriert werden!.

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_-_migration_von_version_2.x_auf_3.x.txt · Zuletzt geändert: 2019/05/21 14:09 von klaus