Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsicher

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsicher

Beitrag von mrtplink1 » 15.03.2017 22:14:40

Hallo zusammen,

ich habe eine Frage und denke jemand kann mir dabei sicher helfen oder mir zumindest einen Tipp geben. Derzeit habe ich einen Postfix Server mit Dovecot und Amavis + MySQL Datenbank am laufen. Läuft alles wunderbar. Nun würde ich das ganze gerne etwas größer bauen ("Ausfallsicher", "Lastverteilung"). Zum testen habe ich mir eine Demoumgebung aufgebaut mit 3 VM's. Auf der ersten läuft nun ein HAProxy der die Anfragen an die Postfix Server weiterleitet. Das heißt von außen wäre nur ein Server sichtbar. Das klappt in meiner Demo jetzt auch alles wunderbar soweit, die Postfix Server bekommen beide immer Anfragen zugeteilt durch den HAProxy. Nun könnte ich noch Amavis auf beiden System installieren und vorschalten und Dovecot für IMAP installieren und fertig wäre das ganze.

So jetzt kommt das Problem: Wo lege ich die E-Mails ab? Die Postfix - Server laufen an sich ja jetzt erst einmal getrennt von einander und haben Ihren eigenen E-Mailspeicher. Nun müssten beide aber den gleichen Speicher verwenden, damit E-Mail nicht auf einem Server vorhanden sind und auf dem anderen nicht. Und wenn ich per IMAP abrufe sollte das ganze ja auch über den HAProxy gehen und einem Server zusortiert werden.

Die Frage nun wie wird das hier mit dem Speicher gelöst? Ein NFS-Share? Geht das überhaupt da die Postfix Server beide ja selber Dateien anlegen die nach dem Hostnamen benannt sind.

Klasse wäre ein Tipp zu diesem Thema oder eine kurze Anleitung wenn jemand eine dafür hat. E-Mail rausschicken machen die Postfix Server ja dann wieder selber je nachdem welcher Server angesprochen wird schickt der Postfix Server die E-Mail raus. Die beiden Postfix Server haben natürlich dann keine öffentliche IP sondern nutzten über NAT die IP-Adresse des HAProxys das ist mir klar.

Nur wie löse ich das Speicherproblem?

Gruß,

Olli

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von hec_tech » 17.03.2017 20:45:21

Naja du brauchst schon mal 2 HAProxy Instanzen die mit eine Shared IP arbeiten. Das würde ich mit CARP und PfSense machen da du sowieso eine Firewall auch brauchen wirst. PfSense hat auch HAProxy Package.

Damit wären wir mal bei 2 Servern und 3 Public IPs um das ding wirklich HA zu machen. Wobei ich da eigentlich den Mailservern auch outgoing eine eigene IP verpassen würde. Am besten pro Server eine. Das hat den Grund falls ein Server auf einer Blacklist landet nicht gleich dein komplettes System nicht mehr schicken kann. Damit wären wir bei bei 2 Servern und 5 Public IPs.

Du solltest dir umbedingt überlegen wie du IPv6 in dem Setup implementierst.

Transmission über LB finde ich ok aber SMTP sollten die Server ohne LB sprechen. Dafür gibt es aber auch Backup MX.

Die Mails solltest du auf NFS Speichern. Ich weiß jetzt nicht auf welche Größe das ganze implementiert werden soll. Aber du solltest ein durchaus potentes Storage das HA ist haben. Eine NetApp und auch eine alte tut es da sicherlich. NFS ist egal ob das noch ein ontap 7 oder ontap 8 oder 9 ist. Performance bekommst du über die Anzahl der Disken.

Die MX haben in den Postfächern gar nichts zu suchen das ist Aufgabe des MDA und solltest du auch Dovecot überlassen. Ich rate auch dazu die MX und MDA zu trennen. Weiters kann man auch MX und Amavis Server trennen um Performance zu optimieren. Man kommt meist mit 2 MX aus aber braucht 4 Amavis Server um das ganze Contentfiltering durchzuführen.

Dovecot kann auf NFS zugreifen das stellt soweit kein Problem dar. Somit haben beide das gleichen Storage.

Was macht die Datenbank bei dir genau? Users/Domains oder Amavis bzw SA Daten?

Ich würde dir folgendes empfehlen wenn du ein skalierbares System haben willst:

2x pfSense mit CARP und HAProxy - 2x IP für PfSense selbst, 1x Incoming Shared, 1x IP OUT MX1, 1x IP OUT MX2
2x MX - schnelle MX Server die grobchecks für Spam machen. Postscreen würde ich auf jeden Fall empfehlen.
2x MDA mit Dovecot und Postfix für Transmission - nur diesen Server mit HAProxy ansprechen
2x Amavis das kann aber nach Bedarf wachsen

