Mailserver Workshop Konfiguration: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
 
= Zielsetzung =
 
= Zielsetzung =
* Einrichtung eines Mailservers mit Postfix und Dovecot
+
* Einrichtung eines Mailservers mit Postfix, Dovecot und Rspamd
* Schrittweiser Aufbau der Mailinfrastruktur
+
* Unverschlüsselte Grundkonfiguration der Dienste
* Verständnis der einzelnen Komponenten eines Mailservers
+
* Schrittweise Absicherung durch Verschlüsselung
* Test der lokalen Mailzustellung
+
* Integration von Rspamd zur Spam- und Virenerkennung
* Vorbereitung für spätere Absicherung mit TLS und Spamfilter
+
* Logging und Fehleranalyse für eine stabile Mailserver-Umgebung
  
 
= Voraussetzungen =
 
= Voraussetzungen =
* Debian oder Ubuntu Server mit Root-Zugriff
+
* Debian- oder Ubuntu-Server mit Root-Zugriff
 
* Domain '''it213.int''' ist bereits als MX für den Mailserver eingetragen
 
* Domain '''it213.int''' ist bereits als MX für den Mailserver eingetragen
* Hostname des Mailservers '''mail.it213.int'''
+
* Basiskenntnisse in Linux und Mailserver-Administration
* Internetzugang für Paketinstallation
+
* Internetzugang für Paketinstallation und DNS-Abfragen
  
 
= Ist der MX Record richtig eingetragen? =
 
= Ist der MX Record richtig eingetragen? =
 
 
;Verwende eines dieser Tools
 
;Verwende eines dieser Tools
 
 
*host -t mx it213.int
 
*host -t mx it213.int
 
*nslookup -q=mx it213.int
 
*nslookup -q=mx it213.int
 
*dig -t mx it213.int
 
*dig -t mx it213.int
  
= Installation der Mailserver-Komponenten =
+
= Installation =
 
 
 
*apt update
 
*apt update
 
*apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils
 
*apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils
 
 
Bei der Abfrage '''Internet Site''' wählen.
 
Bei der Abfrage '''Internet Site''' wählen.
  
= Beschreibung der Pakete =
+
= Beschreibung der Pakete für den Mailserver =
  
 
== Postfix ==
 
== Postfix ==
* Mail Transport Agent (MTA)
+
* Postfix ist ein Mail-Transport-Agent (MTA)
* Verantwortlich für Versand und Empfang von E-Mails
+
* Zuständig für den Versand und Empfang von E-Mails
* Transportiert E-Mails zwischen Mailservern
+
* Nimmt E-Mails von lokalen oder entfernten Clients an und leitet sie weiter
  
== Dovecot ==
+
== Dovecot-Core ==
* IMAP- und POP3-Server
+
* Grundlegende Infrastruktur von Dovecot
* Ermöglicht Mailclients den Zugriff auf Mailboxen
+
* Wird für die Bereitstellung von IMAP- und POP3-Diensten genutzt
 +
* Enthält noch keine spezifischen Protokolle
  
== Dovecot LMTP ==
+
== Dovecot-IMAPD ==
* Zustellung von Postfix an Dovecot
+
* Aktiviert den IMAP-Dienst in Dovecot
* Effizienter als lokale mailbox_command Zustellung
+
* Ermöglicht den Zugriff auf E-Mails direkt auf dem Server
 +
* Standardprotokoll für moderne E-Mail-Clients
 +
 
 +
== Dovecot-LMTPD ==
 +
* Aktiviert den LMTP-Dienst (Local Mail Transfer Protocol)
 +
* Zuständig für die interne Mail-Zustellung von Postfix an Dovecot
 +
* Effizientere Alternative zu mailbox_command für die Mailzustellung
  
 
== Mailutils ==
 
== Mailutils ==
* Sammlung von Mailtools für Tests
+
* Sammlung von Mail-Werkzeugen für Unix/Linux
* Enthält z. B. das Programm '''mail'''
+
* Enthält Befehle wie mail zum Senden und Lesen von E-Mails
 +
* Unterstützt verschiedene Mail-Speicherformate wie mbox und Maildir
 +
* Nützlich für Tests und Skripte in Mailserver-Umgebungen
  
 
= Mailformate =
 
= Mailformate =
  
== mbox (/var/mail) ==
+
== /var/spool/mail (mbox) ==
* Alle Mails eines Benutzers liegen in einer Datei
+
* Speichert alle E-Mails eines Nutzers in einer einzigen Datei
* Probleme bei parallelem Zugriff möglich
+
* Zentrale Speicherung unter /var/spool/mail/<benutzer>
* Wird historisch verwendet
+
* Schneller bei sehr kleinen Mailboxen, aber langsamer bei vielen Mails
 +
* Probleme mit Dateisperren bei gleichzeitigen Zugriffen möglich
 +
