Postfix ist ein kostenloser und quelloffener MTA (Mail Transfer Agent) zum Weiterleiten oder Zustellen von E-Mails auf einem Linux-System. In diesem Handbuch erfahren Sie, wie Sie Postfix unter CentOS 8 installieren und konfigurieren.
Laboreinrichtung:
- Betriebssystem: CentOS 8-Server
- IP-Adresse: 192.168.1.13
- Hostname: server1.crazytechgeek.info (Stellen Sie sicher, dass der Domainname auf die IP des Servers verweist)
Schritt 1) Aktualisieren Sie das System
Der erste Schritt besteht darin, sicherzustellen, dass die Systempakete auf dem neuesten Stand sind. Aktualisieren Sie dazu das System wie folgt:
# dnf update
Stellen Sie außerdem sicher, dass keine anderen MTAs vorhanden sind, bevor Sie fortfahren wie Sendmail vorhanden sind, da dies zu Konflikten mit der Postfix-Konfiguration führt. Um beispielsweise Sendmail zu entfernen, führen Sie den folgenden Befehl aus:
# dnf remove sendmail
Schritt 2) Legen Sie den Hostnamen fest und aktualisieren Sie die /etc/hosts-Datei
Verwenden Sie den folgenden Befehl hostnamectl, um den Hostnamen auf Ihrem System festzulegen,
# hostnamectl set-hostname server1.crazytechgeek.info # exec bash
Außerdem müssen Sie den Hostnamen und die IP-Einträge des Systems in der Datei /etc/hosts hinzufügen
# vim /etc/hosts 192.168.1.13 server1.crazytechgeek.info
Speichern und beenden Sie die Datei.
Lesen Sie auch : So richten Sie einen DNS-Server (Bind) unter CentOS 8 / RHEL8 ein
Schritt 3) Postfix Mailserver installieren
Nachdem Sie überprüft haben, dass kein anderer MTA auf dem System läuft, installieren Sie Postfix, indem Sie den folgenden Befehl ausführen:
# dnf install postfix
Schritt 4) Starten und aktivieren Sie den Postfix-Dienst
Nach erfolgreicher Installation von Postfix starten und aktivieren Sie den Postfix-Dienst, indem Sie Folgendes ausführen:
# systemctl start postfix # systemctl enable postfix
Um den Postfix-Status zu überprüfen, führen Sie den folgenden systemctl-Befehl
aus# systemctl status postfix
Großartig, wir haben überprüft, ob Postfix betriebsbereit ist. Als nächstes werden wir Postfix konfigurieren, um E-Mails lokal an unseren Server zu senden.
Schritt 5) Mailx-E-Mail-Client installieren
Vor der Konfiguration des Postfix-Servers müssen wir die Mailx-Funktion installieren. Um Mailx zu installieren, führen Sie den folgenden Befehl aus:
# dnf install mailx
Schritt 6) Postfix-Mailserver konfigurieren
Die Konfigurationsdatei von Postfix befindet sich in /etc/postfix/main.cf . Wir müssen ein paar Änderungen in der Konfigurationsdatei vornehmen, also öffnen Sie sie mit Ihrem bevorzugten Texteditor.
# vi /etc/postfix/main.cf
Nehmen Sie Änderungen an den folgenden Zeilen vor:
myhostname = server1.crazytechgeek.info mydomain = crazytechgeek.info myorigin = $mydomain ## Uncomment and Set inet_interfaces to all ## inet_interfaces = all ## Change to all ## inet_protocols = all ## Comment ## #mydestination = $myhostname, localhost.$mydomain, localhost ##- Uncomment ## mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain ## Uncomment and add IP range ## mynetworks = 192.168.1.0/24, 127.0.0.0/8 ## Uncomment ## home_mailbox = Maildir/
Wenn Sie fertig sind, speichern und beenden Sie die Konfigurationsdatei. Starten Sie den Postfix-Dienst neu, damit die Änderungen wirksam werden
# systemctl restart postfix
Schritt 7) Postfix-Mailserver testen
Testen Sie, ob unsere Konfiguration funktioniert, erstellen Sie zuerst einen Testbenutzer
# useradd postfixuser # passwd postfixuser
Führen Sie als Nächstes den folgenden Befehl aus, um E-Mails von pkumar zu senden lokalen Benutzer an einen anderen Benutzer ‘postfixuser ‘
# telnet localhost smtp or # telnet localhost 25
Wenn der Telnet-Dienst nicht installiert ist, können Sie ihn mit dem folgenden Befehl installieren:
# dnf install telnet -y
Wenn Sie den Befehl wie oben angegeben ausführen, sollten Sie die Ausgabe wie gezeigt erhalten
[[email protected] ~]# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 server1.crazytechgeek.info ESMTP Postfix
Bestätigen Sie oben, dass die Verbindung zum Postfix-Mailserver einwandfrei funktioniert. Geben Sie als nächstes den Befehl ein:
# ehlo localhost
Die Ausgabe sieht in etwa so aus
250-server1.crazytechgeek.info 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250-DSN 250 SMTPUTF8
Führen Sie als Nächstes die orange markierten Befehle aus, wie „mail from“, „rcpt to“, data, und geben Sie schließlich quit,
einmail from:<pkumar> 250 2.1.0 Ok rcpt to:<postfixuser> 250 2.1.5 Ok data 354 End data with <CR><LF>.<CR><LF> Hello, Welcome to my mailserver (Postfix) . 250 2.0.0 Ok: queued as B56BF1189BEC quit 221 2.0.0 Bye Connection closed by foreign host
Führen Sie den Telnet-Befehl aus, um eine E-Mail vom lokalen Benutzer „pkumar“ zu senden “ an einen anderen lokalen Benutzer „postfixuser ” wäre so etwas wie unten
Wenn alles nach Plan gelaufen ist, sollten Sie die gesendete E-Mail im Home-Verzeichnis des neuen Benutzers sehen können.
# ls /home/postfixuser/Maildir/new 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info #
Um die E-Mail zu lesen, verwenden Sie einfach den cat-Befehl wie folgt:
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
Postfix-Mailserverprotokolle
Postfix-Mailserver-Mailprotokolle werden in der Datei „/var/log/maillog gespeichert “, verwenden Sie den folgenden Befehl, um die Live-Protokolle anzuzeigen,
# tail -f /var/log/maillog
Sicherung des Postfix-Mailservers
Es wird immer empfohlen, die Kommunikation zwischen Clients und Postfix-Server zu sichern, dies kann mit SSL-Zertifikaten erreicht werden, diese Zertifikate können entweder von einer vertrauenswürdigen Stelle oder selbst signierte Zertifikate sein. In diesem Tutorial generieren wir ein selbstsigniertes Zertifikat für Postfix mit openssl Befehl,
Ich gehe davon aus, dass openssl bereits auf Ihrem System installiert ist, falls es nicht installiert ist, verwenden Sie den folgenden dnf-Befehl,
# dnf install openssl -y
Generieren Sie einen privaten Schlüssel und eine CSR (Certificate Signing Request) mit dem folgenden openssl-Befehl,
# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
Generieren Sie jetzt ein selbstsigniertes Zertifikat mit dem folgenden openssl-Befehl,
# openssl x509 -req -days 365 -in mail.csr -signkey mail.key -out mail.crt Signature ok subject=C = IN, ST = New Delhi, L = New Delhi, O = IT, OU = IT, CN = server1.crazytechgeek.info, emailAddress = [email protected] Getting Private key #
Kopieren Sie nun den privaten Schlüssel und die Zertifikatsdatei in das Verzeichnis /etc/postfix
# cp mail.key mail.crt /etc/postfix
Aktualisieren Sie den Pfad des privaten Schlüssels und der Zertifikatsdatei in der Postfix-Konfigurationsdatei,
# vi /etc/postfix/main.cf ……… smtpd_use_tls = yes smtpd_tls_cert_file = /etc/postfix/mail.crt smtpd_tls_key_file = /etc/postfix/mail.key smtpd_tls_security_level = may ………
Starten Sie den Postfix-Dienst neu, um die obigen Änderungen am Effekt vorzunehmen.
# systemctl restart postfix
Versuchen wir, E-Mails mit dem Mailx-Client an die interne lokale Domäne und die externe Domäne zu senden.
Lokale interne E-Mail vom pkumar-Benutzer an postfixuser senden
# echo "test email" | mailx -s "Test email from Postfix MailServer" -r [email protected] [email protected]
Prüfen und lesen Sie die E-Mail wie folgt:
# cd /home/postfixuser/Maildir/new/ # ll total 8 -rw-------. 1 postfixuser postfixuser 476 Nov 12 17:34 1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info -rw-------. 1 postfixuser postfixuser 612 Nov 13 02:40 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info # cat 1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
E-Mail von Postfixuser an externe Domain senden ([email protected])
# echo "External Test email" | mailx -s "Postfix MailServer" -r [email protected] [email protected]
Hinweis: Wenn Ihre IP nirgendwo auf der schwarzen Liste steht, wird Ihre E-Mail an eine externe Domain zugestellt, andernfalls wird sie zurückgesendet und besagt, dass die IP in der so und so Spamhaus-Datenbank auf der schwarzen Liste steht.
Überprüfen Sie die Postfix-Mail-Warteschlange
Verwenden Sie den Befehl mailq, um E-Mails aufzulisten, die sich in der Warteschlange befinden.
# mailq Mail queue is empty #
Und das ist es! Unsere Postfix-Konfiguration funktioniert! Das ist alles für jetzt. Wir hoffen, dass Sie dieses Tutorial aufschlussreich fanden und dass Sie Ihren lokalen Postfix-Server bequem einrichten können.
Lesen Sie auch :So installieren und konfigurieren Sie Samba unter CentOS 8