Die Frage ist wie groß dein Setup werden soll und wieviel mal für sowas investieren will.
Für ein Hobby kann man das ganze meist vergessen da man die Resourcen nicht hat. Sobald aber nur ein SPOF in dem System ist bevorzuge ich lieber gleich die Lösung mit einem Server. Man spart sich die komplexe Konfiguration und es können weniger Fehler auftreten.

edit:

https://www.heinlein-support.de/sites/d ... ustern.pdf

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 20.03.2017 09:07:30

Erstmal viele Dank für die ausführliche Antwort! Ich würde gerne mein Vorhaben noch einmal erklären. Wie folgt würde ich es gerne aufbauen.

1. Frontend wird mit einem HAProxy abgedeckt, der HAProxy hat eine PublicIP Adresse und ist von außen zu erreichen. Der HAProxy hat auch eine zweite Netzwerkkarte mit einer internen IP-Adresse. (z.B. 192.168.10.1)

2. Im internen Netzwerk stehen 3 Postfixserver mit jeweils nur einer Netzwerkkarte und internen IP-Adressen (z.B. 192.168.10.5 - 192.168.10.8)

3. Nun würde ich dann auf jedem Postfixserver auch Dovecot installiert haben, da der HAProxy ja später die IP-Adresse der 3 Postfixserver/Dovecotserver weiß und die Ports 25 / 587 sowie 993 auf die 3 Systeme verteilt. Auf den Postfixservern ist evtl. Amavis installiert bzw. kann ja optional installiert werden.

4. Nun muss ich einen gemeinsamen Storage haben, damit bei allen Postfixservern/Dovecotservern der gleiche Datenbestand herrscht. Ich habe nun in ein paar Foren gelesen das es Probleme gibt wenn sich mehrere Postfixserver einen Storage teilen. (z.B. doppelte Mail-IDs usw.). Was wird hier sonst verwendet?

Hat hier jemand einen Tipp für mich ?!

hec_tech
Beiträge: 1093
Registriert: 28.06.2007 21:49:36
Wohnort: Wien
Kontaktdaten:

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von hec_tech » 20.03.2017 09:43:13

Dovecot kann mit NFS umgehen. Mit mdbox habe ich es noch nich getestet mit Maildir funktioniert es sicher.

Postfix hat doch eh jeder Server seine eigene Queue. Da brauchst du kein Shared Storage.

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 20.03.2017 14:52:19

Danke für deine Antwort!

Also derzeit nutze ich virtual_mailbox_base ich denke also maildir. Ich habe mir die Datein jetzt mal angeschaut:

14......M......[HOSTNAME],S=999,W=1030:2,S

Die Dateien sehen alle so aus, im Prinzip eine erste Nummer dann der Hostname des Mailservers und noch zum Schluss drei weitere Parameter. Wenn ich nun 3 Postfixserver habe, haben diese nachher auch unterschiedliche Hostnamen, das heißt in den Ordnern finde ich später dann Datein wie folgt aufgebaut:

14......M......[MAILSERVER1],S=999,W=1030:2,S
14......M......[MAILSERVER2],S=999,W=1030:2,S
14......M......[MAILSERVER3],S=999,W=1030:2,S

Kann damit ein Dovecot umgehen bzw. auch ein Postfix? Können sich Mail-IDs nicht überschneiden? Denn die Postfixserver wissen ja sozusagen nichts "voneinander", der HAProxy teilt die Anfragen ja in erste Linie zu.

Hast Du oder sonst jemand einen Tipp für mich wie ich das ganze möglichst simpel wie weiter oben in meinem Post beschrieben lösen kann? Mir ist so ziemlich alles klar bis auf den Storage und den Versand also SMTP-OUT.

Diesen habe ich aktuell so, das die Mailserver hinter dem HAProxy per NAT über den HAProxy schicken, im Prinzip hat alles nachher eine IP Adresse. Also eine IP für EIN - und AUSGEHEND.

Gruß und Danke

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 20.03.2017 16:11:08

Okay, das heißt mit den unterschiedlichen Namensgebungen kommt das System klar ?

Den der Postfix legt die E-Mails ja ins entsprechende Directory und versieht es mit seinem Hostnamen und einer MAIL-ID. Hier kann es nicht zu Problemen kommen?
Bei Postfix gibt es noch die Funktions Multiply Servers/Instanzen.

Verstehe, aber wenn ich beiden oder besser gesagt allen zweien oder dreien Postfixservern den gleichen Namen gebe. z.B.

