Fork me on GitHub

Programming, Internet & more

Postfix unter Debian 6 einrichten

Nachdem ich 2009 schon einmal beschrieben habe, wie man am besten IMAP mit Postfix einrichtet möchte ich nun die eigentliche Postfix Installation beschreiben.

Insbesondere Postfix so einzurichten, dass auch Mails an andere Domains verschickt werden können ist nicht ganz einfach.

Voraussetzungen

* Ich werde von einem Debian 6 System ausgehen

Installation

Um Postfix mit SMTP-AUTH zu installieren kann der apt-get Befehl verwendet werden.

apt-get 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

Als erstes sollte in den Konfigurationsordner gewechselt werden.

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
vi /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

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
Category: linux

Leave a Reply

Your email address will not be published. Required fields are marked *