Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungNächste ÜberarbeitungBeide Seiten der Revision |
tachtler:postfix_centos_7_-_multiple_instanzen [2019/05/18 06:26] – klaus | tachtler:postfix_centos_7_-_multiple_instanzen [2019/05/18 23:15] – [Konfiguration: Grundlagenerweiterung] klaus |
---|
====== Postfix CentOS 7 - Multiple Instanzen ====== | ====== Postfix CentOS 7 - Multiple Instanzen ====== |
| |
[[http://www.postfix.org/|{{:tachtler:index:postfix-48x48.png }}]] [[http://www.postfix.org/|Postfix]] ist Wietse Venema's Mail-Server, welcher bei "IBM research" als Alternative zum ehemals weit verbreiteten Programm [[http://www.sendmail.org|Sendmail]] entwickelt wurde. [[http://www.postfix.org/|Postfix]] erhebt den Anspruch ein schneller, einfach zu administrierender und sicherer Mail-Server zu sein. | [[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. |
| |
:!: **WICHTIG** - Für den erfolgreichen Betrieb eines eigenen **MTA** (Mail Transport Agent) sollten Sie im Besitz einer **festen IP-Adresse** sein !!! | :!: **HINWEIS** - **Multi-Instanz-Unterstützung ist ab Postfix Version 2.6 verfügbar!** |
| |
:!: **WICHTIG** - Bei [[http://www.centos.org|CentOS]] ab der **Version 7.x** ist [[http://www.postfix.org/|Postfix]] in der **Version 2.10.1** enthalten, was die Nutzung einiger Möglichkeiten __**neuerer**__ Postfix Versionen verhindert. **Deshalb soll [[http://www.postfix.org/|Postfix]] aus nachfolgendem Drittanbieter-Repository installiert werden!** | 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. |
| Dokumentation | [[http://www.postfix.org/documentation.html]] | | | Dokumentation | [[http://www.postfix.org/documentation.html]] | |
| Ankündigungen | [[http://www.postfix.org/announcements.html]] | | | Ankündigungen | [[http://www.postfix.org/announcements.html]] | |
| | ''postmulti'' | [[http://www.postfix.org/MULTI_INSTANCE_README.html]] | |
| |
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'': | 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'': |
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 ===== |
| |
| 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'' oder sogar ''[User]'', ohne Angabe einer Domain und Top-Level-Domain. |
| |
| 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 | |
| |