Limetten-HeaderText-Header

Postfix

Eine kurze Einführung in das mächtige Tool Postfix. Generelles zu den beteiligten Protokollen (SMTP, POP3, IMAP,...) findet sich hier.

Postfix einrichten

Hier findet sich eine gute Anleitung: http://www.postfix-howto.de/installation/index.htm Pfeil.
Oder hier: http://www.schiessle.org/howto/debian-imap-howto/debian-imap-howto.html Pfeil

Weitere Literatur:

  • Heinlein, Peer POP3 und IMAP
  • Heinlein, Peer Das Postfix-Buch

Befehle zur Verwaltung

Verwaltung der Tabellen

  • postmap -[iv] /etc/postfix/virtual Konvertiert eine Tablle (hier: virtual) vom Textformat in das Binärformat. Die Parameter stehen für incremental, verbose.
  • postmap btree:/etc/postfix/virtual Konvertiert eine Tablle (hier: virtual) vom Textformat in einen Binärbaum.
  • postmap -q <key> /etc/postfix/virtual Sucht nach einem Schlüssel in der Datenbank.
  • postmap -d <key> /etc/postfix/virtual Sucht nach einem Schlüssel und löscht den zugehörigen Eintrag (aber nicht den zugehörigen Eintrag in der ASCII-Datei).
  • postmap -s /etc/postfix/virtual Listet alle Einträge in der Datenbank auf.

Die Postfächer und Weiterleitungen werden z.B. unter /etc/postfix/vhosts definiert. Falls nicht die Textdateien sondern schnellere hash oder btree Formate zum Einsatz kommen sollen, muss aus der Textdatei per postmap (s.o.) eine entsprechende Datei angelegt werden. Für Aliase, die in /etc/aliases definiert werden, übernimmt das der Befehle newaliases.

Verwaltung der Konfiguration

  • postconf -n Listet alle Einstellungen aus main.cf, die nicht den Default-Werten entsprechen.
  • postconf -d Gibt die Default-Werte von Postfix an.
  • postconf <variable> Zeigt den Inhalt einer Variable an.
  • postconf -e "variable = wert" Setzt den Wert einer Variablen in main.cf. (Danach ist ein postfix reload notwendig.)

Verwaltung der Emails

  • postsuper -d <queue_id> Löscht die Mail mit angegebener queue_id.
  • postsuper -h <queue_id> Parkt die Mail mit angegebener queue_id in der hold Mail-Queue.
  • postsuper -H ALL Gibt alle Mails aus der hold Mail-Queue wieder frei.
  • postsuper -r <queue_id> Liefert die Mail mit angegebener queue_id neu in die Mail-Queue ein.
  • postsuper -p Sucht nach übrig gebliebenen temporären Dateien und löscht diese.
  • postsuper -s Führt einen Struktur -Check durch. (Wichtig nach postsuper -s)

Verwaltung der Queues

  • postqueue -f (alias postfix flush) Liefert Mails in der deferred -Queue wieder aus.
  • postqueue -i <queue_id> Liefert die Mail mit queue_id aus.
  • postqueue -p (alias postfix mailq) Gibt eine Übersicht über alle Queues aus.

Auslesen der Emails

  • postcat /pfad/zur/datei Liest die Mail aus der angegebenen Datei aus.
  • postcat -q <queue_id> Liest die Mail mit der angegebenen queue_id aus.

Verwaltung des Postfix-Servers

Folgende Argumente sind für postfix möglich:

  • postfix [start|stop|abort|reload] (abort stoppt im Gegensatz zu stop das Postfix-System hart.)
  • postfix [flush|check|set-permissions|upgrade-configuration] (set-permissions setzt Dateirechte für Postfix-Dateien wie sie in /etc/postfix/postfix-files hinterlegt sind.)
  • mailq Gibt die Mail-Warteschlange von Postfix aus.

Aliase

Wohin die Emails von System-Accounts (z.B. root) gehen, wird in /etc/aliases definiert. Für eine Weiterleitung einfach eine Emailadresse hinterlegen:

root: webmaster@server.com

Anschließend:

  • newaliases und /etc/init.d/postfix reload Aliase neu laden und die neue Konfiguration mit Postfix laden.

Authentifizierung mit Cyrus-SASL

Falls man den Authentifizierungsmodus sasldb gewählt hat, können Nutzer mit folgenden Befehlen verwaltet werden:

  • saslauthd -a sasldb Startet den Authentifizierungsdienst mit der angegebenen Methode.
  • echo <passwort> | saslpasswd2 -p -c <benutzername> Fügt den Account hinzu. (Die Passwörter werden in der Datei /etc/sasldb2 abgelegt.)
  • testsaslauthd -u <benutzername> -p <passwort> Testet einen Login für den angegebenen Benutzer.

Nutzerverwaltung mit dem Mechanismus sasldb:

  • sasldblistusers2 Listet alle eingetragenen Benutzer auf.
  • echo <password> | saslpasswd2 -p -c <username> Legt einen neuen Benutzer an, und liest dessen Passwort von STDIN.

Konfigurationsdateien

  • /etc/default/saslauthd, /etc/postfix/sasl/smtpd.conf Konfiguration des Authentifizierungsdienstes saslauthd.
  • /etc/postfix/main.cf, /etc/postfix/master.cf Konfiguration von Postfix.

Wenn garnichts hilft

Ein super Skript, um die wichtigsten Einstellungen zu überprüfen ist saslfinger Pfeil.

Postfix mit saslauthd hat unter Debian einen Bug: Während saslauthd über den Socket /var/run/saslauthd kommunizieren will, erwartet Postfix dies komischerweise in /var/spool/postfix/var/run/saslauthd. Lösung: Ein symbolischer Link von /var/run/saslauthd nach /var/spool/postfix/var/run/saslauthd. Und zwar in diese Richtung.

Cyrus

Einige interessante Befehle:

  • cyradm -auth login localhost -user <username>