Mailserver1 Name = mail.domain.de in1
Mailserver2 Name = mail.domain.de in2
Mailserver3 Name = mail.domain.de in3

Heißt alle Mailserver haben den gleichen Namen nach außen, mit der Ergänzung wie folgt in der main.conf:

smtpd_banner = mail.domain.de $mail_name
mail_name = in2
myhostname = mail.domain.de

Würde das so klappen oder verstehe ich da etwas falsch? Ich möchte ungern jedem Server eine eigene öffentliche IP geben. Nach Möglichkeit sollen die zwei oder drei Postfix Server über eine IP-Adresse rausschicken. So das es von außen nach einem Mailserver aussieht und ich nicht in den MX-Einträgen 3 verschiedene IP-Adressen eintragen muss.

Gruß und Danke!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 21.03.2017 14:38:01

Ich kann noch nicht nachvollziehen wie Du die 3 Postfixserver auf die IP vom HAProxy bekommst.

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 22.03.2017 09:44:55

Eventuell habe ich dann etwas falsch verstanden. Aktuell habe ich es wie folgt aufgebaut:

Code: Alles auswählen

                   HAProxy (mit externen IP - Adresse) (und zweiter Netzwerkkarte mit internen IP-Adresse)
                        |                                         |                                    |
                        |                                         |                                    |
       Postfixserver 1 interne ip            Postfixserver 2 interne ip           Postfixserver 3 interne ip
       + Dovecot Server                       + Dovecot Server                      + Dovecot Server
                                                                 |
                        |_________                         |                           ________|
                                               Zugriff auf NFS - Server Storage
                                               Zugriff auf MySQL Datenbank
Ich hoffe die Grafik ist einigermaßen zu verstehen. Ein HAProxy Server mit einer externen IP - Adresse auf diesen zeigt der MX - Record. Dier HAProxy kennt die 3 Postfixserver / Dovecotserver mit der internen IP und verteilt die Anfragen (SMTP, IMAP) auf die System. Die Postfix / Dovecot Server greifen auf einen wenn möglich gemeinsamen NFS Server Storage zu.

Mein Problem nun bis hier hin wenn ich es richtig verstanden habe, verstehe ich es. Jedoch gibt es ein Problem mit dem Storage, Postfix / Dovecot auf NFS macht Probleme wie auch im Internet beschrieben. Da die Postfix Instanzen sich gegenseitig nicht kennen. Kann es hier evtl. auf dem Storage zu gleichen Mail-IDs kommen und Lese-/Schreibzugriffsproblemem.

Wie löse ich dieses Problem am einfachsten? Mein Ziel ist es den aktuell laufenden Postfixserver den ich auf dem System habe zu entlasten, um die Anfragen auf mehrer Systeme zu verteilen, um auch in der Hinsicht eine kleine Ausfallsicherheit zu haben wenn ich einmal an einem Server arbeite (Wartung). Klar der NFS Storage ist der Point-Of-Fail.

Die Postfix Server schicken E-Mail dann selber raus, über den HAProxy per NAT. Somit ist von außen nur eine IP-Adresse sichtbar.

Kann mir hier jemand weiterhelfen? Oder habe ich das Konstrukt falsch verstanden?

Danke für jede Hilfe!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 22.03.2017 11:52:52

mrtplink1 hat geschrieben:Jedoch gibt es ein Problem mit dem Storage, Postfix / Dovecot auf NFS macht Probleme wie auch im Internet beschrieben. Da die Postfix Instanzen sich gegenseitig nicht kennen. Kann es hier evtl. auf dem Storage zu gleichen Mail-IDs kommen und Lese-/Schreibzugriffsproblemem.
Jede Postfix Instanz hat seine eigene Queue. Diese liegt auf den jeweiligen Servern und nicht am Shared Storage. Denn anders geht das gar nicht:

Code: Alles auswählen

