Website-Suche

Installieren eines kompletten Mailservers mit Postfix und Webmail in Debian 9


Dieses Tutorial zeigt Ihnen, wie Sie einen vollständigen Mailserver mit Postfix in Debian 9 installieren und konfigurieren. Es wird auch behandelt, wie Sie Kontenpostfächer mit Dovecot konfigurieren, um E-Mails über das IMAP-Protokoll abzurufen und zu verfassen. Die Benutzer verwenden die Rainloop Webmail-Schnittstelle als Mail-Benutzeragent, um E-Mails zu verarbeiten.

Anforderungen

  1. Debian 9 Minimale Installation
  2. Eine statische IP-Adresse, die für die Netzwerkschnittstelle konfiguriert ist
  3. Ein lokaler oder öffentlich registrierter Domainname.

In diesem Tutorial verwenden wir ein privates Domain-Konto für die Einrichtung des Mailservers, das nur über die Datei /etc/hosts konfiguriert wurde, ohne dass ein DNS-Server an der DNS-Auflösung beteiligt ist.

Schritt 1: Erstkonfigurationen für den Postfix-Mailserver unter Debian

1. Melden Sie sich im ersten Schritt mit einem Konto mit Root-Rechten oder direkt mit dem Root-Benutzer an Ihrem Rechner an und stellen Sie sicher, dass Ihr Debian-System mit den neuesten Sicherheitspatches und Software- und Paketveröffentlichungen auf dem neuesten Stand ist, indem Sie den folgenden Befehl eingeben.

# apt-get update 
apt-get upgrade 

2. Installieren Sie im nächsten Schritt die folgenden Softwarepakete, die für die Systemadministration verwendet werden, indem Sie den folgenden Befehl eingeben.

# apt-get install curl net-tools bash-completion wget lsof nano

3. Öffnen Sie als Nächstes die Datei /etc/host.conf zur Bearbeitung mit Ihrem bevorzugten Texteditor und fügen Sie die folgende Zeile am Anfang der Datei hinzu, damit die DNS-Auflösung die Hosts-Datei zuerst liest.

order hosts,bind
multi on

4. Richten Sie als Nächstes den FQDN Ihres Computers ein und fügen Sie Ihren Domänennamen und Ihren System-FQDN zur Datei /etc/hosts hinzu. Verwenden Sie Ihre System-IP-Adresse, um den Namen der Domäne und den FQDN aufzulösen, wie im folgenden Screenshot dargestellt.

Ersetzen Sie die IP-Adresse und die Domain entsprechend. Starten Sie anschließend den Computer neu, um den Hostnamen korrekt anzuwenden.

# hostnamectl set-hostname mail.linux-console.net
echo "192.168.0.102 linux-console.net mail.linux-console.net" >> /etc/hosts
init 6

5. Überprüfen Sie nach dem Neustart, ob der Hostname korrekt konfiguriert wurde, indem Sie die folgende Befehlsreihe ausgeben. Der Domänenname, der FQDN, der Hostname und die IP-Adresse des Systems sollten mit dem Befehl hostname zurückgegeben werden.

# hostname
hostname -s
hostname -f
hostname -A
hostname -i
cat /etc/hostname 

6. Testen Sie außerdem, ob die Domäne korrekt auf lokale Abfragen antwortet, indem Sie die folgenden Befehle ausgeben. Beachten Sie, dass die Domäne nicht auf Remoteabfragen wiedergegeben wird, die von anderen Systemen in Ihrem Netzwerk ausgegeben werden, da wir keinen DNS-Server verwenden.

Die Domäne sollte jedoch von anderen Systemen aus antworten, wenn Sie den Domänennamen manuell zu jeder ihrer /etc/hosts-Dateien hinzufügen. Beachten Sie auch, dass die DNS-Auflösung für eine Domain, die der Datei /etc/hosts hinzugefügt wurde, nicht über die Befehle host, nslookup oder dig funktioniert.