* Schwerer zu sichern, da Änderungen in einer einzigen Datei passieren
  
 
== Maildir ==
 
== Maildir ==
* Jede Mail ist eine eigene Datei
+
* Speichert jede E-Mail als eine eigene Datei im Benutzerverzeichnis ~/Maildir/
* Keine Locking-Probleme
+
* Bessere Performance, da parallele Zugriffe möglich sind
* Paralleler Zugriff möglich
+
* Kein Locking-Problem, da keine zentrale Datei gesperrt werden muss
* Bessere Backupmöglichkeiten
+
* Einfaches Backup, da Mails als einzelne Dateien kopiert werden können
 +
* Unterstützt von modernen Mailservern und Clients besser
  
 
== Empfehlung ==
 
== Empfehlung ==
* Maildir wird empfohlen
+
* Maildir wird empfohlen, da es stabiler, moderner und einfacher zu verwalten ist
 
+
* /var/spool/mail ist nur sinnvoll, wenn eine zentrale Speicherung ohne Benutzer-Home-Verzeichnisse gewünscht ist
= Maildir vorbereiten =
 
 
 
Jeder neue Benutzer bekommt automatisch ein Maildir.
 
  
 +
= Jeder neue Benutzer bekommt diese Dateien im Homeverzeichnis =
 
*mkdir -p /etc/skel/Maildir/{cur,new,tmp}
 
*mkdir -p /etc/skel/Maildir/{cur,new,tmp}
 
*echo 'export MAIL=$HOME/Maildir' >> /etc/skel/.bashrc
 
*echo 'export MAIL=$HOME/Maildir' >> /etc/skel/.bashrc
 
= Postfix Konfiguration =
 
 
== /etc/postfix/main.cf ==
 
 
<pre>
 
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
 
 
biff = no
 
append_dot_mydomain = no
 
readme_directory = no
 
 
compatibility_level = 3.6
 
 
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
 
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
 
smtpd_tls_security_level=may
 
 
smtp_tls_CApath=/etc/ssl/certs
 
smtp_tls_security_level=may
 
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
 
 
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
 
 
myhostname = mail.it213.int
 
 
alias_maps = hash:/etc/aliases
 
alias_database = hash:/etc/aliases
 
 
myorigin = /etc/mailname
 
 
mydestination = $myhostname, localhost.it213.int, it213.int, localhost
 
 
relayhost =
 
 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
 
 
mailbox_size_limit = 0
 
recipient_delimiter = +
 
 
inet_interfaces = all
 
inet_protocols = all
 
 
home_mailbox = Maildir/
 
mailbox_command =
 
</pre>
 
 
= Postfix starten =
 
 
*systemctl start postfix
 
 
= Postfix steuern =
 
 
== über systemctl ==
 
 
*systemctl start postfix
 
*systemctl stop postfix
 
*systemctl restart postfix
 
*systemctl status postfix
 
 
== über postfix ==
 
 
*postfix start
 
*postfix stop
 
*postfix reload
 
*postfix status
 
*postfix check
 
 
= Logging =
 
 
*journalctl -f -u postfix@-.service
 
 
= Benutzer anlegen =
 
 
*useradd -m -s /bin/bash martha
 
*useradd -m -s /bin/bash leroy
 
 
*passwd martha
 
*passwd leroy
 
 
= Lokale Mailzustellung testen =
 
 
Öffne drei SSH-Sitzungen
 
 
* eine als '''martha'''
 
* eine als '''leroy'''
 
* eine als '''root'''
 
 
Root überwacht die Logs
 
 
*journalctl -f -u postfix@-.service
 
 
== Leroy sendet Mails ==
 
 
*echo "1. Mail" | mail -s "1. Mail" martha
 
*echo "2. Mail" | mail -s "2. Mail" martha@mail.it213.int
 
*echo "3. Mail" | mail -s "3. Mail" martha@it213.int
 
 
== Martha liest Mails ==
 
 
*mail
 
 
== Speicherort prüfen ==
 
 
*find Maildir -type f
 
 
= Dovecot =
 
 
Dovecot stellt IMAP und POP3 bereit.
 
 
== Mailformat konfigurieren ==
 
 
*/etc/dovecot/conf.d/10-mail.conf*
 
 
<pre>
 
mail_driver = maildir
 
mail_home = /home/%{user | username}
 
mail_path = %{home}/Maildir
 
</pre>
 
 
== Authentifizierung ==
 
 
*/etc/dovecot/conf.d/10-auth.conf*
 
 
<pre>
 
auth_mechanisms = plain login
 
</pre>
 
 
== Socket für Postfix ==
 
 
*/etc/dovecot/conf.d/10-master.conf*
 
 
<pre>
 