The reason is that you cannot share Postfix queues among multiple running Postfix instances.
http://www.postfix.org/NFS_README.html
mrtplink1 hat geschrieben:Wie löse ich dieses Problem am einfachsten? Mein Ziel ist es den aktuell laufenden Postfixserver den ich auf dem System habe zu entlasten, um die Anfragen auf mehrer Systeme zu verteilen, um auch in der Hinsicht eine kleine Ausfallsicherheit zu haben wenn ich einmal an einem Server arbeite (Wartung). Klar der NFS Storage ist der Point-Of-Fail.
Das kannst Du ja auch machen. Allerdings würde ich Dir eher den Dovecot Director ans Herz legen als den HAProxy.
Und ja der NFS Server wäre dann der Single Point of Failure. Aber nicht Dein einziger.
Du hast nur einen HAProxy. Du hast auch nur einen MySQL Server. Am gleichen Host wie dein shared Storage.
mrtplink1 hat geschrieben:Die Postfix Server schicken E-Mail dann selber raus, über den HAProxy per NAT. Somit ist von außen nur eine IP-Adresse sichtbar.
Das ist ja prinzipiell möglich nur musst Du dazu auch noch iptables bemühen, da der HAProxy das so nicht macht.
mrtplink1 hat geschrieben:Kann mir hier jemand weiterhelfen? Oder habe ich das Konstrukt falsch verstanden?
Die Frage ist mehr was wirklich genau das Problem für dieses Konstrukt darstellt. Ist einfach nur die jetzige Kapazität des einzelnen Servers zu gering.
Oder musst Du eine gewisse SLA abbilden. Muss das so aussehen. Vielleicht gibt es da auch eine einfacher Lösung.

lG

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 22.03.2017 14:14:01

Dank für deine ausführliche Antwort!

Okay das habe ich nun verstanden, mein Problem ist das ein Postfix / Dovecot Server irgendwann keine TCP (Sockets / Verbindungen) mehr freihat. Da ich meine Systeme alle virtualisiert habe auf LXC ebende kann ich die Anzahl auch nicht ohne weiteres erhöhen.
Die Frage ist mehr was wirklich genau das Problem für dieses Konstrukt darstellt. Ist einfach nur die jetzige Kapazität des einzelnen Servers zu gering.
Oder musst Du eine gewisse SLA abbilden. Muss das so aussehen. Vielleicht gibt es da auch eine einfacher Lösung.
Was könnte oder wäre denn eine einfacherer Lösung? Ich würde am liebsten die Verbindungen auf 2 - 3 LXC Container verteilen deshalb die Idee mit dem HAProxy bzw. Dovecot Director. Hast Du hier evtl. eine bessere Lösung oder hast Du es selber evtl. auf eingene System anders gelöst, wenn ja wie? Hast Du dafür auch eine Anleitung?
Das kannst Du ja auch machen. Allerdings würde ich Dir eher den Dovecot Director ans Herz legen als den HAProxy.
Und ja der NFS Server wäre dann der Single Point of Failure. Aber nicht Dein einziger.
Du hast nur einen HAProxy. Du hast auch nur einen MySQL Server. Am gleichen Host wie dein shared Storage.
Gibt es für den Dovecot Director irgendwo eine gute Beschreibung? Muss auf dem HAProxy System dann auch ein Dovecot bzw. der Dovecot Director installiert werden?
Jede Postfix Instanz hat seine eigene Queue. Diese liegt auf den jeweiligen Servern und nicht am Shared Storage. Denn anders geht das gar nicht
Nur noch mal zu meinem Verständniss, das heißt die Postfix Queue (im Prinzip das wsa der Postfix selber noch abarbeiten muss; SMTP Out und SMTP IN) liegt bei jedem Postfix lokal). Der eigentliche Mailstorage Mailboxen liegt auf dem NFS Share. Kommt der Dovecot denn mit dem NFS klar? Ich lese immer davon das verschiede E-Mail IDs zu einem Problem werden könnten. Und beim abspeichern einer E-Mail wird zumindest bei meinem System die Datei wie folgt aufgebaut:

Code: Alles auswählen

14......M......[HOSTNAME],S=999,W=1030:2,S
Somit hätten die Datein unterschiedliche Bezeichnungen, wäre das schlimm? Oder lässt sich das auch umstellen?

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 22.03.2017 15:11:01

mrtplink1 hat geschrieben:Dank für deine ausführliche Antwort!

Okay das habe ich nun verstanden, mein Problem ist das ein Postfix / Dovecot Server irgendwann keine TCP (Sockets / Verbindungen) mehr freihat. Da ich meine Systeme alle virtualisiert habe auf LXC ebende kann ich die Anzahl auch nicht ohne weiteres erhöhen.


