| FOTO | AUTO | EDV | AUDIO |

Postfix als Mailserver

Wollen wir von unseren Server Systemmails an eine Mailadresse wie beispielsweise paul@yahoo.de senden, muss ein Mailserver installiert werden. Die beiden Klassiker sind Sendmail und Postfix.
Sendmail ist deutlich leistungsfähiger und daher in größeren Unternehmen zu empfehlen. Postfix dagegen ist aber deutlich einfacher zu konfigurieren und reicht für kleinere und mittlere Netze völlig aus. Hier wird Postfix über 1und1 erklärt.

Installation

yum install postfix libsasl2-2 sasl2-bin libsasl2-modules
Im Normalfall wird Postfix nun schon die ersten Angaben haben wollen. Ich nehme meist die folgenden Antworten:

General type of mail configuration: Internet site
System mail name: mail.slackspace.de

Postfix hat nun schon einen Konfigurationsordner in /etc/postfix angelegt.

Konfiguration

Zuerstin den Konfigurationsordner wechseln.

cd /etc/postfix

Danach kann die Datei main.cf geöffnet werden. Nun sollte dort der Eintrag smtpd_sasl_local_domain zu finden sein. Die nachfolgenden Einträge werden nun wie folgt geändert:

smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
Sollte die Einträge nicht vorhanden sien, so können diese auch einfach am Ende der Datei eingefügt werden.

Nun geht es darum die entsprechende SMTP Konfiguration zu erstellen. Dazu erstellen wir die Datei smtpd.conf im Verzeichnis /etc/postfix/sasl wie folgt:

touch /etc/postfix/sasl/smtpd.conf

mit folgendem Inhalt:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
Danach kommen die Schlüssel und Zertifikate dran. Dazu müssen wir zuerst den Ordner /etc/postfix/ssl erstellen und anschließend den Schlüssel erzeugen.

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024

Bei der Schlüsselerzeugung wird eine Passphrase verlangt. Diese sollte selbstverständlich sicher sein. Achtung: Merkt euch die Passphrase, die wird für den nächsten Schritt gebraucht.

Als nächstes erzeugen wir das Zertifikat:

chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr

Nun muss die Passphrase vom vorherigen Schritt eingegeben werden. Anschließend können noch paar Felder ausgefüllt werden (bei jeder Frage funktioniert jedoch auch).

Danach kann da Zertifikat signiert werden. Jetzt wieder die Passphrase von oben benutzen.

openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650

Jetzt müssen die Zertifikate und Schlüssel noch Postfix mitgeteilt werden. Dazu wird wieder die Datei /etc/postfix/main.cf editiert und folgendes eingefügt:

smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

Nun muss noch der SASL-Auth Daemon konfiguriert werden:

mkdir -p /var/spool/postfix/var/run/saslauthd
vim /etc/default/saslauthd

die Zeilen START und OPTIONS sind zu ersetzen durch:

START=yes
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

Danach müssen wir noch den Benuzter postfix der Gruppe sasl hinzufügen.

adduser postfix sasl

Die Datei /etc/postfix/sasl_passwd enthält folgenden Eintrag:

smtp.1und1.de user:pass

SMPP-Server, user und pass sind durch die richtigen Einträge zu ersetzen. Die Rechte der Datei sollten (-rw——) root.root sein. Konvertieren Sie die Datei in .db-Format:

postmap /etc/postfix/sasl_passwd 

Abschlussarbeiten

In der Datei /etc/postfix/main.cf gibt es einige wichtige Einstellungen, die nicht zu vergessen sind:

myhostname = mail.slackspace.de   #Name des Mailservers, dieser Name muss auch in Mail Clients eingestellt werden
mydestination = localhost, slackspace.de, mail.slackspace.de   #Hier muss unbedingt die eigene Domain aufgeführt sein
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128      #Sollte nur lokal eingestellt sein um einen offenen Relay zu verhindern

Anschließend kann Postfix und der SASL-Auth Daemon neugestartet werden:

/etc/init.d/postfix restart
/etc/init.d/saslauthd start

Um auch von der Shell oder aus einem Script heraus Mails verfassen zu können empfehle ich die Installation der Mail-Tools

yum install mailutils

Wenn Postfix über einen Relay von Google arbeiten soll, gibt es hier eine Anleitung: http://www.deimeke.net/dirk/blog/index.php?/archives/2989-GMail-als-Relay-mit-Postfix-....html


Alte Konfig

Konfiguration

Zentrale Konfigurationsdatei ist /etc/postfix/main.cf. In dieser Datei steht alles Wesentliche, was postfix wissen

relayhost = [smtp.1und1.de]
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps =  hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous

Die Datei /etc/postfix/sasl_passwd enthält folgenden Eintrag:

smtp.1und1.de 
 mail@ihre-webhosting-domain.de:mypass
mail@ihre-webhosting-domain.de und mypass sind durch den Benutzernamen und das dazugehörige Passwort zu ersetzen.
Die Rechte der Datei sollten (-rw——) root.root sein.
Konvertieren Sie die Datei in .db-Format:

postmap /etc/postfix/sasl_passwd 

und starten Sie Postfix erneut:

/etc/init.d/postfix reload

Der Linuxserver muss 1&1 vorgaukeln, Domänenmitglied zu sein. Heißt meine 1&1 Mailadresse also Peter@Meinedomain.net, müssen Folgende Einstellungen stimmen:

  • in /etc/samba/smb.conf muss die richtige Domäne eingetragen sein
  • in /etc/sysconfig/network muss der FQDN Servername@Meinedomain.net stehen
  • in /etc/hosts muss die lokale IP Adresse und die 127.0.0.1 zum FQDN aufgelöst werden.