service imap-login {
 
  inet_listener imap {
 
  }
 
 
  inet_listener imaps {
 
  }
 
}
 
 
service pop3-login {
 
  inet_listener pop3 {
 
  }
 
 
  inet_listener pop3s {
 
  }
 
}
 
 
service lmtp {
 
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
 
    mode = 0600
 
    user = postfix
 
    group = postfix
 
  }
 
}
 
 
service auth {
 
  unix_listener /var/spool/postfix/private/auth {
 
    mode = 0660
 
    user = postfix
 
    group = postfix
 
  }
 
}
 
</pre>
 
 
= Dienste starten =
 
 
*systemctl restart dovecot
 
*systemctl restart postfix
 
 
= Kontrolle der offenen Ports =
 
 
*ss -lntp
 
 
= Erwartete Dienste =
 
 
{| class="wikitable"
 
! Dienst !! Zweck !! Port
 
|-
 
| SMTP || Mailtransport || 25
 
|-
 
| SMTPS || verschlüsselter Mailversand || 465
 
|-
 
| IMAP || Zugriff auf Mailbox || 143
 
|-
 
| IMAPS || verschlüsselter Zugriff || 993
 
|}
 

Version vom 11. März 2026, 12:21 Uhr

Zielsetzung

  • Einrichtung eines Mailservers mit Postfix, Dovecot und Rspamd
  • Unverschlüsselte Grundkonfiguration der Dienste
  • Schrittweise Absicherung durch Verschlüsselung
  • Integration von Rspamd zur Spam- und Virenerkennung
  • Logging und Fehleranalyse für eine stabile Mailserver-Umgebung

Voraussetzungen

  • Debian- oder Ubuntu-Server mit Root-Zugriff
  • Domain it213.int ist bereits als MX für den Mailserver eingetragen
  • Basiskenntnisse in Linux und Mailserver-Administration
  • Internetzugang für Paketinstallation und DNS-Abfragen

Ist der MX Record richtig eingetragen?

Verwende eines dieser Tools
  • host -t mx it213.int
  • nslookup -q=mx it213.int
  • dig -t mx it213.int

Installation

  • apt update
  • apt install postfix dovecot-core dovecot-imapd dovecot-lmtpd mailutils

Bei der Abfrage Internet Site wählen.

Beschreibung der Pakete für den Mailserver

Postfix

  • Postfix ist ein Mail-Transport-Agent (MTA)
  • Zuständig für den Versand und Empfang von E-Mails
  • Nimmt E-Mails von lokalen oder entfernten Clients an und leitet sie weiter

Dovecot-Core

  • Grundlegende Infrastruktur von Dovecot
  • Wird für die Bereitstellung von IMAP- und POP3-Diensten genutzt
  • Enthält noch keine spezifischen Protokolle

Dovecot-IMAPD

  • Aktiviert den IMAP-Dienst in Dovecot
  • Ermöglicht den Zugriff auf E-Mails direkt auf dem Server
  • Standardprotokoll für moderne E-Mail-Clients

Dovecot-LMTPD

  • Aktiviert den LMTP-Dienst (Local Mail Transfer Protocol)
  • Zuständig für die interne Mail-Zustellung von Postfix an Dovecot
  • Effizientere Alternative zu mailbox_command für die Mailzustellung

Mailutils

  • Sammlung von Mail-Werkzeugen für Unix/Linux
  • Enthält Befehle wie mail zum Senden und Lesen von E-Mails
  • Unterstützt verschiedene Mail-Speicherformate wie mbox und Maildir
  • Nützlich für Tests und Skripte in Mailserver-Umgebungen

Mailformate

/var/spool/mail (mbox)

  • Speichert alle E-Mails eines Nutzers in einer einzigen Datei
  • Zentrale Speicherung unter /var/spool/mail/<benutzer>
  • Schneller bei sehr kleinen Mailboxen, aber langsamer bei vielen Mails
  • Probleme mit Dateisperren bei gleichzeitigen Zugriffen möglich
  • Schwerer zu sichern, da Änderungen in einer einzigen Datei passieren

Maildir

  • Speichert jede E-Mail als eine eigene Datei im Benutzerverzeichnis ~/Maildir/
  • Bessere Performance, da parallele Zugriffe möglich sind
  • Kein Locking-Problem, da keine zentrale Datei gesperrt werden muss
  • Einfaches Backup, da Mails als einzelne Dateien kopiert werden können
  • Unterstützt von modernen Mailservern und Clients besser

Empfehlung

  • Maildir wird empfohlen, da es stabiler, moderner und einfacher zu verwalten ist
  • /var/spool/mail ist nur sinnvoll, wenn eine zentrale Speicherung ohne Benutzer-Home-Verzeichnisse gewünscht ist

Jeder neue Benutzer bekommt diese Dateien im Homeverzeichnis

  • mkdir -p /etc/skel/Maildir/{cur,new,tmp}
  • echo 'export MAIL=$HOME/Maildir' >> /etc/skel/.bashrc