# getent ahosts mail.linux-console.net
ping linux-console.net
ping mail.linux-console.net

Schritt 2: Postfix Mail Server unter Debian installieren

7. Die wichtigste Software, die für das ordnungsgemäße Funktionieren eines Mailservers erforderlich ist, ist der MTA-Agent. Der MTA ist eine Software, die in einer Server-Client-Architektur aufgebaut ist und für die E-Mail-Übertragung zwischen Mailservern verantwortlich ist.

In dieser Anleitung verwenden wir Postfix als Mail Transfer Agent. Um postfix in Debian aus offiziellen Repositories zu installieren, führen Sie den folgenden Befehl aus.

# apt-get install postfix

8. Während des Installationsprozesses von Postfix werden Ihnen eine Reihe von Fragen gestellt. Wählen Sie bei der ersten Eingabeaufforderung die Option Internet-Site als allgemeinen Typ für die Postfix-Konfiguration aus, drücken Sie die [Eingabetaste], um fortzufahren, und fügen Sie dann Ihren Domänennamen zum System-E-Mail-Namen hinzu, wie in den folgenden Screenshots dargestellt.

Schritt 3: Postfix Mail Server unter Debian konfigurieren

9. Sichern Sie als Nächstes die Postfix-Hauptkonfigurationsdatei und konfigurieren Sie Postfix für Ihre Domain mit den folgenden Befehlen.

# cp /etc/postfix/main.cf{,.backup}
nano /etc/postfix/main.cf

Konfigurieren Sie nun die Postfix-Konfiguration in der main.cf-Datei, wie gezeigt.

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP
biff = no
appending .domain is the MUA's job.
append_dot_mydomain = no
readme_directory = no

See http://www.postfix.org/COMPATIBILITY_README.html -- default to 2 on
fresh installs.
compatibility_level = 2

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.

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mail.debian.lan

mydomain = debian.lan

alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

#myorigin = /etc/mailname
myorigin = $mydomain

mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
relayhost = 
mynetworks = 127.0.0.0/8, 192.168.1.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
#inet_protocols = all
inet_protocols = ipv4

home_mailbox = Maildir/

SMTP-Auth settings
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject

Ersetzen Sie die Variablen myhostname, mydomain und mynetworks, um sie an Ihre eigenen Konfigurationen anzupassen.

Sie können den Befehl postconf -n ausführen, um die Postfix-Hauptkonfigurationsdatei zu sichern und eventuelle Fehler zu überprüfen, wie im folgenden Screenshot gezeigt.

# postconf -n

10. Nachdem alle Konfigurationen vorgenommen wurden, starten Sie den Postfix-Daemon neu, um die Änderungen zu übernehmen, und überprüfen Sie, ob der Dienst ausgeführt wird, indem Sie überprüfen, ob der Postfix-Masterdienst an Port 25 gebunden ist, indem Sie den Befehl netstat ausführen.

# systemctl restart postfix
systemctl status postfix
netstat -tlpn

Schritt 3: Testen Sie den Postfix Mail Server unter Debian

11. Um zu testen, ob postfix mit der E-Mail-Übertragung umgehen kann, installieren Sie zuerst das Paket mailutils, indem Sie den folgenden Befehl ausführen.

# apt-get install mailutils

12. Senden Sie anschließend mit dem Befehlszeilenprogramm mail eine E-Mail an das Root-Konto und überprüfen Sie, ob die E-Mail erfolgreich übertragen wurde, indem Sie den folgenden Befehl eingeben, um die Mail-Warteschlange zu überprüfen und den Inhalt des Home-Maildir-Verzeichnisses des Root-Verzeichnisses aufzulisten.

# echo "mail body"| mail -s "test mail" root
mailq
mail
ls Maildir/
ls Maildir/new/
cat Maildir/new/[TAB]

