如何在 CentOS 8 上安裝和配置 Postfix 郵件伺服器
Postfix 是一個自由開源的 MTA(郵件傳輸代理),用於在 Linux 系統上路由或傳遞電子郵件。在本指南中,你將學習如何在 CentOS 8 上安裝和配置 Postfix。
實驗室設定:
- 系統:CentOS 8 伺服器
- IP 地址:192.168.1.13
- 主機名:server1.crazytechgeek.info(確保域名指向伺服器的 IP)
步驟 1)更新系統
第一步是確保系統軟體包是最新的。為此,請按如下所示更新系統:
# dnf update
繼續之前,還請確保不存在其他 MTA(如 Sendmail),因為這將導致與 Postfix 配置衝突。例如,要刪除 Sendmail,請執行以下命令:
# dnf remove sendmail
步驟 2)設定主機名並更新 /etc/hosts
使用下面的 hostnamectl
命令在系統上設定主機名:
# hostnamectl set-hostname server1.crazytechgeek.info
# exec bash
此外,你需要在 /etc/hosts
中新增系統的主機名和 IP:
# vim /etc/hosts
192.168.1.13 server1.crazytechgeek.info
儲存並退出檔案。
步驟 3)安裝 Postfix 郵件伺服器
驗證系統上沒有其他 MTA 在執行後,執行以下命令安裝 Postfix:
# dnf install postfix
步驟 4)啟動並啟用 Postfix 服務
成功安裝 Postfix 後,執行以下命令啟動並啟用 Postfix 服務:
# systemctl start postfix
# systemctl enable postfix
要檢查 Postfix 狀態,請執行以下 systemctl
命令:
# systemctl status postfix
太好了,我們已經驗證了 Postfix 已啟動並正在執行。接下來,我們將配置 Postfix 從本地傳送郵件到我們的伺服器。
步驟 5)安裝 mailx 郵件客戶端
在配置 Postfix 伺服器之前,我們需要安裝 mailx
,要安裝它,請執行以下命令:
# dnf install mailx
步驟 6)配置 Postfix 郵件伺服器
Postfix 的配置檔案位於 /etc/postfix/main.cf
中。我們需要對配置檔案進行一些修改,因此請使用你喜歡的文字編輯器將其開啟:
# vi /etc/postfix/main.cf
更改以下幾行:
myhostname = server1.crazytechgeek.info
mydomain = crazytechgeek.info
myorigin = $mydomain
## 取消註釋並將 inet_interfaces 設定為 all##
inet_interfaces = all
## 更改為 all ##
inet_protocols = all
## 註釋 ##
#mydestination = $myhostname, localhost.$mydomain, localhost
## 取消註釋 ##
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
## 取消註釋並新增 IP 範圍 ##
mynetworks = 192.168.1.0/24, 127.0.0.0/8
## 取消註釋 ##
home_mailbox = Maildir/
完成後,儲存並退出配置檔案。重新啟動 postfix 服務以使更改生效:
# systemctl restart postfix
步驟 7)測試 Postfix 郵件伺服器
測試我們的配置是否有效,首先,建立一個測試使用者。
# useradd postfixuser
# passwd postfixuser
接下來,執行以下命令,從本地使用者 pkumar
傳送郵件到另一個使用者 postfixuser
。
# telnet localhost smtp
或者
# telnet localhost 25
如果未安裝 telnet 服務,那麼可以使用以下命令進行安裝:
# dnf install telnet -y
如前所述執行命令時,應獲得如下輸出:
[root@linuxtechi ~]# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 server1.crazytechgeek.info ESMTP Postfix
上面的結果確認與 postfix 郵件伺服器的連線正常。接下來,輸入命令:
# ehlo localhost
輸出看上去像這樣:
250-server1.crazytechgeek.info
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250 SMTPUTF8
接下來,執行橙色高亮的命令,例如 mail from
、rcpt to
、data
,最後輸入 quit
:
mail 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
完成 telnet
命令可從本地使用者 pkumar
傳送郵件到另一個本地使用者 postfixuser
,如下所示:
如果一切都按計劃進行,那麼你應該可以在新使用者的家目錄中檢視傳送的郵件:
# ls /home/postfixuser/Maildir/new
1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
#
要閱讀郵件,只需使用 cat 命令,如下所示:
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
Postfix 郵件伺服器日誌
Postfix 郵件伺服器郵件日誌儲存在檔案 /var/log/maillog
中,使用以下命令檢視實時日誌,
# tail -f /var/log/maillog
保護 Postfix 郵件伺服器
建議始終確保客戶端和 Postfix 伺服器之間的通訊安全,這可以使用 SSL 證書來實現,它們可以來自受信任的權威機構或自簽名證書。在本教程中,我們將使用 openssl
命令生成用於 Postfix 的自簽名證書,
我假設 openssl
已經安裝在你的系統上,如果未安裝,請使用以下 dnf
命令:
# dnf install openssl -y
使用下面的 openssl
命令生成私鑰和 CSR(證書籤名請求):
# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
現在,使用以下 openssl 命令生成自簽名證書:
# 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 = root@linuxtechi
Getting Private key
#
現在將私鑰和證書檔案複製到 /etc/postfix
目錄下:
# cp mail.key mail.crt /etc/postfix
在 Postfix 配置檔案中更新私鑰和證書檔案的路徑:
# 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
………
重啟 Postfix 服務以使上述更改生效:
# systemctl restart postfix
讓我們嘗試使用 mailx
客戶端將郵件傳送到內部本地域和外部域。
從 pkumar
傳送內部本地郵件到 postfixuser
中:
# echo "test email" | mailx -s "Test email from Postfix MailServer" -r root@linuxtechi root@linuxtechi
使用以下命令檢查並閱讀郵件:
# 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
從 postfixuser
傳送郵件到外部域(root@linuxtechi.com
):
# echo "External Test email" | mailx -s "Postfix MailServer" -r root@linuxtechi root@linuxtechi
注意:如果你的 IP 沒有被任何地方列入黑名單,那麼你傳送到外部域的郵件將被髮送,否則它將被退回,並提示你的 IP 被 spamhaus 之類的資料庫列入黑名單。
檢查 Postfix 郵件佇列
使用 mailq
命令列出佇列中的郵件:
# mailq
Mail queue is empty
#
完成!我們的 Postfix 配置正常工作了!目前就這樣了。我們希望你覺得本教程有見地,並且你可以輕鬆地設定本地 Postfix 伺服器。
via: https://www.linuxtechi.com/install-configure-postfix-mailserver-centos-8/
作者:James Kiarie 選題:lujun9972 譯者:geekpi 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 如何在CentOS中安裝和配置Postfix郵件伺服器CentOS伺服器
- 如何在 Centos 8 / RHEL 8 上安裝和配置 VNC 伺服器CentOSVNC伺服器
- Centos 7 搭建postfix郵件伺服器CentOS伺服器
- Linux伺服器---郵件服務postfix安裝Linux伺服器
- 如何在 CentOS 8/RHEL 8 上安裝和配置 Nagios CoreCentOSiOS
- Centos Linux 7 搭建郵件伺服器(postfix + dovecot)CentOSLinux伺服器
- Linux伺服器---郵件服務postfix配置Linux伺服器
- 如何在 CentOS 8/RHEL 8 上安裝和使用 CockpitCentOSKPI
- 如何在 CentOS 8 和 RHEL 8 系統上安裝和使用 AnsibleCentOS
- 如何在 CentOS 8 / RHEL 8 上安裝 VirtualBox 6.0CentOS
- 如何在 CentOS 8 上配置和管理防火牆CentOS防火牆
- 如何在CentOS 8中安裝OpenLiteSpeed Web伺服器CentOSWeb伺服器
- 如何在 CentOS 8/RHEL 8 上安裝 Ansible(自動化工具)CentOS
- 郵件伺服器配置和管理伺服器
- 在CentOS 7.5上安裝和配置ProFTPDCentOSFTP
- centos8安裝和配置redis服務CentOSRedis
- 如何在 Linux 上安裝、配置 NTP 伺服器和客戶端?Linux伺服器客戶端
- 如何在CentOS 7中安裝和配置OrientDB社群版CentOS
- 在Centos8上安裝和使用curlCentOS
- 教你如何在 CentOS 上安裝RedisCentOSRedis
- 如何在 CentOS 7 上安裝 NginxCentOSNginx
- 如何在 CentOS 8 和 RHEL 8 伺服器上啟用 EPEL 倉庫CentOS伺服器
- centos7上keepalived的安裝和配置CentOS
- 如何在 CentOS、RHEL 和 Fedora 上安裝 DHCP 服務CentOS
- Linux伺服器---郵件伺服器openwebmail安裝Linux伺服器WebAI
- CentOS 8 安裝 mariadb 伺服器CentOS伺服器
- VM安裝配置centos8教程CentOS
- 如何在 CentOS 7 上安裝 Python 3CentOSPython
- 在CentOS 8上安裝與配置Apache虛擬主機CentOSApache
- 如何在 CentOS8/RHEL8 中配置 Rsyslog 伺服器CentOS伺服器
- 如何在 CentOS 7 / RHEL 7 終端伺服器上安裝 KVMCentOS伺服器
- 如何在Outlook安裝使用S/MIME郵件證書實現郵件簽名加密加密
- 如何安裝vmware以及如何在vmware上安裝centOS 7.0CentOS
- CentOS 8 安裝 Caddy Web伺服器CentOSWeb伺服器
- Linux伺服器配置——安裝CentOS以及源配置Linux伺服器CentOS
- 如何在Centos8中安裝GitLab-CECentOSGitlab
- 如何在極狐GitLab 配置 郵件功能Gitlab
- 如何在Mac郵件客戶端配置使用S/MIME郵件證書Mac客戶端