Wie viele physische Hosts hast Du zur Verfügung ? Sind diese nur für Email da oder werden noch andere Dienste darauf ausgeführt ? Auslastung der Hosts ?
Welche Kapazität haben diese(r) Host(s) ? Wieviel RAM, CPU. Und wieviel RAM, CPU hat Dein jetziger Mailserver ?
mrtplink1 hat geschrieben:Was könnte oder wäre denn eine einfacherer Lösung? Ich würde am liebsten die Verbindungen auf 2 - 3 LXC Container verteilen deshalb die Idee mit dem HAProxy bzw. Dovecot Director. Hast Du hier evtl. eine bessere Lösung oder hast Du es selber evtl. auf eingene System anders gelöst, wenn ja wie? Hast Du dafür auch eine Anleitung?
Das kommt ganz drauf an was man wirklich benötigt und welche Mittel ( bestehende Server oder Finanzplan ) man zur Verfügung hat.
Bei uns kommen die beiden Mailgateways ( 2 Standorte jeweils auf einem VMWare Cluster ) mit 2vCPU und 4 GB RAM aus.
Dahinter steht der Exchange 2 Node DAG mit HUB/Mailboxservern. Die haben auch "nur" 4 CPU und 8 GB RAM jeweils.
Aber es reicht für die 500 User die da drauf hängen. Das ganze hängt auf einem einzelnen Storage mit 2 FC Controllern.
Emailvolumen pro Monat ca. 60.000 Sent ca. 55.000 received und 260.000 geblocked
mrtplink1 hat geschrieben:Gibt es für den Dovecot Director irgendwo eine gute Beschreibung? Muss auf dem HAProxy System dann auch ein Dovecot bzw. der Dovecot Director installiert werden?

Code: Alles auswählen

Dovecot allows mailboxes and their indexes to be modified by multiple computers at the same time, while still performing well. This means that Dovecot works well with clustered filesystems. NFS has caching problems, but you can work around them with director proxies.]
https://www.dovecot.org/
http://wiki2.dovecot.org/Director

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 22.03.2017 16:55:12

Wird der Dovecot - Director auf einem Dovecot installiert oder auf dem HAProxy bzw. dem Server der das Frontend abbildet?
Ich habe einen Host mit 32 GB RAM, der jetzige Mailserver (LXC) hat 4 GB RAM und 4 CPUs, ja auf dem Host sind noch mehrere LXC Container mit Webservern etc.

Jedoch würde ich trotzdem gerne mehrere Postfixserver im Backend haben, die dann durch HAProxy zugeteilt werden, ich verstehe nur noch nicht ganz wie das mit dem Dovecot - Director geregelt wird, bzw. wo dieser installiert wird bzw. auf welchem System er läuft und welche Aufgaben er genau hat.

In meiner Testumgebung (auf einem eimischen Rechner mit VMware Workstation) habe ich das ganze mal gebaut, es funktioniert soweit alles, Dovecot auf NFS klappt auch und jeder Postfixserver hat seine eigene Queue lokal. Nur wo sollte denn jetzt der Dovecot Direcot platziert werden? Ersetzt er den HAProxy komplett?

Aktuell verteilt der HAProxy bei mir die Ports 25 und 993 bzw. 587 auf den internen Postfix bzw. Dovecot Server im Round Robin Verfahren. Auf den Postfixserver selbst ist jeweils ein Amavis der die Mails überprüft und wenn Sie Viren, Spam etc. aufweisen in die QMS stecken.

Danke für jede Hilfe!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 22.03.2017 17:32:33

mrtplink1 hat geschrieben:Wird der Dovecot - Director auf einem Dovecot installiert oder auf dem HAProxy bzw. dem Server der das Frontend abbildet?
Ich habe einen Host mit 32 GB RAM, der jetzige Mailserver (LXC) hat 4 GB RAM und 4 CPUs, ja auf dem Host sind noch mehrere LXC Container mit Webservern etc.
Ein physikalischer Host, aber die Mailsoftware soll HA sein ?

Ja der Director ist ein Frontendserver.
mrtplink1 hat geschrieben:Jedoch würde ich trotzdem gerne mehrere Postfixserver im Backend haben, die dann durch HAProxy zugeteilt werden, ich verstehe nur noch nicht ganz wie das mit dem Dovecot - Director geregelt wird, bzw. wo dieser installiert wird bzw. auf welchem System er läuft und welche Aufgaben er genau hat.
Der Director merkt sich das User Mapping. Also welcher User auf welchem Backendserver eingeloggt ist. Der HA Proxy "merkt" sich nur die IP und verteilt per round robin oder was auch immer eingestellt ist. Logt sich ein User von seinem Arbeitsplatz ein kommt er auf Server 1. In der Mittagspause checkt er seine Mails aber aus dem kleinen Cafe vis a vis. Andere IP. Der Director erkennt Ihn aber als User der bereits auf Server 1 zugeteilt ist und weist Ihm wieder den Server zu. Der HA Proxy würde ( eventuell ) einen anderen nehmen. Und dann ist der User auf mehreren Backendserver gleichzeitig.
mrtplink1 hat geschrieben:In meiner Testumgebung (auf einem eimischen Rechner mit VMware Workstation) habe ich das ganze mal gebaut, es funktioniert soweit alles, Dovecot auf NFS klappt auch und jeder Postfixserver hat seine eigene Queue lokal. Nur wo sollte denn jetzt der Dovecot Direcot platziert werden? Ersetzt er den HAProxy komplett?
Probier es aus. HAProxy oder Director. BEIDES wird nicht gehen. Der Director hat die oben beschrieben Vorteile.

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 23.03.2017 23:51:06