13. Sie können auch überprüfen, auf welche Weise die E-Mail vom Postfix-Dienst verarbeitet wurde, indem Sie den Inhalt der E-Mail-Protokolldatei überprüfen, indem Sie den folgenden Befehl ausführen.

# tailf /var/log/mail.log

Schritt 4: Dovecot IMAP unter Debian installieren und konfigurieren

14. Der E-Mail-Zustellungsagent, den wir in diesem Leitfaden verwenden, um E-Mail-Nachrichten an die Postfächer eines lokalen Empfängers zu übermitteln, ist Dovecot IMAP. IMAP ist ein Protokoll, das auf den Ports 143 und 993 (SSL) läuft und für das Lesen, Löschen oder Verschieben von E-Mails über mehrere E-Mail-Clients verantwortlich ist.

Das IMAP-Protokoll verwendet auch eine Synchronisation, um sicherzustellen, dass eine Kopie jeder Nachricht auf dem Server gespeichert wird, und ermöglicht es Benutzern, mehrere Verzeichnisse auf dem Server zu erstellen und E-Mails in diese Verzeichnisse zu verschieben, um die E-Mails zu sortieren.

Dies ist beim POP3-Protokoll nicht der Fall. Das POP3-Protokoll erlaubt es Benutzern nicht, mehrere Verzeichnisse auf dem Server zu erstellen, um Ihre E-Mails zu sortieren. Sie haben nur den Posteingangsordner, um E-Mails zu verwalten.

Um den Dovecot Core Server und das Dovecot IMAP-Paket unter Debian zu installieren, führen Sie den folgenden Befehl aus.

# apt install dovecot-core dovecot-imapd

15. Nachdem Dovecot auf Ihrem System installiert wurde, öffnen Sie die folgenden Dovecot-Dateien zur Bearbeitung und nehmen Sie die folgenden Änderungen vor. Öffnen Sie zunächst die Datei /etc/dovecot/dovecot.conf, suchen Sie die folgende Zeile und kommentieren Sie sie aus:

listen = *, ::

16. Öffnen Sie als Nächstes /etc/dovecot/conf.d/10-auth.conf zum Bearbeiten und suchen und ändern Sie die folgenden Zeilen so, dass sie wie im folgenden Auszug aussehen.

disable_plaintext_auth = no
auth_mechanisms = plain login

17. Öffnen Sie die Datei /etc/dovecot/conf.d/10-mail.conf und fügen Sie die folgende Zeile hinzu, um den Maildir-Speicherort anstelle des Mbox-Formats zum Speichern von E-Mails zu verwenden.

mail_location = maildir:~/Maildir

18. Die letzte Datei, die bearbeitet werden soll, ist /etc/dovecot/conf.d/10-master.conf. Suchen Sie hier nach dem Postfix smtp-auth Block und nehmen Sie die folgende Änderung vor:

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
  mode = 0666
  user = postfix
  group = postfix
 }

19. Nachdem Sie alle oben genannten Änderungen vorgenommen haben, starten Sie den Dovecot-Daemon neu, um die Änderungen widerzuspiegeln, seinen Status zu überprüfen und zu überprüfen, ob Dovecot an Port 143 gebunden ist, indem Sie die folgenden Befehle ausführen.

# systemctl restart dovecot.service 
systemctl status dovecot.service 
netstat -tlpn

20. Testen Sie, ob der Mailserver ordnungsgemäß ausgeführt wird, indem Sie dem System ein neues Benutzerkonto hinzufügen, und verwenden Sie den Befehl telnet oder netcat, um eine Verbindung zum SMTP-Server herzustellen und eine neue E-Mail an den neu hinzugefügten Benutzer zu senden, wie in den folgenden Auszügen dargestellt.

# adduser matie
nc localhost 25
ehlo localhost
mail from: root
rcpt to: matie
data
subject: test
Mail body
.
quit

