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-modulesIm 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_destinationSollte 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 LOGINDanach 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.