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