21. Überprüfen Sie, ob die E-Mail im neuen Benutzerpostfach angekommen ist, indem Sie den Inhalt des Home-Verzeichnisses des Benutzers auflisten, wie im folgenden Screenshot gezeigt.

# ls /home/test_mail/Maildir/new/

22. Sie können auch über die Befehlszeile über das IMAP-Protokoll eine Verbindung zum Postfach des Benutzers herstellen, wie im folgenden Auszug gezeigt. Die neue E-Mail sollte im Posteingang des Benutzers aufgeführt sein.

# nc localhost 143
x1 LOGIN matie user_password
x2 LIST "" "*"
x3 SELECT Inbox
x4 LOGOUT

Schritt 5: Webmail in Debian installieren und konfigurieren

23. Benutzer verwalten ihre E-Mails über den Rainloop Webmail-Client. Bevor Sie den Rainloop-Mail-User-Agent installieren, installieren Sie zuerst den Apache HTTP-Server und die folgenden PHP-Module, die von Rainloop benötigt werden, indem Sie den folgenden Befehl eingeben.

# apt install apache2 php7.0 libapache2-mod-php7.0 php7.0-curl php7.0-xml

24. Ändern Sie nach der Installation des Apache-Webservers den Verzeichnispfad in das Verzeichnis /var/www/html/, entfernen Sie die index.html Datei und geben Sie den folgenden Befehl ein, um Rainloop Webmail zu installieren.

# cd /var/www/html/
rm index.html 
curl -sL https://repository.rainloop.net/installer.php | php

25. Nachdem der Rainloop Webmail-Client im System installiert wurde, navigieren Sie zu Ihrer Domain-IP-Adresse und melden Sie sich mit den folgenden Standardanmeldeinformationen bei der Rainloop-Admin-Weboberfläche an:

http://192.168.0.102/?admin
User: admin
Password: 12345

26. Navigieren Sie zum Menü Domains, klicken Sie auf die Schaltfläche Domain hinzufügen und fügen Sie Ihre Domainnameneinstellungen hinzu, wie im folgenden Screenshot gezeigt.

27. Nachdem Sie Ihre Domain-Einstellungen hinzugefügt haben, melden Sie sich über die Ranloop-Admin-Oberfläche ab und zeigen Sie den Browser auf Ihre IP-Adresse, um sich mit einem E-Mail-Konto beim Webmail-Client anzumelden.

Nachdem Sie sich erfolgreich bei Rainloop Webmail angemeldet haben, sollten Sie die E-Mail sehen, die zuvor von der Befehlszeile in Ihren Posteingangsordner gesendet wurde.

http://192.168.0.102
User: [email 
Pass: the matie password

27. Um einen neuen Benutzer hinzuzufügen, geben Sie den Befehl useradd mit dem Flag -m ein, um das Benutzer-Home-Verzeichnis zu erstellen. Stellen Sie jedoch zunächst sicher, dass Sie die Pfadvariable Maildir für jeden Benutzer mit dem folgenden Befehl konfigurieren.

# echo 'export MAIL=$HOME/Maildir' >> /etc/profile
useradd -m user3
passwd user3

28. Wenn Sie alle E-Mails von root vom System an ein bestimmtes lokales E-Mail-Konto umleiten möchten, führen Sie die folgenden Befehle aus. Alle E-Mails, die an das Root-Konto umgeleitet werden oder für dieses bestimmt sind, werden an Ihren E-Mail-Benutzer weitergeleitet, wie in der Abbildung unten gezeigt.

# echo "root: test_mail" >> /etc/aliases
newaliases

Das ist alles! Sie haben erfolgreich einen Mailserver bei Ihnen vor Ort installiert und konfiguriert, damit lokale Benutzer über E-Mails kommunizieren können. Diese Art der E-Mail-Konfiguration ist jedoch in keiner Weise gesichert und es ist ratsam, sie nur für kleine Setups in Systemen und Netzwerken unter Ihrer vollen Kontrolle einzusetzen.

Verwandte Artikel: