Einloggen Registrieren Nutzerliste
Linux From Scratch Ubuntu (CD-Mirror)
Gilde êVoluTion Raid Happy Tree Friends Raid MCToo Gilde Saints and Sinners
Ereignis-Kalender Metadaten Passwörter

Um Mails von einem Rechner, der mit Debian oder Ubuntu läuft, zu verschicken, kann man Postfix mit folgender Konfiguration einrichten:

Ich gehe davon aus, dass Postfix schon installiert ist. Die Server von GMail setzen für eine erfolgreiche Verbindung TLS-Verschlüsselung voraus. Das ist schon in Debians Postfix reinkompiliert, also müssen wir uns nur darum kümmern, gültige Zertifikate zu haben, damit die Verbindung zu Stande kommen kann (und natürlich braucht man einen gültigen GMail-Account, aber das ist wohl selbstredend Wink ).

1. Installieren der notwendigen Software
sudo aptitude install postfix libsasl2 sasl2-bin libsasl2-modules procmail

2. Erstellen einer "Certificate Authority" (=CA)
Wir müssen einige temporäre Dateien anlegen, deshalb sollte man am besten im home-Verzeichnis arbeiten (oder auch unter /tmp).
Die CA erstellen wir mit folgendem Befehl:

/usr/lib/ssl/misc/CA.pl -newca

Drücken Sie einfach Enter, wenn Sie nach dem Namen gefragt werden. Die CA wird dann in einem neuen Unterverzeichnis namens demoCA abgelegt.

Sie werden im Folgenden nach einigen Informationen gefragt, z.B. der Passphrase. Dies ist ein Passwort, das Sie später brauchen, wenn Sie Zertifikate mit der CA signieren wollen. In den anderen Werte können Sie eintragen, was Sie wollen (und was stimmig ist), aber auch diese Werte werden in einem späteren Schritt nochmals gebraucht. Also beides gut merken und alle Felder sinnvoll ausfüllen!

3. Erstellen eines Server-Zertifikats
Die Werte in diesem Schritt müssen exakt mit Ihren Angaben aus Punkt 2 übereinstimmen. Erstellen Sie das Zertifikat folgendermaßen:

openssl req -new -nodes -subj '/CN=bheil.net/O=Schlumpfhausener Feuerwehr/C=DE/ST=Germany/L=Schlumpfhausen/emailAddress=kontakt@bheil.net' -keyout FOO-key.pem -out FOO-req.pem -days 3650

Wie gesagt, die Werte für CN, O, C, ST, L und emailAddress müssen exakt den Werten aus Punkt 2 entsprechen.

4. Signieren des Zertifikats
Nun muss das Server-Zertifikat aus Punkt 3 noch mit der CA aus Punkt 2 signiert werden:

openssl ca -out FOO-cert.pem -infiles FOO-req.pem

Sie werden dann aufgefordert, die Passphrase aus Punkt 2 einzutragen. Alle anderen Fragen können mit "Y" beantwortet werden.

5. Kopieren des Zertifikats in den Postfix-Ordner
Da die Konfiguration von Postfix unter /etc/postfix liegt, sollten auch die Dateien des Zertifikats dort sein. Ebenso müssen die Rechte angepasst werden, damit z.B. der Key nur vor Postfix lesbar ist.

Kopieren Sie also die Dateien und passen Sie die Rechte an:
cp demoCA/cacert.pem FOO-key.pem FOO-cert.pem /etc/postfix
chmod 644 /etc/postfix/FOO-cert.pem /etc/postfix/cacert.pem
chmod 400 /etc/postfix/FOO-key.pem

6. GMail's CA bekannt machen
GMail verwendet das Thawte Premium Server CA. Dieses CA muss ans Ende der Datei /etc/postfix/cacert.pem angehängt werden. Dazu kann man unter www.thawte.com/roots die CAs von Thawte herunterladen. Wir brauchen die Datei ThawtePremiumServerCA_b64.txt. Den Inhalt dieser Datei kann an die Datei cacert.pem folgendermaßen angehängt werden:

cat ThawtePremiumServerCA_b64.txt >>/etc/postfix/cacert.pem

7. Die Postfix-Konfiguration
Postfix muss auch noch so konfiguriert werden, dass automatisch beim Versenden der SMTP-Server von GMail verwendet wird und zu diesem sofort eine verschlüsselte Verbindung geöffnet wird.
Dies ist eine Beispielkonfiguration, die nicht vollständig sein muss (aber für mich funktioniert):
transport_maps = hash:/etc/postfix/transport
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_tls_cert_file = /etc/postfix/FOO-cert.pem
smtp_tls_key_file = /etc/postfix/FOO-key.pem
smtp_tls_session_cache_database = btree:/var/run/smtp_tls_session_cache
smtp_use_tls = yes
smtpd_tls_CAfile = /etc/postfix/cacert.pem
smtpd_tls_cert_file = /etc/postfix/FOO-cert.pem
smtpd_tls_key_file = /etc/postfix/FOO-key.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:/var/run/smtpd_tls_session_cache
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
smtpd_sasl_auth_enable = no
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtpd_sasl_local_domain = $myhostname
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
## Gmail Relay
relayhost = [smtp.gmail.com]:587

Des weiteren muss man noch das transport-File sowie die Datei mit den Anmeldedaten anpassen. Im transport-File unter /etc/postfix/transport trägt man folgendes ein (notfalls die Datei erstellen):

gmail.com smtp:[smtp.gmail.com]:587

dann noch eine zweite Datei /etc/postfix/sasl_passwd erstellen mit folgendem Inhalt:

[smtp.gmail.com]:587 username@gmail.com:__password__

Hierbei muss username@gmail.com sowie __password__ durch die eigenen Anmeldedaten ersetzt werden. Man sollte evtl. noch für die richtige Berechtigung bei dieser Datei sorgen - sie sollte nicht unbedingt systemweit lesbar sein, da sonst für jeden Nutzer die eigenen Login-Daten ersichtlich sind.

Die letzten beiden Dateien müssen noch gehasht werden, damit sie in den Format vorliegen, in dem Postfix diese Dateien erwartet:
postmap sasl_passwd && postmap transport

8. Tests
Nach einem Neustart von Postfix durch

sudo /etc/init.d/postfix restart

kann man eine Testmail versenden:

mail -s "TEST" username@gmail.com

(Ein einzelner Punkt in einer Zeile schließt die Eingabe des Bodys ab!)

In der Logdatei /var/log/mail.log sollte etwas ähnliches wie das hier stehen, wenn die Mail korrekt versandt wurde:

Aug 8 10:10:14 bheil postfix/smtp[16543]: 50CC06872B: to=<kontakt@bheil.net>, relay=smtp.gmail.com[209.85.135.111]:587, delay=5.9, delays=0.11/0.04/1/4.7, dsn=2.0.0, status=sent (250 2.0.0 OK 1218197399 t10sm1790990muh.17)

Wichtig ist das status=sent; steht etwas wie status=bounced, dürfte es Probleme mit TLS, also der Verschlüsselung, geben! Zur Fehlersuche kann man in Postfix die Zeile smtp_tls_loglevel = 1 an die main.cf anfügen. Dann steht mehr über den Verbindungsaufbau zum SMTP-Server in der Logdatei und man kann TLS-Fehler analysieren.

9. Abschluss
Eingentlich war's das schon, aber man sollte nicht vergessen, die temporären Dateien wieder zu löschen, die im home-Verzeichnis angelegt wurden:
rm FOO-req.pem FOO-cert.pem FOO-key.pem && rm -r demoCA/

Diesen Artikel bookmarken

BlinkList  del.icio.us  Folkd  Furl  Google  Linkarena  Mister Wong  OneView  Yahoo MyWeb  YiGG
Klicken Sie auf das Symbol Ihres Bookmark-Service!

Tags zu diesem Artikel

Kommentar schreiben


  
  
  
  
  

Weitere Artikel  Weitere Artikel von diesem Tag