如何在CentOS 8上安装和配置Postfix邮件服务器
如何在CentOS 8上安装和配置Postfix邮件服务器
如何在CentOS 8上安装和配置Postfix邮件服务器,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Postfix是一个开源的电子邮件服务器,。Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
系统: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
Install-Postfix-Centos8
步骤 4)启动并启用 Postfix 服务
成功安装 Postfix 后,运行以下命令启动并启用 Postfix 服务:
-
# systemctl start postfix
-
# systemctl enable postfix
要检查 Postfix 状态,请运行以下 systemctl 命令:
-
# systemctl status postfix
Start-Postfix-check-status-centos8
太好了,我们已经验证了 Postfix 已启动并正在运行。接下来,我们将配置 Postfix 从本地发送邮件到我们的服务器。
步骤 5)安装 mailx 邮件客户端
在配置 Postfix 服务器之前,我们需要安装 mailx,要安装它,请运行以下命令:
-
# dnf install mailx
Install-Mailx-CentOS8
步骤 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,如下所示:
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 邮件服务器日志
Postfix 邮件服务器邮件日志保存在文件 /var/log/maillog 中,使用以下命令查看实时日志,
-
# tail –f /var/log/maillog
postfix-maillogs-centos8
保护 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
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 之类的数据库列入黑名单。
检查 Postfix 邮件队列
使用 mailq 命令列出队列中的邮件:
-
# mailq
-
Mail queue is empty
-
#
ok!我们的 Postfix 配置可以工作了!
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注高防服务器网行业资讯频道,感谢您对高防服务器网的支持。
[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。
[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[