Dank für deine Antwort(en)!

Ich habe das ganze jetzt soweit fertig, jedoch noch ein Problem mit dem Dovecot Director, ich bekommen den einfach nicht installiert, gibt es irgendwo eine gute Anleitung, oder kennt jemand eine oder hat eine gute Anleitung, wie man den Dovecot Director installiert bzw. einrichtet?

Ich habe auf meinem Loadbalancer jetzt einen Dovecot installiert, dieser hört auf 993 der HAProxy hört nur noch auf Port 25 und 587. Wie bringe ich dem Dovecot jetzt bei den 993 Port auf drei Backend Server zu verteilen? Kann mir hier jemand einen Tipp geben oder eine Anleitung (für Anfänger) geben?

Ich danke für jeden Tipp / Hilfe!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 24.03.2017 07:51:41

mrtplink1 hat geschrieben:Dank für deine Antwort(en)!

Ich habe das ganze jetzt soweit fertig, jedoch noch ein Problem mit dem Dovecot Director, ich bekommen den einfach nicht installiert, gibt es irgendwo eine gute Anleitung, oder kennt jemand eine oder hat eine gute Anleitung, wie man den Dovecot Director installiert bzw. einrichtet?
Wenn Du Dovecot installiert hast, hast Du den Dovecot Director schon installiert. Das ist nichts anderes als ein Service von Dovecot.
mrtplink1 hat geschrieben:Ich habe auf meinem Loadbalancer jetzt einen Dovecot installiert, dieser hört auf 993 der HAProxy hört nur noch auf Port 25 und 587. Wie bringe ich dem Dovecot jetzt bei den 993 Port auf drei Backend Server zu verteilen? Kann mir hier jemand einen Tipp geben oder eine Anleitung (für Anfänger) geben?

Code: Alles auswählen

conf.d/10-director.conf
http://wiki2.dovecot.org/Director

Code: Alles auswählen

# List of IPs or hostnames to all director servers, including ourself.
# Ports can be specified as ip:port. The default port is the same as
# what director service's inet_listener is using.
#director_servers =
Also Dein Loadbalancer

Code: Alles auswählen

# List of IPs or hostnames to all backend mail servers. Ranges are allowed
# too, like 10.0.0.10-10.0.0.30.
#director_mail_servers =
Deine Backend Server

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 26.03.2017 11:28:22

Hallo,

ich bekomme leider den Dovecot Director nicht eingerichtet, ich habe die Schritte aus dem Wiki durchgeführt. Auf dem Frontend Server ist der Dovecot installiert und in der conf.d/10-director.conf sind alle notwendigen Angaben gemacht.

Leider verteilt der Dovecot Director die Anfragen auf IMAP nicht weiter auf die zwei Backend Server:

Code: Alles auswählen

 director: Fatal: No inet_listeners defined for director service (for standalone keep director_servers empty)
Mar 25 23:27:01 krusty dovecot: master: Error: service(director): command startup failed, throttling for 4 secs
Mar 25 23:27:01 krusty dovecot: imap-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 2 secs): user=<>, rip=192.168.10.9, lip=192.168.178.20, session=<hKfom5VLTcbAqAoJ
Wo ist hier mein Fehler? Ich würde gerne nur Port 993 auf die Backend Server verteilen da dort der Dovecot auf 993 eingerichetet ist. Wenn ich die Server direkt per 993 anspreche klappt alles. Heißt also am Director ist noch irgendwas falsch.

meine 10-director.conf

Code: Alles auswählen

director_servers = 192.168.178.20

# List of IPs or hostnames to all backend mail servers. Ranges are allowed
# too, like 10.0.0.10-10.0.0.30.
director_mail_servers = 192.168.10.1-192.168.10.2

service director {
  unix_listener login/director {
    mode = 0666
  }
  fifo_listener login/proxy-notify {
    mode = 0666
  }
  unix_listener director-userdb {
    mode = 0600
  }
#  inet_listener {
#    port = 9090
#  }
}

# Enable director for the wanted login services by telling them to
# connect to director socket instead of the default login socket:
service imap-login {
  executable = imap-login director
}
#service pop3-login {
  #executable = pop3-login director
#}

