您好,登錄后才能下訂單哦!
如何在CentOS 8上安裝和配置Postfix郵件服務器,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
Postfix是一個開源的電子郵件服務器,。Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。
系統:CentOS 8 服務器
IP 地址:192.168.1.13
主機名:server1.crazytechgeek.info(確保域名指向服務器的 IP)
第一步是確保系統軟件包是最新的。為此,請按如下所示更新系統:
# dnf update
繼續之前,還請確保不存在其他 MTA(如 Sendmail),因為這將導致與 Postfix 配置沖突。例如,要刪除 Sendmail,請運行以下命令:
# dnf remove sendmail
使用下面的 hostnamectl 命令在系統上設置主機名:
# hostnamectl set-hostname server1.crazytechgeek.info
# exec bash
此外,你需要在 /etc/hosts 中添加系統的主機名和 IP:
# vim /etc/hosts
192.168.1.13 server1.crazytechgeek.info
保存并退出文件。
驗證系統上沒有其他 MTA 在運行后,運行以下命令安裝 Postfix:
# dnf install postfix
Install-Postfix-Centos8
成功安裝 Postfix 后,運行以下命令啟動并啟用 Postfix 服務:
# systemctl start postfix
# systemctl enable postfix
要檢查 Postfix 狀態,請運行以下 systemctl 命令:
# systemctl status postfix
Start-Postfix-check-status-centos8
太好了,我們已經驗證了 Postfix 已啟動并正在運行。接下來,我們將配置 Postfix 從本地發送郵件到我們的服務器。
在配置 Postfix 服務器之前,我們需要安裝 mailx,要安裝它,請運行以下命令:
# dnf install mailx
Install-Mailx-CentOS8
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
測試我們的配置是否有效,首先,創建一個測試用戶。
# 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,如下所示:
Send-email-with-telnet-centos8
如果一切都按計劃進行,那么你應該可以在新用戶的家目錄中查看發送的郵件:
# ls /home/postfixuser/Maildir/new
1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
#
要閱讀郵件,只需使用 cat 命令,如下所示:
# cat /home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info
Read-postfix-email-linux
Postfix 郵件服務器郵件日志保存在文件 /var/log/maillog 中,使用以下命令查看實時日志,
# tail -f /var/log/maillog
postfix-maillogs-centos8
建議始終確保客戶端和 Postfix 服務器之間的通信安全,這可以使用 SSL 證書來實現,它們可以來自受信任的權威機構或自簽名證書。在本教程中,我們將使用 openssl 命令生成用于 Postfix 的自簽名證書,
我假設 openssl 已經安裝在你的系統上,如果未安裝,請使用以下 dnf 命令:
# dnf install openssl -y
使用下面的 openssl 命令生成私鑰和 CSR(證書簽名請求):
# openssl req -nodes -newkey rsa:2048 -keyout mail.key -out mail.csr
Postfix-Key-CSR-CentOS8
現在,使用以下 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
Read-Postfixuser-Email-CentOS8
從 postfixuser 發送郵件到外部域(root@linuxtechi.com):
# echo "External Test email" | mailx -s "Postfix MailServer" -r root@linuxtechi root@linuxtechi
注意:如果你的 IP 沒有被任何地方列入黑名單,那么你發送到外部域的郵件將被發送,否則它將被退回,并提示你的 IP 被 spamhaus 之類的數據庫列入黑名單。
使用 mailq 命令列出隊列中的郵件:
# mailq
Mail queue is empty
#
ok!我們的 Postfix 配置可以工作了!
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。