E-Maildienst Einrichtung Fortsetzung

Hinweis: In dem Thema E-Maildienst Einrichtung Fortsetzung gibt es 17 Antworten auf 2 Seiten. Der letzte Beitrag () befindet sich auf der letzten Seite.
  • Hallo zusammen,


    in Referenz zu diesem Thread von mir: Suche Anleitung für das Einrichten von E-Maildiensten bin ich nun dazu gekommen am E-Mailserver weiter zu machen / weiter zu forschen (als Selbstlernprojekt). In der Zwischenzeit verwende ich nun doch wieder ein Webinterface, nämlich Froxlor ( GitHub - Froxlor/Froxlor: The server administration software for your needs - The official Froxlor development Git repository ). Es erleichtert einem die Arbeit bei der Einrichtung, man behält aber die Flexibilität der Konsole weiterhin - beides läuft wunderbar im "Mischbetrieb".
    Man kann dort eine Grundkonfiguration anlegen für diverse Dienste. Für jeden dieser gibt es Distri-abhängige Config Templates, wo man dann per Copy & Paste Befehle in einem SSH Terminal eingeben soll. OpenSUSE stand nicht zur Auswahl, ich nahm RHEL / CentOS als Template, was openSUSE von den zur Auswahl stehenden Distris noch am nähesten kam. Laut Projektseite ist Froxlor jedoch vollständig mit openSUSE kompatibel.


    Wie auch immer, die Einrichtung hatte soweit geklappt bis auf ein paar Kleinigkeiten. Postfix und Dovecot laufen und sind ansprechbar. Ein paar Sachen kann ich allerdings nicht alleine beheben:
    1. Dovecot wird MySQL betrieben. Man kann den auch von außen via Telnet am Port 143 ansprechen, aber sobald man das IMAP Login Kommando angibt, tut sich nichts mehr. Aus den Statusmeldungen von systemctl hatte ich heraus gefunden, dass er wohl etwas gegen mein Passwort für den DB Benutzer hatte (es war eine # drin und er wollte es escaped haben). Jetzt habe ich das Passwort in Anführungszeichen gesetzt und erneut getestet: Nach dem IMAP Login kommt wieder nichts. Die Benutzername / Passwort Kombi passen allerdings - ich kann mich damit am MySQL Konsole Client problemlos anmelden.
    2. Von mehreren Seiten habe ich mittlerweile gehört, dass der Postfix Server nur auf localhost am Port 25 hören soll. Macht das Sinn? Ich meine, wie soll so ein E-Mailprogramm E-Mails senden können? Auf der anderen Seite traue ich mich nicht den an der öffentlichen IP lauschen zu lassen, solange bis ich nicht sicher weis, was ich da tue. Er soll schließlich nicht noch vor der Fertigstellung schon als Spamschleuder missbraucht werden.
    Also hier mal die besagte config Zeile aus /etc/dovecot/dovecot-sql.conf.ext:

    Code
    connect = host=127.0.0.1 dbname=froxlor user=froxlordb password="xmk(W=!3kd@;F&Q#"


    3. In der openSUSE HowTo steht etwas davon, dass man fetchmail bräuchte, um eingehende E-Mails an die entsprechenden Postfächer weiterzuleiten: Mail server HOWTO - openSUSE Wiki Ist das wirklich so? Und wenn ja, warum reicht die Kombi Postfix / Dovecot nicht?
    4. Wäre es besser für die Subdomains, auf denen kein Webserver vhost läuft openSSL / libreSSL oder Let's Encrypt zu verwenden?


    MFG


    derwunner

    Diese Signatur ist derzeit nicht verfügbar.

    Für den Inhalt des Beitrages 128769 haftet ausdrücklich der jeweilige Autor: derwunner

  • Postix wird hauptsächlich mit zwei Konfigfiles konfiguriert. master.cf und main.cf
    Und das, obwohl da schon per Default gut 10 verschiedene Standarddienste laufen, die alle zusammengenommen die "Werksinterna" eines Mailservers darstellen.
    (Es gibt dann noch ein paar Maps um z.B. automatisches "CC" oder dergleichen festzulegen. Die haben aber primär eher weniger mit den Grundfunktionen eines MTAs zu tun)


    Und Postix ist NUR der MTA, der MailTransferAgent.
    Der kümmert sich nur um das Hin- und Herschieben von Mails.


    ALLES andere wird von anderen Diensten besorgt.
    Man KANN für einen dieser Teile fetchmail verwenden, oder halt auch nicht.
    (Ich mache das nicht)


    Man KANN postfix nur auf Port 25 betreiben, muss es aber nicht.
    Schreibe dir entsprechende Zeilen in die master.cf und er wird mit TLS auf den gewünschten Ports werkeln.


    Und öffne die Firewall auf Port 25 und er wird mit jedem Mailserver draußen reden.
    Das hat nichts mit postfix selbst zu tun. Das ist die Natur von TCP/IP.
    Postfix ist per Default NICHT auf localhost gebunden. Aber auch das könntest du natürlich machen.


    Wenn du mit richtigen Domains arbeitest und nach draußen mailst oder von dort empfängst, macht nur letsecrypt (oder jedes andere gekaufte Zertifikat) Sinn.
    Ein Selbstgebasteltes werden die allermeisten anderen Mailserver mit dem Mittelfinger honorieren.


    Damit Dovecot die Authetifizierung korrekt durchführen kann, MUSS die DB die korrekten Daten zurückliefern.
    Dazu MUSS dein Dovecot eine korrekte SQL- Anweisung absetzen, deren Resultat dann in entsprechende Variablen für den jeweiligen Request umgesetzt werden.
    Das muss syntaktisch korrekt u.a. die Adresse des Speicherplatzes dieses Postfachs beinhalten.
    Du brauchst also noch ein korrektes SQL Statement.
    Das schreibt man sich meist in eine eigene Datei, die man AUTH-SQL-halligalli nennt und dann in der enstprechenden Teil-Konfig Datei angibt.


    Wenn das mal irgendwann in den Grundzügen funktioniert, brauchst du noch DMARC und DKIM samt entsprechenden DNS- TXT Records.
    Sonst wollen die allermeisten anderen Mailserver noch immer nicht mit deinem reden.


  • Also dank dieser Lektüren kann ich nun zumindest schonmal E-Mails raus senden:

    Der Dovecot stört sich noch am sieve, warum auch immer:


    Code
    zeus:~ # ls -lha /var/lib/dovecot/sieve/
    total 8.0K
    drwxrwxrwx 2 vmail vmail 4.0K Feb  9 01:49 .
    drwxr-x--- 3 root  root  4.0K Feb  9 01:49 ..

    Keine Ahnung was dieses sieve Teil überhaupt sein soll. Anscheinend verhindert das, dass Nachrichten in der Mailbox landen:

    Code
    zeus:~ # su thomas
    zeus:/root$ mail -f /var/mail/thomas
    Heirloom mailx version 12.5 7/5/10.  Type ? for help.
    "/var/mail/thomas": 0 messages
    ?

    Diesen komischen Compiler, also sievec habe ich auch schonmal auf das beschriebene Verzeichnis laufen lassen, ändert nichts.

    Diese Signatur ist derzeit nicht verfügbar.

    Für den Inhalt des Beitrages 129218 haftet ausdrücklich der jeweilige Autor: derwunner

  • Mit diesen Sieves siebst du Mails.
    Es gibt dafür eine kleine eigene Syntax. Damit kann man dann alle eingehenden (oder auch ausgehende, wenn so konfiguriert) Mails sortieren.
    Für gewöhnlich Mails von Chef, Eheabschnittsgefährtin und Finanzamt nach /dev/null. Von Kirche, Gemeinde und Verwandten nach Spam.


    Dein Dovecot User muss natürlich Zugriff auf die jeweiligen Ordner haben.
    Das ist ausgeschlossen, wenn in übergeordneten Verzeichnissen nur root Rechte hat.
    (Ich hoffe mal, dass dein Postfix/Dovecot User NICHT in der Gruppe root ist)

  • Dein Dovecot User muss natürlich Zugriff auf die jeweiligen Ordner haben.


    Das ist ausgeschlossen, wenn in übergeordneten Verzeichnissen nur root Rechte hat.
    (Ich hoffe mal, dass dein Postfix/Dovecot User NICHT in der Gruppe root ist)

    Nein Gruppe und Benutzer sind vmail (laut dem ersten Tutorial, habe mich hauptsächlich an das gehalten). Ok danke, jetzt sagt er mir mail gespeichert. Wenn ich aber wieder mail -f wie oben aufrufe, dann sagt er mir wieder 0 messages. Passt da etwas nicht?


    Es kann auch sein, dass noch Ubuntu Überbleibsel da sind, weil die Backups von einem Ubuntu Server stammen, die ich auf den jetzigen openSUSE Server eingespielt habe. Deswegen gab es bei mir z. B. auch /var/lib/vmail, obwohl /var/lib/mail verwendet wird.


    Was bisher schon geht:

    • Dovecot:

      • den musste ich in der Config sein eigenes Ausführungsverzeichnis mitteilen
      • first_valid_userid und first_valid_gid musste ich ändern auf fast alles, damit ich sowohl von der Konsole mails versenden als auch die mit normalen Accounts abrufen kann. Das beißt sich irgendwo, oder nicht?
    • Postfix
    • Let's Encrypt auf die vhosts:

      • zum Aktivieren des Zertifikates musste ich den apache auf Port 80 kurz abschalten
      • wie gesagt nur bei den vhosts bisher, bräuchte es aber wahrscheinlich auch für mail.wunner-software.de?
      • musste erstmal aktualisiert werden, da die Version von openSUSE aus dem Repo veraltet ist und einen Zertifikatstyp ausstellen will, den Let's Encrypt nicht mehr unterstützt. Dadurch kam ich zu certbot-auto
    • Reverse DNS läuft auf mail.wunner-software.de (auf der Hautpdomain wollte es GMX nicht, nachdem es damit ging, habe ich es lieber so gelassen)
    • die üblichen CNAME DNS Einträge beim Domain Provider (ist bei mir anders als der Server Provider, damit man unabhängiger ist)
    • lokaler hostname ist zeus, FQDN ist mail.wunner-software.de. Den lokalen kann man doch wählen wie man will, oder?


    Nächste Schritte werden sein:

    • Webmailer
    • Thunderbird Einrichtung
    • Fail2Ban darauf aktivieren, wird allerdings noch etwas dauern
    • DNS Server lokal wie im 2. Tutorial. Dazu hätte ich eine Frage: Wäre hier nicht dnsmasq besser als unbound?
    • SPKIF / SPDF oder wie das heißt aktivieren. Das muss vermutlich, wenn ich das 2. Tutorial richtig verstehe dann im eigenen DNS Server erfolgen, oder?
    • E-Mail Graylisting bringt soviel ich weis nicht viel, deswegen würde ich nur Blacklisting betreiben mit spamhaus.net

    Ich sehe noch folgende Meldungen bei eingehenden Mails im Dovecot:


    Passt das so? Ich habe penibel auf die Configs aus dem 1. Tutorial geachtet

    Diese Signatur ist derzeit nicht verfügbar.

    Für den Inhalt des Beitrages 129226 haftet ausdrücklich der jeweilige Autor: derwunner

  • Nein Gruppe und Benutzer sind vmail (laut dem ersten Tutorial, habe mich hauptsächlich an das gehalten). Ok danke, jetzt sagt er mir mail gespeichert. Wenn ich aber wieder mail -f wie oben aufrufe, dann sagt er mir wieder 0 messages. Passt da etwas nicht?

    Was ist denn das mail, das da läuft?



    Es kann auch sein, dass noch Ubuntu Überbleibsel da sind, weil die Backups von einem Ubuntu Server stammen, die ich auf den jetzigen openSUSE Server eingespielt habe. Deswegen gab es bei mir z. B. auch /var/lib/vmail, obwohl /var/lib/mail verwendet wird.

    Wo du was speicherst, ist völlig egal.


    Ich lasse -egal welcher Dienst- Daten selten bis nie in den Default- Verzeichnissen. Egal, ob Docker, postgres,mail oder Halligalli.
    Für Mails habe ich ein eigenes LV. Macht das Leben leichter.


    Was bisher schon geht:

    • Dovecot:

      • den musste ich in der Config sein eigenes Ausführungsverzeichnis mitteilen
      • first_valid_userid und first_valid_gid musste ich ändern auf fast alles, damit ich sowohl von der Konsole mails versenden als auch die mit normalen Accounts abrufen kann. Das beißt sich irgendwo, oder nicht?

    Ein Mailsystem ist nun mal eine sehr komplexe Geschichte.


    Es gibt dir viele Freiheiten, was aber sehr viel Wissen/Lernen voraussetzt.


    Ich verwende genau EINE Uid und genau EINE Gid.
    Macht das Leben leichter,
    wenn man es schafft, es so zu konfigurieren.


    • Postfix
    • Let's Encrypt auf die vhosts:

      • zum Aktivieren des Zertifikates musste ich den apache auf Port 80 kurz abschalten

    Nein, musst du nicht.
    Es gibt dafür für den jeweiligen Webserver Plugins, die das für dich erledigen.
    Du musst lediglich einen sogenannten "Deploy-hook" verwenden.
    Das ist ein Shellscript, das ausgeführt wird, wenn Letsencrypt Zertifikate erneuert hat. Es liegt unter/etc/letsencrypt/renewal*
    (Hängt von dem tatsächlichen Certbot ab. Es gibt diverse Clientprogramme und davon dann jeweils diverse Versionen (oder auch nicht))
    Fragen Sie Ihre lokale Doku ihres Certbot Clients.


    --cut---


    Ich lese ganz bestimmt nicht deine Tutorials, um festzustellen, was du da so treibst. Ich klicke die nicht einmal an.


    Was aber jetzt schon klar ist, ist die Tatsache, dass die Tore zur Hölle schon weiter aufgemacht hast, als der Berliner Flughafen lang ist.
    Es ist keine gute Idee bei einem Mailserver mit eigenem DNS- Gedöns noch mehr Baustellen zu öffnen.
    Das kannst du -falls du täglich 240Stunden (KEIN Schlechtschreibfehler!!) lernst- frühestens in drei Jahren wagen.
    Die Blacklist- Server dürften jetzt schon ein sehr misstrauisches Auge auf deinen Server werfen.
    Lass die DNS Spielchen!!!


    Bei deinem Provider brauchst du für deinen Mailserver im DNS einen A (respektive AAAA) Record und ein paar TXT- Records für DMARC und DKIM.
    Sonst nichts!!!
    Und natürlich für IPv4 und v6 jeweils EINE ReverseDNS Eintrag. (Falls du beide Protokolle bedienen möchtest)
    Sonst GAR NICHTS!!!!


    Auf den ReverseDNS Eintrag hast du so- oder so keinen Zugriff. Das macht dein Provider und sonst niemand.
    Außer du hättest tatsächlich einen eigenen authoritativen DNS Server für deine Domains.
    Solltest du so werkeln, ist das Spamming und Mistbrauch®™ mit Anlauf, Vorsatz und Ansage.


    Außerdem fehlt dir ein ganz wesentliches Grundverständnis des Domain- Mappings bei Mail-Systemen.


    Ich habe ALLE Domains als virtuelle Domains eingerichtet. In meiner main.cf lautet die wichtige Zeile mydestinations = localhost.
    Da steht KEINE EINZIGE Domain!


    Und ich kann ALLE Domains bequem in einer DB verwalten. Dazu habe ich zwei Scripte: Eines zum Hinzufügen eines Mailaccounts und eines zum Ändern des Spasswortes.
    Die lokalen User sollen NICHT einfach so außerhalb des Hostes rummailen können. Aber jeder User KANN lokal einfach Mails senden (Aber eben nicht nach draußen). Dafür gibt es aber auch für die "Hauptdomain" (was für ein blödsinnig irreführendes Wort!!) einen jeweiligen Usereintrag (FALLS ich möchte, dass ein Shelluser account auch einen "echten" Mailaccount hat)
    Eine saubere Trennung! Und die User können ihre normalen Mailclients normal verwenden, ohne dass ich auf dem Server lokale DNS Klimmzüge samt eingebauten Sicherheitslücken bräuchte.


    Es ist völlig egal wieviele und welche Domains du auf einen Server mappst.
    Es gibt nur einen ganz wichtigen Punkt: Öffentliche Domains brauchen öffentliche DNS- Einträge - "private" Domains DÜRFEN NIEMALS nach außen kommuniziert werden.
    Ich verwende für meine VPNs Phatasie- Domains mit der TLD Endung .vpn
    Damit habe ich innerhalb aller VPNs bequeme Namensauflösung OHNE jemals mit irgendwelchen "echten" Domains zu kollidieren.


    Und nochmal: Lasse die Finger von DNS Spielereien! Kümmere dich lieber zuerst um DKIM und DMARC.
    Ohne die beiden darfst du draußen nur ganz, ganz kurz mitspielen.
    Und ziehst die Bösen Buben an, wie das Licht die Motten.

  • Nachtrag zu:
    Was ist das für ein mail, das da läuft?



    So ziemlich jede Installation hat ein Programm namens mail.
    Und auf so ziemlich jedem System ist dieses mail nur ein Link auf ein tatsächliches Mailprogramm.
    Und solche CLI Mailprogramme gibt es, wie immer, ohne Ende.


    Es ist also per se nie klar, welches Mailprogramm da tatsächlich am Start ist.
    Man folge mal einfach diesen Links!

    Alle diese Programme sind im Prinzip vollwertige Mailclients.
    Und weil diese Programme schon älter sind, als die meisten hier, haben sich unglaublich viele Optionen angesammelt, die ja auch nötig sind, um alle Fähigkeiten, die ein Thunderbird bietet, ebenfalls anzubieten.
    Ja, man kann mit diesen Dingern auch verschlüsselte Mails versenden, empfangene entschlüsseln, IMAP- Server abfragen und so weiter und so fort.


    Aber eben nur, wenn das System für Mails korrekt eingerichtet ist.
    Sonst kann man nur "lokale" Mails damit empfangen und versenden.


    Ein 12-semestriges Studium der jeweiligen man mailx macht einem den Umgang mit diesen Dingern leicht.


    Erst danach erschließt sich einem, dass es völlig normal ist, dass eine bereits gelesene Mail nicht mehr angezeigt wird.
    Dass es fast überhall die Option -h für "zeige mir alle -header" gibt.
    Dass man die Dinger auch im interaktiven Modus verwenden kann. Und, und, und.
    Aber eben nach eingehendem Studium.


    Und natürlich sollte man das "richtige Manual" des tatsächlichen "Mailers" lesen.

  • Also meine DNS Einträge sehen nun so aus (vom Anbieter, nicht von mir):


    @Berichtigung mail beziehungsweise dessen Weiterentwicklung mailx ist ein Programm zum Senden von E-Mails von der Konsole aus. Anscheinend eben auch zum Abrufen der Mailboxen. Das Abrufen der E-Mails klappt allerdings mittlerweile mit Thunderbird, keine Ahnung warum dort 0 Mails angezeigt werden. Das Programm wird soviel ich weis benötigt, um Mails mit PHP versenden zu können, siehe auch PHP: mail - Manual


    Sieve habe ich eingerichtet und es bring noch folgenden Fehler, wenn man mit Telnet auf den Port 4190 geht:


    Code
    NO "Error in MANAGESIEVE command received by server."

    Meine /etc/dovecot/conf.d/20-managesieve.conf sieht so aus:



    Diese Signatur ist derzeit nicht verfügbar.

    Für den Inhalt des Beitrages 129230 haftet ausdrücklich der jeweilige Autor: derwunner

  • Zum mail Programm, siehe oben den Nachtrag.


    PHP braucht kein Mail. Höchstens, wenn die PHP leute ihren Job nicht beherrschen.
    (Wovon ich prinzipiell immer ausgehe. Ich halte PHP für ein vorsätzliches Sicherheitsloch und wenig geeignet, um anständige Webseiten zu erzeugen.)


    Es wäre sinnvoller die Logs zu lesen, statt Ausschnitte aus vielleicht ursächlichen Conf- Files zu posten.


    Einer der häufigsten Gründe für diese Meldung dürfte eine schräge Konfiguration von TLS sein.
    Setze dein Dovecot in den Debugmodus und lies die Logs.
    Poste entsprechende Auszüge davon hier.


    Und warum willst du überhaupt Sieves den Usern zugänglich machen?
    Reicht es nicht, wenn auf dem Server die Sieves von root werkeln und die User ihre Clients nach ihrem Gusto einstellen?
    (Die meisten verwenden nicht einmal ihre "lokal-privaten" Sievemöglichkeiten.
    Warum sollen die auch noch auf dem Server rumspielen dürfen, wenn sie es schon lokal nicht gebacken kriegen?
    Was versprichst du dir davon?


    Und was macht DMARC ohne DKIM für einen Sinn?
    Absolut gar keinen.


    Nich an den Goodies rumfummeln, die niemand braucht.
    Erst die Basics korrekt hinbiegen!

  • Ich habe noch wenig Ahnung was dieses sieve macht. Es ist anscheinend dafür da E-Mails automatischen zu verschieben. Also im Paradebeispiel Spam E-Mails in einen Spam Ordner. Ich bin dabei nach einem Tutorial vorgangen. Was es für einen Sinn macht, das dem Benutzer zu geben, kann ich nicht beantworten.


    Also, bei DKIM bin ich nach folgender Anleitung vorgegangen (die sehr ausführlich ist über alle E-Mailserver Themen und CentOS sollte näher an openSUSE sein als Debian & Co.): DKIM - Domain Key Identified Mail unter CentOS 7.x [Linux - Wissensdatenbank]
    Amavis, ClamAV, spamassassin sind soweit installilert und eingerichtet. Allerdings gibt es in den openSUSE Repos keinen milter?! Es gibt dort nur das Paket amavisd-new

    Diese Signatur ist derzeit nicht verfügbar.

    Für den Inhalt des Beitrages 129331 haftet ausdrücklich der jeweilige Autor: derwunner