# Enable director for LMTP proxying:
protocol lmtp {
  #auth_socket_path = director-userdb
}

passdb {
  driver = static
  args = proxy=y nopassword=y
}

Danke für jeden Tipp!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 26.03.2017 12:58:29

mrtplink1 hat geschrieben:Hallo,

ich bekomme leider den Dovecot Director nicht eingerichtet, ich habe die Schritte aus dem Wiki durchgeführt. Auf dem Frontend Server ist der Dovecot installiert und in der conf.d/10-director.conf sind alle notwendigen Angaben gemacht.

Leider verteilt der Dovecot Director die Anfragen auf IMAP nicht weiter auf die zwei Backend Server:
Dann lies mal die erste Zeile:

Code: Alles auswählen

director: Fatal: No inet_listeners defined for director service (for standalone keep director_servers empty)

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 27.03.2017 19:56:50

Okay klar, wer lesen kann ist klar im Vorteil! Sorry und Danke!

Der Director kommt jetzt bei den Servern an, jedoch im Log nachfolgender Fehler:

Code: Alles auswählen

Mar 27 19:50:34 krusty dovecot: imap-login: Disconnected (disconnected before auth was ready, waited 0 secs): user=<>, rip=192.168.10.10, lip=192.168.10.1, session=<x8bx+rlLrL/AqAoK>
Auf dme Director habe ich folgenden Fehler:

Code: Alles auswählen

Mar 27 19:52:04 krusty dovecot: imap-login: Disconnected (no auth attempts in 0 secs): user=<>, rip=192.168.178.52, lip=192.168.178.20, session=<jdVOALpLk9bAqLI0>
Wie bekomme ich auf dem Director eingestellt das er nur auf Port 993 hört und nicht auf Port 143? Nachfolgend meine 10-director.conf:
director_mail_servers = 192.168.10.1-192.168.10.2

