Anleitung: Postfix Mails an einen Relay Mailserver umleiten

Gestern wurde ich gefragt ob ich eben schnell einen Postfix Mailserver so umkonfigurieren kann damit er seine Mails an diesen Relayserver (Relay Mailserver) schickt und dieser sie dann ausliefert. Klar kann ich.

Doch was ist der Sinn dahinter? Eigentlich relativ Simpel zu erklären. Man hat einen bestehenden Mailserver mit einem bestehendem Account der das Senden ins Internet zulässt. Um nun nicht ständig die SPF Einträge anzupassen oder 5000 Server ständig konfigurieren zu müssen, kann so eine Konfiguration ziemlich nützlich sein. Damit werden im Prinzip alle Mails über den vorhandenen Relay Mailserver verschickt wie wenn Ihr eine Mail mit eurem Outlook verschicken würdet. Das Outlook wäre symbolisch eben ein Postfix Server.

Aber fangen wir an. Was brauchen wir um Postfix als Relay einzurichten?

  • Einen Mailserver der die E-Mails von unserem System annimmt
  • Einen E-Mail Account auf dem Relayserver
  • Einen Debianserver mit einer funktionierenden ausgehenden Internetverbindung

Fangen wir also an.

Zuerst installieren wir also mal alles was wir auf unserem Debian Server, der später seine Mails an den Relay übergeben soll, benötigen.

[code] apt-get install postfix mailutils libsasl2-modules [/code]

Während der Installation von werdet Ihr gefragt wie Postfix installiert werden soll. Wählt hier „Smarthost“.

Als nächstes erstellen wir Passwort Datei die Postfix zur Anmeldung am Relay Mailserver benutzen wird. Diese wird unter /etc/postfix/relay_passwords gespeichert und sollte so aussehen:

[code] mail.euer-server.com emailaccount@euer-server.com:euerpasswort [/code]

Anschließend noch die Rechte einschränken damit niemand auf die Datei zugreifen kann.

[code] chmod 600 /etc/postfix/relay_passwords [/code]

Als nächstes wird die Datei gehasht

[code] postmap /etc/postfix/releay_passwords [/code]

Konfigrationsänderungen

Nun passen wir die /etc/postfix/main.cf an damit auch alles zu dem Relay Mailserver geht.

[code]

relayhost = mail.euer-server.com:587

smtp_use_tls=yes

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/relay_passwords

smtp_sasl_security_options =

[/code]

Die Rot markierte stelle müsst Ihr natürlich mit eurem Server anpassen.

Eure main.cf sollte insgesamt also in etwa so aussehen

[code]
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no
append_dot_mydomain = no
readme_directory = no
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = DL-Host Testserver
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination =  localhost
relayhost = mail.euer-server.com:587
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
smtp_sasl_password_maps=hash:/etc/postfix/relay_passwords
smtp_sasl_auth_enable=yes
smtp_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_enforce_tls = yes
smtp_tls_security_level = may
[/code]

Wie Ihr seht wurde hier lediglich das Relaying und TLS eingefügt.

Zu guter letzt, Testing des Relay Mailversands

Bevor man nun wild drauf los Mails verschickt, sollte man das ganze einmal testen

[code]

postfix check

postfix restart [/code]

Damit sind nun alle gemachten Änderungen auch aktiv und sofern Ihr nicht irgendwo einen Fehler beim Check der Konfigurationsdateien bekommt, ist auch alles in Ordnung.

Ob auch alles funktioniert könnt Ihr mit einer Test E-Mail überprüfen.

[code]
echo „Das ist eine Testmail“ |mailx -s „Testbetreff“ empfänger@mail-adresse.com
[/code]

Man sollte hier unbedingt sagen, dass ein blindes copy pasten sehr gefährlich sein kann. Es gibt Millionen Wege sowas einzurichten und auch noch Millionen weitere Möglichkeiten das weiter einzuschränken und noch weiter abzusichern. Diese Konfiguration schickt nun alle Mails über den Relay Mailserver anstelle mit der lokalen IP direkt ins Netz. Die Konfiguration verwendet auch TLS und blockiert alle Anonymen Mails. Man kann dies noch weiter einschränken und auch unterschiedliche Relayserver definieren. In meinem Fall hat das Debiansystem keine direkte Verbindung vom Internet zum Server also relativ gefahrlos. So oder so ähnlich kann man das auch mit den VPS von DL-Host lösen, wer also noch eine Lösung sucht… 😉 

Als einfaches Beispiel sollte das jedoch ausreichen 🙂 

Fragen und Verbesserungen sind natürlich immer gern gesehen und können einfach als Kommentar hinterlassen werden.

Share it!Share on FacebookEmail this to someoneShare on Google+Tweet about this on Twitter

Schreibe einen Kommentar