Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:postfix_centos_7_-_multiple_instanzen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
tachtler:postfix_centos_7_-_multiple_instanzen [2019/05/18 06:32]
klaus
tachtler:postfix_centos_7_-_multiple_instanzen [2019/05/18 23:17] (aktuell)
klaus [Konfiguration: Grundlagenerweiterung]
Zeile 1: Zeile 1:
 ====== Postfix CentOS 7 - Multiple Instanzen ====== ====== Postfix CentOS 7 - Multiple Instanzen ======
  
-[[http://​www.postfix.org/​|{{:​tachtler:​index:​postfix-48x48.png }}]] [[http://​www.postfix.org/​|Postfix]] und dessen Fähigkeit zur Verwaltung mehrerer Postfix-Instanzen auf einem einzigen Host mit dem ''​postmulti''​-Instanzmanager soll in nachfolgender Dokumentation beschrieben werden. ​+[[http://​www.postfix.org/​|{{:​tachtler:​index:​postfix-48x48.png }}]] [[http://​www.postfix.org/​|Postfix]] und dessen Fähigkeit zur Verwaltung mehrerer Postfix-Instanzen auf einem einzigen Host mit dem ''​postmulti''​-Instanzmanager soll in nachfolgender Dokumentation beschrieben werden. Weitere Informationen zum ''​postfix-wrapper''​ für Hintergrundinformationen über das Instanzmanagement-Framework und über die Bereitstellung eines benutzerdefinierten Instanzmanagers folgen ebenfalls in der nachfolgenden Dokumentation.
  
 :!: **HINWEIS** - **Multi-Instanz-Unterstützung ist ab Postfix Version 2.6 verfügbar!** :!: **HINWEIS** - **Multi-Instanz-Unterstützung ist ab Postfix Version 2.6 verfügbar!**
 +
 +Eine einzelne [[http://​www.postfix.org/​|Postfix]]-Konfiguration kann viele verschiedene Dienste bereitstellen,​ aber es kann ein komplexes Zusammenspiel von Einstellungen erforderlich sein, z.B. mit ''​master.cf''​-Optionen,​ die die ''​main.cf''​-Einstellungen überschreiben. Eine Ansicht, dass mehrere [[http://​www.postfix.org/​|Postfix]]-Instanzen ein einfacherer Weg zur Konfiguration eines multifunktionalen [[http://​www.postfix.org/​|Postfix]]-Systems sein können, soll nachfolgend beschrieben werden.
 +
 +:!: **WICHTIG** - **Bei mehreren [[http://​www.postfix.org/​|Postfix]]-Instanzen hat jede Instanz ihre eigenen Verzeichnisse für Konfigurations-,​ Warteschlangen- und Datendateien,​ aber sie teilt alle [[http://​www.postfix.org/​|Postfix]]-Programm- und Dokumentationsdateien mit anderen Instanzen.** ​
 +
 +Da es nicht die einzige richtige Möglichkeit gibt, ein System zu konfigurieren,​ wäre eine möglicher Ansatz, das zu wählen, was eine mögliche Konfiguration am bequemsten macht. Wenn verschiedene [[http://​www.postfix.org/​|Postfix]]-Dienste keine inkompatiblen ''​main.cf''​ oder ''​master.cf''​-Einstellungen beinhalten und ohne komplexe Tricks miteinander kombiniert werden können, dann kann eine einzige monolithische Konfiguration der einfachste Ansatz sein.
 +
 +Der Zweck der **Multi-Instanz-Unterstützung** in [[http://​www.postfix.org/​|Postfix]] ist nicht, zwingend, mehrere [[http://​www.postfix.org/​|Postfix]]-Instanzen zu erstellen, sondern Wahlmöglichkeiten anzubieten. Mehrere Instanzen ergeben die Freiheit, jede [[http://​www.postfix.org/​|Postfix]]-Instanz auf eine einzelne Aufgabe abzustimmen,​ die diese dann gut kann, und Instanzen zu kompletten Systemen zu kombinieren.
 +
 +Mit der Einführung des Dienstprogramms **''​postmulti''​** und der Reduzierung des Platzbedarfs einer sekundären [[http://​www.postfix.org/​|Postfix]]-Instanz auf nur eine ''​main.cf''​- und ''​master.cf''​-Datei (**andere Dateien befinden sich nun an gemeinsamen Standorten**) hoffen die Entwickler, dass die Verwendung mehrerer Instanzen einfacher ist als dies zuvor war. 
  
 [[http://​www.postfix.org/​|Postfix]] wird von [[https://​en.wikipedia.org/​wiki/​Wietse_Venema|Wietse Venema]] entwickelt. [[http://​www.postfix.org/​|Postfix]] wird von [[https://​en.wikipedia.org/​wiki/​Wietse_Venema|Wietse Venema]] entwickelt.
Zeile 18: Zeile 28:
 Password: Password:
 </​code>​ </​code>​
 +
 +===== Vorbereitungen =====
 +
 +:!: **HINWEIS** - **Als __Ausgangssituation__ wird die __Standard__-Konfiguration von [[http://​www.postfix.org/​|Postfix]] verwendet, so wie diese unter [[https://​www.centos.org/​|CentOS]]-7 ausgeliefert wird, damit nicht durch weitere Konfigurationen von der wesentliche [[http://​www.postfix.org/​|Postfix]]-Instanzkonfiguration abgelegt wird!**
 +
 +Nachfolgende die Verzeichnisstruktur der **Standard**-[[http://​www.postfix.org/​|Postfix]]-Konfiguration **__VOR__** dem Einsatz von Muliplen-[[http://​www.postfix.org/​|Postfix]]-Instanzen:​
 +<​code>​
 +# ls -l /​etc/​postfix/​
 +total 148
 +-rw-r--r-- 1 root root 21006 Oct 22  2018 access
 +-rw-r--r-- 1 root root 11683 Oct 22  2018 canonical
 +-rw-r--r-- 1 root root  9904 Oct 22  2018 generic
 +-rw-r--r-- 1 root root 21548 Oct 22  2018 header_checks
 +-rw-r--r-- 1 root root 27221 May 18 06:23 main.cf
 +-rw-r--r-- 1 root root  6258 May 18 06:22 master.cf
 +-rw-r--r-- 1 root root  6816 Oct 22  2018 relocated
 +-rw-r--r-- 1 root root 12549 Oct 22  2018 transport
 +-rw-r--r-- 1 root root 12510 Oct 22  2018 virtual
 +</​code>​
 +
 +Nachfolgende die **Standard**-[[http://​www.postfix.org/​|Postfix]]-Konfiguration **__VOR__** dem Einsatz von Muliplen-[[http://​www.postfix.org/​|Postfix]]-Instanzen:​
 +<​code>​
 +# postconf -n 
 +postconf: warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by
 +protocol
 +alias_database = hash:/​etc/​aliases
 +alias_maps = hash:/​etc/​aliases
 +command_directory = /usr/sbin
 +config_directory = /​etc/​postfix
 +daemon_directory = /​usr/​libexec/​postfix
 +data_directory = /​var/​lib/​postfix
 +debug_peer_level = 2
 +debugger_command = PATH=/​bin:/​usr/​bin:/​usr/​local/​bin:/​usr/​X11R6/​bin ddd $daemon_directory/​$process_name
 +$process_id & sleep 5
 +html_directory = no
 +inet_interfaces = localhost
 +inet_protocols = all
 +mail_owner = postfix
 +mailq_path = /​usr/​bin/​mailq.postfix
 +manpage_directory = /​usr/​share/​man
 +mydestination = $myhostname,​ localhost.$mydomain,​ localhost
 +newaliases_path = /​usr/​bin/​newaliases.postfix
 +queue_directory = /​var/​spool/​postfix
 +readme_directory = /​usr/​share/​doc/​postfix-2.11.11/​README_FILES
 +sample_directory = /​usr/​share/​doc/​postfix-2.11.11/​samples
 +sendmail_path = /​usr/​sbin/​sendmail.postfix
 +setgid_group = postdrop
 +unknown_local_recipient_reject_code = 550
 +</​code>​
 +
 +:!: **HINWEIS** - **IPv6 ist auf diesem Server __deaktiviert__,​ daher die Fehlermeldung in der ersten Zeile!**
 +
 +:!: **HINWEIS** - Um die oben gezeigte Fehlermeldung auf einem Server **__ohne__ IPv6-Unterstützung** -  **vorab** schnell zu beseitigen, kann nachfolgender Befehl ausgeführt werden:
 +<​code>​
 +# postconf -e inet_protocols=ipv4
 +</​code>​
 +
 +Nachfolgende die Bestätigung das [[http://​www.postfix.org/​|Postfix]] gestartet ist und auf der IP-Adresse **''​localhost (127.0.0.1)''​** und auf Port **''​25''​** lauscht, was bei einer **Standard**-[[http://​www.postfix.org/​|Postfix]]-Konfiguration **__VOR__** dem Einsatz von Muliplen-[[http://​www.postfix.org/​|Postfix]]-Instanzen der Fall ist:
 +
 +(:-D p.s. Da manche lieber **//​Poni//​**'​s als **//​tulpen//​** mögen, hier beide Befehle zur Überprüfung)
 +<​code>​
 +# lsof -Poni | grep master
 +master ​   6150  root   ​13u ​ IPv4 138555 ​   0t0  TCP 127.0.0.1:​25 (LISTEN)
 +</​code>​
 +<​code>​
 +# netstat -tulpen | grep master
 +tcp        0      0 127.0.0.1:​25 ​          ​0.0.0.0:​* ​             LISTEN ​     0       ​138555 ​    ​6150/​master
 +</​code>​
 +
 +===== Konfiguration =====
 +
 +Nachfolgendes Beispiel, soll **__zwei__ Instanzen** von [[http://​www.postfix.org/​|Postfix]] mit Hilfe des Konfigurationsprogramms **''​postmulti''​** von [[http://​www.postfix.org/​|Postfix]] erstellt werden, wobei die Instanzen nachfolgende Aufgaben haben sollen:
 +
 +  - [[http://​www.postfix.org/​|Postfix]]-Instanz **__nur__ für die E-Mail-Verarbeitung auf ''​localhost''​**.
 +  - [[http://​www.postfix.org/​|Postfix]]-Instanz **__nur__ für die E-Mail-Verarbeitung von ''​192.168.0.20''​**.
 +
 +==== Multi-Instanz-Unterstützung aktivieren ====
 +
 +Zur Multi-Instanz-Unterstützung muss **__nur einmal__, beim Hinzufügen der ersten sekundären Instanz**, die Multi-Instanz-Unterstützung in der Standardinstanz aktiviert werden, was durch nachfolgenden Befehl durchgeführt wird:
 +<​code>​
 +# postmulti -e init
 +</​code>​
 +
 +:!: **HINWEIS** - **Es erfolgt __keine__ Ausgabe bei __erfolgreicher__ Ausführung des Befehls!**
 +
 +Nachfolgende Ergänzungen wurden **durch Ausführung des oben gezeigten Befehls** an der Konfigurationsdatei
 +  * ''/​etc/​postfix/​main.cf''​
 +hinzugefügt:​
 +
 +(**Nur relevanter Ausschnitt**)
 +<code bash>
 +multi_instance_wrapper = ${command_directory}/​postmulti -p --
 +multi_instance_enable = yes
 +</​code>​
 +
 +^ Parameter ^ Erklärung ^
 +| **''​multi_instance_wrapper = ${command_directory}/​postmulti -p --''​** | Der Pfadname eines Multi-Instanz-Managerbefehls,​ den der Befehl ''​postfix''​ aufruft, wenn der Parameterwert ''​multi_instance_directories''​ **__nicht__ leer ist**. Auf den Pfadnamen können erste Befehlsargumente folgen, die durch Leerzeichen getrennt sind; Shell-Metazeichen wie Anführungszeichen werden in diesem Zusammenhang nicht unterstützt. \\ \\ Der Befehl ''​postfix''​ ruft den Managerbefehl mit den nicht optionalen Befehlsargumenten ''​postfix''​ auf der Manager-Befehlszeile und mit allen Installationskonfigurationsparametern,​ die in die Manager-Befehlsprozessumgebung exportiert werden auf. Der Befehl ''​manager''​ wiederum ruft den Befehl ''​postfix''​ für einzelne [[http://​www.postfix.org/​|Postfix]]-Instanzen als \\ ''​postfix -c config_directory command''​ auf. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_wrapper]] |
 +| **''​multi_instance_enable = yes''​** | Erlaubt, dass diese [[http://​www.postfix.org/​|Postfix]]-Instanz von einem Multi-Instanz-Manager gestartet, gestoppt usw. wird. Standardmäßig werden neue Instanzen in einem sicheren Zustand erstellt, der verhindert, dass sie versehentlich gestartet werden. Dieser Parameter ist für den Multi-Instanz-Manager reserviert. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_enable]] |
 +
 +:!: **HINWEIS** - Da für den Späteren Einsatz der  _nur auf ''​localhost''​ gebunden werden soll und auf Port 25 lauschen soll, wäre nachfolgende Konfiguration korrekterweise in der Konfigurationsdatei ​
 +  * ''/​etc/​postfix/​master.cf''​
 +der [[http://​www.postfix.org/​|Postfix]]-Basis-Instanz ''​-''​ noch abgeändert werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<​code>​
 +# postmulti -i - -x postconf -M smtp/​inet="​127.0.0.1:​smtp inet n -       ​n ​      ​- ​      ​- ​      ​smtpd"​
 +</​code>​
 +
 +==== Instanz hinzufügen ====
 +
 +Nachfolgender Befehl erstellt eine weitere Instanz, mit
 +  * dem **Namen**: ''​postfix-eth0''​
 +  * in der **Gruppe**: ''​mta''​ (dies ist **__nur__** optional)
 +<​code>​
 +# postmulti -I postfix-eth0 -G mta -e create
 +postfix: warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +</​code>​
 +
 +:!: **HINWEIS** - **IPv6 ist auf diesem Server __deaktiviert__,​ daher die Fehlermeldungen (für jede im Hintergrund durchgeführte Änderung bzw. Befehlsausführung,​ jeweils eine Zeile)!**
 +
 +:!: **HINWEIS** - Um die oben gezeigten Fehlermeldungen auf einem Server **__ohne__ IPv6-Unterstützung** -  **vorab** schnell zu beseitigen, kann nachfolgender Befehl ausgeführt werden:
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -e "​inet_protocols = ipv4"
 +/​usr/​sbin/​postconf:​ warning: inet_protocols:​ disabling IPv6 name/​address support: Address family not supported by protocol
 +</​code>​
 +
 +:!: **HINWEIS** - **IPv6 ist auf diesem Server __deaktiviert__,​ daher ein letztes mal die Fehlermeldung!**
 +
 +Nachfolgende Ergänzungen wurden **durch Ausführung des oben gezeigten Befehls** an der Konfigurationsdatei
 +  * ''/​etc/​postfix-eth0/​main.cf''​
 +hinzugefügt:​
 +
 +(**Nur relevanter Ausschnitt**)
 +<code bash>
 +master_service_disable = inet
 +authorized_submit_users =
 +multi_instance_group = mta
 +multi_instance_name = postfix-eth0
 +</​code>​
 +
 +^ Parameter ​                                 ^ Erklärung ^
 +| **''​master_service_disable = inet''​** ​     | **Selektives __Deaktivieren__** von ''​master''​-Listener-Ports nach Diensttyp oder nach Dienstname und -typ. Geben Sie eine Liste von Diensttypen (''​inet'',​ ''​unix'',​ ''​fifo''​ oder ''​pass''​) oder ''​name/​type''​ Paare an, wobei ''​name''​ das erste Feld eines ''​master.cf''​-Eintrags und ''​type''​ ein Diensttyp ist. Wie bei anderen [[http://​www.postfix.org/​|Postfix]]-Matchlists stoppt die Suche beim ersten Treffer. Geben Sie ''​!pattern''​ an, um einen Dienst aus der Liste auszuschließen. Standardmäßig sind alle master(8)-Listener-Ports aktiviert. \\ \\ :!: **Hinweis** -  **Diese Funktion unterstützt weder ''/​file/​name''​ oder ''​type:​table''​ Muster noch Wildcards wie ''​\*''​ oder ''​all''​. Das ist beabsichtigt.** \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​master_service_disable]]|
 +| **''​authorized_submit_users = ''​** ​        | Liste der Benutzer, die berechtigt sind, E-Mails mit dem Befehl ''​sendmail''​ (und mit dem privilegierten Befehl ''​postdrop''​ Hilfsprogramm) zu senden. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​authorized_submit_users]] |
 +| **''​multi_instance_group = mta''​** ​        | Der optionale Gruppenname der Instanz dieser [[http://​www.postfix.org/​|Postfix]]-Instanz. Eine Gruppe identifiziert verwandte [[http://​www.postfix.org/​|Postfix]]-Instanzen,​ die der Multi-Instanz-Manager starten, stoppen usw. kann, als Einheit. Dieser Parameter ist für den Multi-Instanz-Manager reserviert. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_group]] |
 +| **''​multi_instance_name = postfix-eth0''​** | Der optionale Instanzname dieser [[http://​www.postfix.org/​|Postfix]]-Instanz. **Dieser Name wird auch zum Standardwert für den Parameter ''​syslog_name''​**. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_name]] |
 +
 +Das Konfigurationsverzeichnis der so **neu erstellten Instanz** ist in diesem Fall wie bei der Erstellung angegeben: ​
 +  * **''/​etc/​postfix-eth0''​**
 +genauer gesagt, das Unterverzeichnis **''​postfix-eth0''​** des übergeordneten Verzeichnisses des Konfigurationsverzeichnisses der Standard-Instanz. ​
 +
 +:!: **HINWEIS** - **Die neue Instanz wird standardmäßig in einem __deaktivierten Zustand__ erstellt!** ​
 +
 +Nachfolgende die Verzeichnisstruktur der **Instanz ''​postfix-eth0''​**-[[http://​www.postfix.org/​|Postfix]]-Konfiguration:​
 +<​code>​
 +# ls -l /​etc/​postfix-eth0/​
 +total 36
 +-rw-r--r-- 1 root root 27343 May 18 07:48 main.cf
 +-rw-r--r-- 1 root root  6220 Oct 22  2018 master.cf
 +</​code>​
 +
 +Nachfolgende die **Instanz ''​postfix-eth0''​**-[[http://​www.postfix.org/​|Postfix]]-Konfiguration:​
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -n 
 +alias_database = hash:/​etc/​aliases
 +alias_maps = hash:/​etc/​aliases
 +authorized_submit_users =
 +command_directory = /usr/sbin
 +config_directory = /​etc/​postfix-eth0
 +daemon_directory = /​usr/​libexec/​postfix
 +data_directory = /​var/​lib/​postfix-eth0
 +debug_peer_level = 2
 +debugger_command = PATH=/​bin:/​usr/​bin:/​usr/​local/​bin:/​usr/​X11R6/​bin ddd $daemon_directory/​$process_name
 +$process_id & sleep 5
 +html_directory = no
 +inet_interfaces = localhost
 +inet_protocols = ipv4
 +mail_owner = postfix
 +mailq_path = /​usr/​bin/​mailq.postfix
 +manpage_directory = /​usr/​share/​man
 +master_service_disable = inet
 +multi_instance_group = mta
 +multi_instance_name = postfix-eth0
 +mydestination = $myhostname,​ localhost.$mydomain,​ localhost
 +newaliases_path = /​usr/​bin/​newaliases.postfix
 +queue_directory = /​var/​spool/​postfix-eth0
 +readme_directory = /​usr/​share/​doc/​postfix-2.11.11/​README_FILES
 +sample_directory = /​usr/​share/​doc/​postfix-2.11.11/​samples
 +sendmail_path = /​usr/​sbin/​sendmail.postfix
 +setgid_group = postdrop
 +unknown_local_recipient_reject_code = 550
 +</​code>​
 +
 +Nachfolgende Ergänzungen wurden **durch Ausführung des oben gezeigten Befehls** an der Konfigurationsdatei
 +  * ''/​etc/​postfix/​main.cf''​
 +hinzugefügt:​
 +
 +(**Nur relevanter Ausschnitt**)
 +<code bash>
 +multi_instance_wrapper = ${command_directory}/​postmulti -p --
 +multi_instance_enable = yes
 +multi_instance_directories = /​etc/​postfix-eth0
 +</​code>​
 +
 +^ Parameter ^ Erklärung ^
 +| **''​multi_instance_wrapper = ${command_directory}/​postmulti -p --''​** | Der Pfadname eines Multi-Instanz-Managerbefehls,​ den der Befehl ''​postfix''​ aufruft, wenn der Parameterwert ''​multi_instance_directories''​ **__nicht__ leer ist**. Auf den Pfadnamen können erste Befehlsargumente folgen, die durch Leerzeichen getrennt sind; Shell-Metazeichen wie Anführungszeichen werden in diesem Zusammenhang nicht unterstützt. \\ \\ Der Befehl ''​postfix''​ ruft den Managerbefehl mit den nicht optionalen Befehlsargumenten ''​postfix''​ auf der Manager-Befehlszeile und mit allen Installationskonfigurationsparametern,​ die in die Manager-Befehlsprozessumgebung exportiert werden auf. Der Befehl ''​manager''​ wiederum ruft den Befehl ''​postfix''​ für einzelne [[http://​www.postfix.org/​|Postfix]]-Instanzen als \\ ''​postfix -c config_directory command''​ auf. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_wrapper]] |
 +| **''​multi_instance_enable = yes''​** | Erlaubt, dass diese [[http://​www.postfix.org/​|Postfix]]-Instanz von einem Multi-Instanz-Manager gestartet, gestoppt usw. wird. Standardmäßig werden neue Instanzen in einem sicheren Zustand erstellt, der verhindert, dass sie versehentlich gestartet werden. Dieser Parameter ist für den Multi-Instanz-Manager reserviert. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_enable]] |
 +| **''​multi_instance_directories = /​etc/​postfix-eth0''​** | Eine optionale Liste von nicht standardmäßigen [[http://​www.postfix.org/​|Postfix]]-Konfigurationsverzeichnissen;​ diese Verzeichnisse gehören zu zusätzlichen [[http://​www.postfix.org/​|Postfix]]-Instanzen,​ die die ausführbaren [[http://​www.postfix.org/​|Postfix]]-Dateien und -Dokumentation mit der Standard-[[http://​www.postfix.org/​|Postfix]]-Instanz teilen und die zusammen mit der Standard-[[http://​www.postfix.org/​|Postfix]]-Instanz gestartet, gestoppt usw. werden. Dies ist eine Liste von Pfadnamen, die durch Komma oder Leerzeichen getrennt sind. \\ \\ Wenn ''​multi_instance_directories''​ leer ist, läuft der Befehl ''​postfix''​ im Single-Instance-Modus und arbeitet nur mit einer einzigen [[http://​www.postfix.org/​|Postfix]]-Instanz. Andernfalls läuft der Befehl ''​postfix''​ im Multi-Instanz-Modus und ruft den mit dem Parameter ''​multi_instance_wrapper''​ angegebenen Multi-Instanz-Manager auf. Der Multi-Instanz-Manager wiederum führt ''​postfix''​-Befehle für die Standardinstanz und für alle [[http://​www.postfix.org/​|Postfix]]-Instanzen in ''​multi_instance_directories''​ aus. \\ \\ Derzeit wird diese Parametereinstellung ignoriert, mit Ausnahme der standardmäßigen ''​main.cf''​-Datei. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_directories]] | 
 +
 +==== Instanzen auflisten ====
 +
 +Nachfolgender Befehl listet alle vorhanden Instanzen in einer Umgebung mit Multi-Instanz-Unterstützung auf:
 +<​code>​
 +# postmulti -l
 +-               ​- ​              ​y ​        /​etc/​postfix
 +postfix-eth0 ​   mta             ​n ​        /​etc/​postfix-eth0
 +</​code>​
 +
 +Der Aufbau der Auflistung ist recht Übersichtlich:​
 +
 +^ [Name] ​           ^ [Gruppe] ^ **aktiv** ^ Konfigurationsverzeichnis ''​config_directory''​ ^
 +|             ''​-''​ |    ''​-''​ |     ''​y''​ | ''/​etc/​postfix'' ​                              |
 +|  ''​postfix-eth0''​ |  ''​mta''​ |     ''​n''​ | ''/​etc/​postfix-eth0'' ​                         |
 +
 +:!: **HINWEIS** - **Neue Instanzen werden standardmäßig in einem __deaktivierten Zustand__ erstellt!** ​
 +
 +==== Instanzen aktivieren ====
 +
 +Nachfolgender Befehl aktiviert eine Instanz:
 +<​code>​
 +# postmulti -i postfix-eth0 -e enable
 +</​code>​
 +
 +Eine Überprüfung,​ ob die Instanz nun aktiv ist, kann mit nachfolgendem Befehl durchgeführt werden:
 +<​code>​
 +# postmulti -l
 +-               ​- ​              ​y ​        /​etc/​postfix
 +postfix-eth0 ​   mta             ​y ​        /​etc/​postfix-eth0
 +</​code>​
 +
 +:!: **HINWEIS** - **Nun ist auch die [[http://​www.postfix.org/​|Postfix]]-Instanz ''​postfix-eth0''​ aktiviert!**
 +
 +==== Instanz starten ====
 +
 +:!: **WICHTIG** - **Bevor eine [[http://​www.postfix.org/​|Postfix]]-Instanz gestartet werden sollte, __MUSS__ der Parameter: ''​master_service_disable''​ entsprechend angepasst werden!**
 +
 +Der Parameter ''​master_service_disable''​ ist direkt nach dem Erstellen einer [[http://​www.postfix.org/​|Postfix]]-Instanz auf den Wert **''​inet''​** gesetzt. **Das verhindert, das die [[http://​www.postfix.org/​|Postfix]]-Instanz auf einer IP-Adresse lauscht und an einen Port gebunden werden kann!**
 +
 +^ Parameter ​                                 ^ Erklärung ^
 +| **''​master_service_disable = inet''​** ​     | **Selektives __Deaktivieren__** von ''​master''​-Listener-Ports nach Diensttyp oder nach Dienstname und -typ. Geben Sie eine Liste von Diensttypen (''​inet'',​ ''​unix'',​ ''​fifo''​ oder ''​pass''​) oder ''​name/​type''​ Paare an, wobei ''​name''​ das erste Feld eines ''​master.cf''​-Eintrags und ''​type''​ ein Diensttyp ist. Wie bei anderen [[http://​www.postfix.org/​|Postfix]]-Matchlists stoppt die Suche beim ersten Treffer. Geben Sie ''​!pattern''​ an, um einen Dienst aus der Liste auszuschließen. Standardmäßig sind alle master(8)-Listener-Ports aktiviert. \\ \\ :!: **Hinweis** -  **Diese Funktion unterstützt weder ''/​file/​name''​ oder ''​type:​table''​ Muster noch Wildcards wie ''​\*''​ oder ''​all''​. Das ist beabsichtigt.** \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​master_service_disable]]|
 +
 +Damit eine [[http://​www.postfix.org/​|Postfix]]-Instanz auf eine IP-Adresse gebunden werden kann und auf einen Port lauscht, muss **__vor__** dem Start der [[http://​www.postfix.org/​|Postfix]]-Instanz der Parameter ''​master_service_disable''​ mit nachfolgenden Befehl verändert werden, so das **__kein__** ''​master''​-Listener-Port blockiert wird. **Effektiv muss der Parameter ''​master_service_disable''​ __LEER__ sein.**
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -e "​master_service_disable ="
 +</​code>​
 +
 +:!: **HINWEIS** - **Damit beide [[http://​www.postfix.org/​|Postfix]]-Instanzen __nicht__ versuchen sich auf die IP-Adresse ''​127.0.0.1''​ und Port ''​25''​ zu binden, muss dies entsprechend bei einer der beiden [[http://​www.postfix.org/​|Postfix]]-Instanzen,​ hier die [[http://​www.postfix.org/​|Postfix]]-Instanz ''​postfix-eth0''​ noch abgeändert werden, was mit nachfolgendem Befehl durchgeführt wird.**
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -e "​inet_interfaces = 192.168.0.20"​
 +</​code>​
 +**__und__** dies auch zusätzlich in der Konfigurationsdatei ​
 +  * ''/​etc/​postfix-eth0/​master.cf''​
 +der [[http://​www.postfix.org/​|Postfix]]-Instanz ''​postfix-eth0''​ noch abgeändert werden, was mit nachfolgendem Befehl durchgeführt werden kann:
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -M smtp/​inet="​192.168.0.20:​smtp inet n -       ​n ​      ​- ​      ​- ​      ​smtpd"​
 +</​code>​
 +
 +Abschließend kann nun der eigentliche Start der [[http://​www.postfix.org/​|Postfix]]-Instanz mit anchfolgendem Befehl durchgeführt werden:
 +<​code>​
 +# postmulti -i postfix-eth0 -p start
 +postfix-eth0/​postfix-script:​ starting the Postfix mail system
 +</​code>​
 +
 +Nachfolgende Ergänzungen wurden **durch Ausführung der oben gezeigten Befehle** an der Konfigurationsdatei
 +  * ''/​etc/​postfix-eth0/​main.cf''​
 +hinzugefügt:​
 +
 +(**Nur relevanter Ausschnitt**)
 +<code bash>
 +master_service_disable =
 +authorized_submit_users =
 +multi_instance_group = mta
 +multi_instance_name = postfix-eth0
 +multi_instance_enable = yes
 +</​code>​
 +
 +^ Parameter ​                                 ^ Erklärung ^
 +| **''​master_service_disable = inet''​** ​     | **Selektives __Deaktivieren__** von ''​master''​-Listener-Ports nach Diensttyp oder nach Dienstname und -typ. Geben Sie eine Liste von Diensttypen (''​inet'',​ ''​unix'',​ ''​fifo''​ oder ''​pass''​) oder ''​name/​type''​ Paare an, wobei ''​name''​ das erste Feld eines ''​master.cf''​-Eintrags und ''​type''​ ein Diensttyp ist. Wie bei anderen [[http://​www.postfix.org/​|Postfix]]-Matchlists stoppt die Suche beim ersten Treffer. Geben Sie ''​!pattern''​ an, um einen Dienst aus der Liste auszuschließen. Standardmäßig sind alle master(8)-Listener-Ports aktiviert. \\ \\ :!: **Hinweis** -  **Diese Funktion unterstützt weder ''/​file/​name''​ oder ''​type:​table''​ Muster noch Wildcards wie ''​\*''​ oder ''​all''​. Das ist beabsichtigt.** \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​master_service_disable]]|
 +| **''​authorized_submit_users = ''​** ​        | Liste der Benutzer, die berechtigt sind, E-Mails mit dem Befehl ''​sendmail''​ (und mit dem privilegierten Befehl ''​postdrop''​ Hilfsprogramm) zu senden. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​authorized_submit_users]] |
 +| **''​multi_instance_group = mta''​** ​        | Der optionale Gruppenname der Instanz dieser [[http://​www.postfix.org/​|Postfix]]-Instanz. Eine Gruppe identifiziert verwandte [[http://​www.postfix.org/​|Postfix]]-Instanzen,​ die der Multi-Instanz-Manager starten, stoppen usw. kann, als Einheit. Dieser Parameter ist für den Multi-Instanz-Manager reserviert. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_group]] |
 +| **''​multi_instance_name = postfix-eth0''​** | Der optionale Instanzname dieser [[http://​www.postfix.org/​|Postfix]]-Instanz. **Dieser Name wird auch zum Standardwert für den Parameter ''​syslog_name''​**. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_name]] |
 +| **''​multi_instance_enable = yes''​** | Erlaubt, dass diese [[http://​www.postfix.org/​|Postfix]]-Instanz von einem Multi-Instanz-Manager gestartet, gestoppt usw. wird. Standardmäßig werden neue Instanzen in einem sicheren Zustand erstellt, der verhindert, dass sie versehentlich gestartet werden. Dieser Parameter ist für den Multi-Instanz-Manager reserviert. \\ \\ Siehe auch: [[http://​www.postfix.org/​postconf.5.html#​multi_instance_enable]] |
 +
 +==== Instanz Status ====
 +
 +Nachfolgender Befehl zeigt den Status aller [[http://​www.postfix.org/​|Postfix]]-Instanzen an:
 +<​code>​
 +# postmulti -a -p status
 +postfix/​postfix-script:​ the Postfix mail system is running: PID: 6511
 +postfix-eth0/​postfix-script:​ the Postfix mail system is running: PID: 6666
 +</​code>​
 +
 +:!: **HINWEIS** - **Die Option ''​-a''​ kann weggelassen werden, da dies der Standard ist, wenn kein ''​-i [Name]''​ angegeben wird!**
 +
 +Der Status für das [[http://​www.postfix.org/​|Postfix]]-Basis-Programm,​ kann mit nachfolgendem Befehl angezeigt werden:
 +<​code>​
 +# postmulti -i - -p status
 +postfix/​postfix-script:​ the Postfix mail system is running: PID: 6511
 +</​code>​
 +
 +Der Status für die [[http://​www.postfix.org/​|Postfix]]-Instanz ''​postfix-eth0'',​ kann mit nachfolgendem Befehl angezeigt werden:
 +<​code>​
 +# postmulti -i postfix-eth0 -p status
 +postfix-eth0/​postfix-script:​ the Postfix mail system is running: PID: 6666
 +</​code>​
 +
 +Nachfolgende die Bestätigung das [[http://​www.postfix.org/​|Postfix]] gestartet ist und auf der IP-Adresse **''​localhost (127.0.0.1)''​** und auf Port **''​25''​** lauscht, was bei einer **Standard**-[[http://​www.postfix.org/​|Postfix]]-Konfiguration der Fall wäre und eine [[http://​www.postfix.org/​|Postfix]]-Instanzen welche auf der IP-Adresse **''​192.168.0.20''​** und ebenfalls auf Port **''​25''​** lauscht:
 +
 +(:-D p.s. Da manche lieber **//​Poni//​**'​s als **//​tulpen//​** mögen, hier beide Befehle zur Überprüfung)
 +<​code>​
 +# lsof -Poni | grep master
 +master ​   6511  root   ​13u ​ IPv4 135951 ​   0t0  TCP 127.0.0.1:​25 (LISTEN)
 +master ​   6666  root   ​13u ​ IPv4 143387 ​   0t0  TCP 192.168.0.20:​25 (LISTEN)
 +</​code>​
 +<​code>​
 +# netstat -tulpen | grep master
 +tcp        0      0 192.168.0.20:​25 ​       0.0.0.0:​* ​           LISTEN ​     0       ​143387 ​    ​6666/​master ​    
 +tcp        0      0 127.0.0.1:​25 ​          ​0.0.0.0:​* ​           LISTEN ​     0       ​135951 ​    ​6511/​master
 +</​code>​
 +
 +===== Konfiguration:​ Gesamtübersicht =====
 +
 +==== /​etc/​postfix/​main.cf ====
 +
 +<code bash>
 +# postmulti -i - -x postconf -n
 +alias_database = hash:/​etc/​aliases
 +alias_maps = hash:/​etc/​aliases
 +command_directory = /usr/sbin
 +config_directory = /​etc/​postfix
 +daemon_directory = /​usr/​libexec/​postfix
 +data_directory = /​var/​lib/​postfix
 +debug_peer_level = 2
 +debugger_command = PATH=/​bin:/​usr/​bin:/​usr/​local/​bin:/​usr/​X11R6/​bin ddd $daemon_directory/​$process_name
 +$process_id & sleep 5
 +html_directory = no
 +inet_interfaces = localhost
 +inet_protocols = ipv4
 +mail_owner = postfix
 +mailq_path = /​usr/​bin/​mailq.postfix
 +manpage_directory = /​usr/​share/​man
 +multi_instance_directories = /​etc/​postfix-eth0
 +multi_instance_enable = yes
 +multi_instance_wrapper = ${command_directory}/​postmulti -p --
 +mydestination = $myhostname,​ localhost.$mydomain,​ localhost
 +newaliases_path = /​usr/​bin/​newaliases.postfix
 +queue_directory = /​var/​spool/​postfix
 +readme_directory = /​usr/​share/​doc/​postfix-2.11.11/​README_FILES
 +sample_directory = /​usr/​share/​doc/​postfix-2.11.11/​samples
 +sendmail_path = /​usr/​sbin/​sendmail.postfix
 +setgid_group = postdrop
 +unknown_local_recipient_reject_code = 550
 +</​code>​
 +
 +==== /​etc/​postfix/​master.cf ====
 +
 +<code bash>
 +# egrep -v "​^$|^.*#"​ /​etc/​postfix/​master.cf ​
 +127.0.0.1:​smtp inet n    -       ​n ​      ​- ​      ​- ​      smtpd
 +pickup ​   unix  n       ​- ​      ​n ​      ​60 ​     1       ​pickup
 +cleanup ​  ​unix ​ n       ​- ​      ​n ​      ​- ​      ​0 ​      ​cleanup
 +qmgr      unix  n       ​- ​      ​n ​      ​300 ​    ​1 ​      qmgr
 +tlsmgr ​   unix  -       ​- ​      ​n ​      ​1000? ​  ​1 ​      ​tlsmgr
 +rewrite ​  ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      ​trivial-rewrite
 +bounce ​   unix  -       ​- ​      ​n ​      ​- ​      ​0 ​      ​bounce
 +defer     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​0 ​      ​bounce
 +trace     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​0 ​      ​bounce
 +verify ​   unix  -       ​- ​      ​n ​      ​- ​      ​1 ​      ​verify
 +flush     ​unix ​ n       ​- ​      ​n ​      ​1000? ​  ​0 ​      flush
 +proxymap ​ unix  -       ​- ​      ​n ​      ​- ​      ​- ​      ​proxymap
 +proxywrite unix -       ​- ​      ​n ​      ​- ​      ​1 ​      ​proxymap
 +smtp      unix  -       ​- ​      ​n ​      ​- ​      ​- ​      smtp
 +relay     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      smtp
 +showq     ​unix ​ n       ​- ​      ​n ​      ​- ​      ​- ​      showq
 +error     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      error
 +retry     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      error
 +discard ​  ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      ​discard
 +local     ​unix ​ -       ​n ​      ​n ​      ​- ​      ​- ​      local
 +virtual ​  ​unix ​ -       ​n ​      ​n ​      ​- ​      ​- ​      ​virtual
 +lmtp      unix  -       ​- ​      ​n ​      ​- ​      ​- ​      lmtp
 +anvil     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​1 ​      anvil
 +scache ​   unix  -       ​- ​      ​n ​      ​- ​      ​1 ​      ​scache
 +</​code>​
 +
 +==== /​etc/​postfix-eth0/​main.cf ====
 +
 +<code bash>
 +# postmulti -i postfix-eth0 -x postconf -n
 +alias_database = hash:/​etc/​aliases
 +alias_maps = hash:/​etc/​aliases
 +authorized_submit_users =
 +command_directory = /usr/sbin
 +config_directory = /​etc/​postfix-eth0
 +daemon_directory = /​usr/​libexec/​postfix
 +data_directory = /​var/​lib/​postfix-eth0
 +debug_peer_level = 2
 +debugger_command = PATH=/​bin:/​usr/​bin:/​usr/​local/​bin:/​usr/​X11R6/​bin ddd $daemon_directory/​$process_name
 +$process_id & sleep 5
 +html_directory = no
 +inet_interfaces = 192.168.0.20
 +inet_protocols = ipv4
 +mail_owner = postfix
 +mailq_path = /​usr/​bin/​mailq.postfix
 +manpage_directory = /​usr/​share/​man
 +master_service_disable =
 +multi_instance_enable = yes
 +multi_instance_group = mta
 +multi_instance_name = postfix-eth0
 +mydestination = $myhostname,​ localhost.$mydomain,​ localhost
 +newaliases_path = /​usr/​bin/​newaliases.postfix
 +queue_directory = /​var/​spool/​postfix-eth0
 +readme_directory = /​usr/​share/​doc/​postfix-2.11.11/​README_FILES
 +sample_directory = /​usr/​share/​doc/​postfix-2.11.11/​samples
 +sendmail_path = /​usr/​sbin/​sendmail.postfix
 +setgid_group = postdrop
 +unknown_local_recipient_reject_code = 550
 +</​code>​
 +
 +==== /​etc/​postfix-eth0/​master.cf ====
 +
 +<code bash>
 +# egrep -v "​^$|^.*#"​ /​etc/​postfix-eth0/​master.cf
 +192.168.0.20:​smtp inet n -       ​n ​      ​- ​      ​- ​      smtpd
 +pickup ​   unix  n       ​- ​      ​n ​      ​60 ​     1       ​pickup
 +cleanup ​  ​unix ​ n       ​- ​      ​n ​      ​- ​      ​0 ​      ​cleanup
 +qmgr      unix  n       ​- ​      ​n ​      ​300 ​    ​1 ​      qmgr
 +tlsmgr ​   unix  -       ​- ​      ​n ​      ​1000? ​  ​1 ​      ​tlsmgr
 +rewrite ​  ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      ​trivial-rewrite
 +bounce ​   unix  -       ​- ​      ​n ​      ​- ​      ​0 ​      ​bounce
 +defer     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​0 ​      ​bounce
 +trace     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​0 ​      ​bounce
 +verify ​   unix  -       ​- ​      ​n ​      ​- ​      ​1 ​      ​verify
 +flush     ​unix ​ n       ​- ​      ​n ​      ​1000? ​  ​0 ​      flush
 +proxymap ​ unix  -       ​- ​      ​n ​      ​- ​      ​- ​      ​proxymap
 +proxywrite unix -       ​- ​      ​n ​      ​- ​      ​1 ​      ​proxymap
 +smtp      unix  -       ​- ​      ​n ​      ​- ​      ​- ​      smtp
 +relay     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      smtp
 +showq     ​unix ​ n       ​- ​      ​n ​      ​- ​      ​- ​      showq
 +error     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      error
 +retry     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      error
 +discard ​  ​unix ​ -       ​- ​      ​n ​      ​- ​      ​- ​      ​discard
 +local     ​unix ​ -       ​n ​      ​n ​      ​- ​      ​- ​      local
 +virtual ​  ​unix ​ -       ​n ​      ​n ​      ​- ​      ​- ​      ​virtual
 +lmtp      unix  -       ​- ​      ​n ​      ​- ​      ​- ​      lmtp
 +anvil     ​unix ​ -       ​- ​      ​n ​      ​- ​      ​1 ​      anvil
 +scache ​   unix  -       ​- ​      ​n ​      ​- ​      ​1 ​      ​scache
 +</​code>​
 +
 +===== Konfiguration:​ Grundlagenerweiterung =====
 +
 +==== Einschränkung:​ mydestination ====
 +
 +Eine mögliche Erweiterung der [[http://​www.postfix.org/​|Postfix]]-Instanz - ''​postfix-eth0''​ könnte z.B. sein, dass diese **__nur__** E-Mail'​s entgegen nimmt, die auf **''​[User]@buero.home.tachtler.net''​** lauten und nicht mehr auf z.B. ''​[User]@localhost''​.
 +
 +Dies kann z.B. durch Änderungen des Parameters
 +  * ''​mydestination''​
 +erfolgen, wie nachfolgende Befehle zeigen.
 +
 +Setzen des **FQDN** ''​buero.home.tachtler.net''​ beim Parameter ''​mydestination'',​ damit sich die die [[http://​www.postfix.org/​|Postfix]]-Instanz - ''​postfix-eth0'',​ nur noch für E-Mail'​s mit der E-Mail-Adressausgestaltung ''​[User]@buero.home.tachtler.net''​ als **''​final (destination)''​** zuständig fühlt:
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -e "​mydestination = buero.home.tachtler.net"​
 +</​code>​
 +
 +Zur Überprüfung,​ ob der vorhergehenden Befehl korrekt umgesetzt wurde, kann die Anzeige des Inhalts des Parameters mit nachfolgendem Befehl zum Vorschein gebracht werden:
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf mydestination
 +mydestination = buero.home.tachtler.net
 +</​code> ​
 +
 +Damit auch alle, außer die Domains und Top-Level-Domains welche in ''​mydestination''​ eingetragen sind auch abgelehnt (**''​REJECT''​**) werden, ist nachfolgende Konfiguration zusätzlich noch erforderlich:​
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf -e "​smtpd_recipient_restrictions = reject_unauth_destination"​
 +</​code>​
 +
 +Zur Überprüfung,​ ob der vorhergehenden Befehl korrekt umgesetzt wurde, kann die Anzeige des Inhalts des Parameters mit nachfolgendem Befehl zum Vorschein gebracht werden:
 +<​code>​
 +# postmulti -i postfix-eth0 -x postconf smtpd_recipient_restrictions
 +smtpd_recipient_restrictions = reject_unauth_destination
 +</​code>​
 +
 +Abschließen müssen die Änderungen durch das erneute einlesen der Konfiguration für die [[http://​www.postfix.org/​|Postfix]]-Instanz - ''​postfix-eth0''​ mit nachfolgendem Befehl noch aktiviert werden:
 +<​code>​
 +# postmulti -i postfix-eth0 -p reload
 +postfix-eth0/​postfix-script:​ refreshing the Postfix mail system
 +</​code>​
 +
 +Nachfolgende abschließende Test zeigen, ob die Konfiguration zur Erreichung des Ziels erfolgreich war.
 +
 +E-Mail zur [[http://​www.postfix.org/​|Postfix]]-Instanz - ''​postfix-eth0''​ mit Empfänger: ''​klaus@localhost'':​
 +<​code>​
 +# swaks --server 192.168.0.20 --to klaus@localhost
 +=== Trying 192.168.0.20:​25...
 +=== Connected to 192.168.0.20.
 +<-  220 buero.home.tachtler.net ESMTP Postfix
 + -> EHLO buero.home.tachtler.net
 +<-  250-buero.home.tachtler.net
 +<-  250-PIPELINING
 +<-  250-SIZE 10240000
 +<-  250-VRFY
 +<-  250-ETRN
 +<-  250-ENHANCEDSTATUSCODES
 +<-  250-8BITMIME
 +<-  250 DSN
 + -> MAIL FROM:<​root@buero.home.tachtler.net>​
 +<-  250 2.1.0 Ok
 + -> RCPT TO:<​klaus@localhost>​
 +<** 554 5.7.1 <​klaus@localhost>:​ Relay access denied
 + -> QUIT
 +<-  221 2.0.0 Bye
 +=== Connection closed with remote host.
 +</​code>​
 +
 +E-Mail zur [[http://​www.postfix.org/​|Postfix]]-Instanz - ''​postfix-eth0''​ mit Empfänger: ''​klaus@buero.home.tachtler.net'':​
 +<​code>​
 +# swaks --server 192.168.0.20 --to klaus@buero.home.tachtler.net
 +=== Trying 192.168.0.20:​25...
 +=== Connected to 192.168.0.20.
 +<-  220 buero.home.tachtler.net ESMTP Postfix
 + -> EHLO buero.home.tachtler.net
 +<-  250-buero.home.tachtler.net
 +<-  250-PIPELINING
 +<-  250-SIZE 10240000
 +<-  250-VRFY
 +<-  250-ETRN
 +<-  250-ENHANCEDSTATUSCODES
 +<-  250-8BITMIME
 +<-  250 DSN
 + -> MAIL FROM:<​root@buero.home.tachtler.net>​
 +<-  250 2.1.0 Ok
 + -> RCPT TO:<​klaus@buero.home.tachtler.net>​
 +<-  250 2.1.5 Ok
 + -> DATA
 +<-  354 End data with <​CR><​LF>​.<​CR><​LF>​
 + -> Date: Sat, 18 May 2019 23:08:47 +0200
 + -> To: klaus@buero.home.tachtler.net
 + -> From: root@buero.home.tachtler.net
 + -> Subject: test Sat, 18 May 2019 23:08:47 +0200
 + -> Message-Id: <​20190518230847.006877@buero.home.tachtler.net>​
 + -> X-Mailer: swaks v20170101.0 jetmore.org/​john/​code/​swaks/​
 + ​-> ​
 + -> This is a test mailing
 + ​-> ​
 + -> .
 +<-  250 2.0.0 Ok: queued as BFA022C69A
 + -> QUIT
 +<-  221 2.0.0 Bye
 +=== Connection closed with remote host.
 +</​code>​
 +
 +Die E-Mail an die [[http://​www.postfix.org/​|Postfix]]-Instanz - ''​postfix-eth0''​ mit dem Empfänger ''​klaus@buero.home.tachtler.net''​ sieht dann wie folgt aus:
 +<code bash>
 +# cat /​var/​spool/​mail/​klaus
 +From root@buero.home.tachtler.net ​ Sat May 18 23:08:47 2019
 +Return-Path:​ <​root@buero.home.tachtler.net>​
 +X-Original-To:​ klaus@buero.home.tachtler.net
 +Delivered-To:​ klaus@buero.home.tachtler.net
 +Received: from buero.home.tachtler.net (buero.home.tachtler.net [192.168.0.20])
 + by buero.home.tachtler.net (Postfix) with ESMTP id BFA022C69A
 + for <​klaus@buero.home.tachtler.net>;​ Sat, 18 May 2019 23:08:47 +0200 (CEST)
 +Date: Sat, 18 May 2019 23:08:47 +0200
 +To: klaus@buero.home.tachtler.net
 +From: root@buero.home.tachtler.net
 +Subject: test Sat, 18 May 2019 23:08:47 +0200
 +Message-Id: <​20190518230847.006877@buero.home.tachtler.net>​
 +X-Mailer: swaks v20170101.0 jetmore.org/​john/​code/​swaks/​
 +
 +This is a test mailing
 +
 +
 +
 +</​code>​
 +
 +===== Nützliche Befehle =====
 +
 +Für die **__primäre__** [[http://​www.postfix.org/​|Postfix]]-Instanz kann für ''​[Name]''​ das einzelne **Zeichen** **''​-''​** verwendet werden, **z.B.** zur Anzeige des Status:
 +<​code>​
 +# postmulti -i - -p status
 +</​code>​
 +
 +^ Befehl ​                                       ^ Beschreibung ​                                               ^
 +| ''​postmulti -e init'' ​                        | Multi-Instanz-Unterstützung aktivieren ​                     |
 +| ''​postmulti -I [Name] -G [Gruppe] -e create''​ | Erstellen einer Instanz (Parameter -G [Gruppe] ist optional)|
 +| ''​postmulti -l'' ​                             | Liste aller Instanzen in einer Multi-Instanz-Umgebung ​      |
 +| ''​postmulti -i [Name] -e enable'' ​            | Aktivieren einer Instanz ​                                   |
 +| ''​postmulti -i [Name] -e disable'' ​           | Deaktivieren einer Instanz ​                                 |
 +| ''​postmulti -i [Name] -x postconf -e "​master_service_disable ="''​ | **__Keine__** ''​master''​-Listener blockieren. |
 +| ''​postmulti -i [Name] -p start'' ​             | Starten einer Instanz ​                                      |
 +| ''​postmulti -i [Name] -p status'' ​            | Status einer Instanz anzeigen ​                              |
 +| ''​postmulti -i [Name] -p reload'' ​            | Konfiguration einer Instanz neu einlesen ​                   |
 +| ''​postmulti -i [Name] -p stop'' ​              | Stoppen einer Instanz ​                                      |
  
tachtler/postfix_centos_7_-_multiple_instanzen.1558153955.txt.gz · Zuletzt geändert: 2019/05/18 06:32 von klaus