# To enable director service, uncomment the modes and assign a port.
service director {
unix_listener login/director {
mode = 0666
}
fifo_listener login/proxy-notify {
#mode = 0666
}
unix_listener director-userdb {
#mode = 0600
}
inet_listener {
# port = 9090
}
}
service imaps-login {
executable = imap-login director
}
service pop3-login {
#executable = pop3-login director
}
# Enable director for LMTP proxying:
protocol lmtp {
#auth_socket_path = director-userdb
}
Meine dovecot.conf:
!include_try /usr/share/dovecot/protocols.d/*.protocol
dict {
#quota = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
#expire = sqlite:/etc/dovecot/dovecot-dict-sql.conf.ext
}
!include_try local.conf
Leider habe ich auch keine Anleitung gefunden außer die im Dovecot Wiki selbst wie man den Director konfiguriert. Ich dachte so wie ich es hier verstanden habe ( https://www.heinlein-support.de/sites/d ... ustern.pdf ) wird einfach nur ein Dovecot default aufgesetzt und ihm mitgeteilt das er Proxy ist und die Verbindungen an Server 1 und Server 2 durchreicht, die Anmeldeung Verifzierung findet auf den Backend Servern stadt, oder sehe ich das falsch? aktuell habe ich nur die oben genannten Datein konfiguriert sonst ist alles default wie nach einem apt-get install dovecot-common.

Danke für jeden Tipp!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 28.03.2017 08:56:12

Wie sieht denn Deine 10-master.conf aus ? Und bitte auch gleich die 10-auth.conf.

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 28.03.2017 10:17:19

Hi,

meine Config sieht wie folgt aus:

10-master.conf

Code: Alles auswählen

service imap-login {
  inet_listener imap {
  port = 143
  }
  inet_listener imaps {
   port = 993
  ssl = yes
}
}

service pop3-login {
  inet_listener pop3 {
    #port = 110
  }
  inet_listener pop3s {
    #port = 995
    #ssl = yes
  }
}
service lmtp {
  unix_listener lmtp {
    #mode = 0666
  }
}

service imap {
  # Most of the memory goes to mmap()ing files. You may need to increase this
  # limit if you have huge mailboxes.
  #vsz_limit = $default_vsz_limit

  # Max. number of IMAP processes (connections)
  #process_limit = 1024
}

service pop3 {
  # Max. number of POP3 processes (connections)
  #process_limit = 1024
}

service auth {
  # auth_socket_path points to this userdb socket by default. It's typically
  # used by dovecot-lda, doveadm, possibly imap process, etc. Users that have
  # full permissions to this socket are able to get a list of all usernames and
  # get the results of everyone's userdb lookups.
  #
  # The default 0666 mode allows anyone to connect to the socket, but the
  # userdb lookups will succeed only if the userdb returns an "uid" field that
  # matches the caller process's UID. Also if caller's uid or gid matches the
  # socket's uid or gid the lookup succeeds. Anything else causes a failure.
  #
  # To give the caller full permissions to lookup all users, set the mode to
  # something else than 0666 and Dovecot lets the kernel enforce the
  # permissions (e.g. 0777 allows everyone full permissions).
  unix_listener auth-userdb {
    #mode = 0666
    #user =
    #group =
  }

  # Postfix smtp-auth
  #unix_listener /var/spool/postfix/private/auth {
  #  mode = 0666
  #}

  # Auth process is run as this user.
  #user = $default_internal_user
}

service auth-worker {
  # Auth worker process is run as root by default, so that it can access
  # /etc/shadow. If this isn't necessary, the user should be changed to
  # $default_internal_user.
  #user = root
}

service dict {
  # If dict proxy is used, mail processes should have access to its socket.
  # For example: mode=0660, group=vmail and global mail_access_groups=vmail
  unix_listener dict {
    #mode = 0600
    #user =
    #group =
  }
}
Meine 10-auth.conf

Code: Alles auswählen

auth_mechanisms = plain
!include auth-system.conf.ext
Alles andere ist in der 10-auth.conf auskommentiert. Die beiden Dovecot Server im Backend habe ich voll konfiguriert. Die Server im Backend hören nur auf Port 993 (SSL).
Muss für den Director der vollständige Dovecot konfiguriert werden er muss ja nur die Anfragen auf Server 1 und Server 2 weiter verteilen.

Danke!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 28.03.2017 11:38:31

mrtplink1 hat geschrieben:Hi,

meine Config sieht wie folgt aus:

10-master.conf

Code: Alles auswählen

service imap-login {
  inet_listener imap {
  port = 143
  }
  inet_listener imaps {
   port = 993
  ssl = yes
}
}
[/quote]

Nimm mal den inet_listener imap raus, dann sollte der Director nur noch auf 993 lauschen

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 28.03.2017 12:52:19

Hi,

Danke für die schnelle Antwort ich habe die 10-master.conf angepasst:

Code: Alles auswählen

service imap-login {
  #inet_listener imap {
  #port = 143
  #}
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
Ein netstat liefert jedoch nur das folgende Ports benutzt werden

Code: Alles auswählen

0.0.0.0:587               
0.0.0.0:80              
0.0.0.0:22              
0.0.0.0:25              
:::22                  
0 0.0.0.0:68
Habe ich noch irgendwas vergessen? An den sonstigen Files habe ich keine Änderung vorgenommen. Nur sollte der Dovecot ja nur auf Port 993 hören, was er leider noch nicht tut.

Danke!

Benutzeravatar
HZB
Beiträge: 486
Registriert: 22.10.2003 11:52:15
Wohnort: Wien

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von HZB » 28.03.2017 15:49:27

Was steht denn in der /etc/dovecot/dovecot.conf bei protocols ?

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 28.03.2017 17:48:11

Hi,

in der Datei steht folgender Pfad:

Code: Alles auswählen

!include_try /usr/share/dovecot/protocols.d/*.protocol
Folgendes habe ich von Hand eingefügt leider hört der Postfix damit auch nicht auf 993

Code: Alles auswählen

protocols = imap
In der 10-master.conf steht folgendes, jedoch hört der Dovecot weder auf 143 noch auf 993

Code: Alles auswählen

service imap-login {
  #inet_listener imap {
  #port = 143
  #}
  inet_listener imaps {
    port = 993
    ssl = yes
  }
}
Danke & Gruß

mrtplink1
Beiträge: 54
Registriert: 27.03.2016 22:37:36

Re: Postfix / Dovecot / Amavis Cluster / HAProxy Ausfallsich

Beitrag von mrtplink1 » 28.03.2017 18:54:09

Hi,
okay jetzt scheint mein Dovecot Director nicht zu den Mailservern bzw. Dovecot Servern im Backend zu kommen, da diese nicht auf Port 143 horchen.
Mar 28 18:45:43 krusty dovecot: imap-login: Error: proxy(user): connect(192.168.10.1, 143) failed: Connection refused (after 30 secs, 30 reconnects, local=192.168.10.10:36604)
Hier einmal alle meine Dovecot Files wie Sie konfiguriert sind. Einmal der Dovecot Director Server und einmal die Konfig eines Backend Dovecot Servers.

http://workupload.com/file/a9NkF8s

Vielleicht kann mir jemand sagen was in meinen Dateien falsch ist und mir eine Korrektur anbieten und mir die Files zur Verfügung stellen!

Danke für jede Hilfe & Gruß !!

Antworten