Vorwort
Zu meiner Schande muss ich gleich mal festhalten, dass ich bislang noch nie dazu gekommen bin, mich mit Postfix auseinander zu setzen. Immerwiede hab ich angefangen, diesen funktionellen und sicheren Server (Dienst) zu installieren und dann ist mir -wie sooft- die Zeit davon gelaufen.
Natürlich befinde ich mich ausschließlich in einer Testumgebung! Es wäre unverantwortlich, würde ich meine zaghaften Versuche, mit dem noch unbekannten Wesen „postfix“, quasi „in the wild“ vom Zaun brechen.
Mein Begleiter
Ich begebe mich nicht ganz ohne „Begleitschutz“ auf diese Reise. Nein! Das Buch „Linux-Server mit Debian GNU/Linux“ (ein meiner Meinung nach ausgezeichnetes Werk) begleitet mich. Deshab schildere ich hier, basierend auf den Schritten im Buch, meine Höhenflüge und wahrscheinlich auch Abstürze. 🙂
Zielsetzung
Was will ich überhaupt fürs erste erreichen? Ich will, dass lokale User von meiner fiktiven Domain linux.local Emails per SMTP an ebenso lokal verwaltete User schicken können. HIerfür kommt das SMTP Protokoll zum Einsatz. Desweiteren sollen die User die gesendeten Emails per POP-Postfach abrufen können. Naja, jeder fängt mal klein an!
Los gehts!
Postfix zu installieren, stellt mich vor kein großes Problem:
- apt-get install postfix (Return)
Die Konfigurationsdateien findet man im Verzeichnis /etc/postfix. Postfix hat grundsätzlich 2 „Konfigurationsdateien“:
Die main.cf beinhaltet sämtliche Konfigurationsparameter, die master.cf definiert die Transportwege und einige sehr wichtige andere Parameter.
Erster Anlaufpunkt ist die Datei main.cf!
main.cf
Sieht bei mir wie folgend aus. (Ich habe ausschließlich die fett geschriebenen „Variablen“ angepasst).
# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
# appending .domain is the MUA’s job.
append_dot_mydomain = no
# Uncomment the next line to generate „delayed mail“ warnings
#delay_warning_time = 4h
readme_directory = no
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
myhostname = linux.local
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = linux.local,
localhost
relayhost =
mynetworks = 127.0.0.0/8 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = 127.0.0.1 192.168.1.235
default_transport = error
relay_transport = error
2 User / Mailboxen „bauen“
- useradd -m dummy1 -s /bin/false
- useradd -m dummy2 -s /bin/false
- Passwörter setzen mit: passwd dummy1 bzw. passwd dummy2
Diese Kommandos sind als root auszuführen. Der Parameter -s mit Wert /bin/false weist den Usern keine Loginshell zu, denn direkt am System, haben diese User nichts zu suchen.
Die User haben nun also folgende Mailadressen:
- dummy1@linux.localhost
- dummy2@linux.localhost
An diese Adressen gesendete Emails sollten in /var/mail/<Benutzername> landen.
Test mit einem Emailclient
Laut den erstellten Daten (oben) erfolgt die Clientkonfiguration:
Ich hab hier auch die POP Daten angegeben, jedoch läuft noch kein POP-Dienst, weshalb (logischerweise) ein POP Abruf zu einem Fehler führt. Dennoch sollte SMTP Versand funktionieren. Zu diesem Zwecke schick ich mir selbst (dummy1@linux.local) eine Email.
Check per Konsole
Wir haben an dummy1@linux.local gemailt. Siehe da! Es gibt eine Textdatei mit Namen „dummy1“. Was wird da wohl drinnen sein:
Bingo! Meine Email ist angekommen!
Einfacher POP Abruf
Für den Anfang teste ich „qpopper“, den man mittels:
installiert.
Das gute daran, das „Programm“ benötigt keinerlei Konfiguration, um zu funktionieren! Die Benutzerdaten sind beim Mailclient hinterlegt (Es sei nochmals festgehalten, dass als Passwort das Passwort des jeweils angelegten User verwendet wird!)
Der erste Versuch eine Abrufes scheitert… Keine Verbindung zum POP-Server… Die Fehlersuche bleibt erfolglos. Schließlich komme ich auf die Idee, Postfix zu restarten:
- /etc/init.d/postfix restart
Erneuter Abrufversuch… Erfolg!
Anmerkung: In diesem Tutorial (besser gesagt Experiment) werden u.a. Plain-Text (Klartext) Passworter zur Authentifizierung verwendet. Für einen Produktiveinsatz ist diese Konfiguration nicht geeignet!