如何在CentOS8上安装和配置Postfix邮件服务器的方法示例
Postfix是一个自由开源的MTA(邮件传输代理),用于在Linux系统上路由或传递电子邮件。在本指南中,你将学习如何在CentOS8上安装和配置Postfix。
实验室设置:
- 系统:CentOS8服务器
- IP地址:192.168.1.13
- 主机名:server1.crazytechgeek.info(确保域名指向服务器的IP)
步骤1)更新系统
第一步是确保系统软件包是最新的。为此,请按如下所示更新系统:
#dnfupdate
继续之前,还请确保不存在其他MTA(如Sendmail),因为这将导致与Postfix配置冲突。例如,要删除Sendmail,请运行以下命令:
#dnfremovesendmail
步骤2)设置主机名并更新/etc/hosts
使用下面的hostnamectl命令在系统上设置主机名:
#hostnamectlset-hostnameserver1.crazytechgeek.info #execbash
此外,你需要在/etc/hosts中添加系统的主机名和IP:
#vim/etc/hosts 192.168.1.13server1.crazytechgeek.info
保存并退出文件。
步骤3)安装Postfix邮件服务器
验证系统上没有其他MTA在运行后,运行以下命令安装Postfix:
#dnfinstallpostfix
步骤4)启动并启用Postfix服务
成功安装Postfix后,运行以下命令启动并启用Postfix服务:
#systemctlstartpostfix #systemctlenablepostfix
要检查Postfix状态,请运行以下systemctl命令:
#systemctlstatuspostfix
太好了,我们已经验证了Postfix已启动并正在运行。接下来,我们将配置Postfix从本地发送邮件到我们的服务器。
步骤5)安装mailx邮件客户端
在配置Postfix服务器之前,我们需要安装mailx,要安装它,请运行以下命令:
#dnfinstallmailx
步骤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服务以使更改生效:
#systemctlrestartpostfix
步骤7)测试Postfix邮件服务器
测试我们的配置是否有效,首先,创建一个测试用户。
#useraddpostfixuser #passwdpostfixuser
接下来,运行以下命令,从本地用户pkumar发送邮件到另一个用户postfixuser。
#telnetlocalhostsmtp 或者 #telnetlocalhost25
如果未安装telnet服务,那么可以使用以下命令进行安装:
#dnfinstalltelnet-y
如前所述运行命令时,应获得如下输出:
[root@linuxtechi~]#telnetlocalhost25 Trying127.0.0.1... Connectedtolocalhost. Escapecharacteris'^]'. 220server1.crazytechgeek.infoESMTPPostfix
上面的结果确认与postfix邮件服务器的连接正常。接下来,输入命令:
#ehlolocalhost
输出看上去像这样:
250-server1.crazytechgeek.info
250-PIPELINING
250-SIZE10240000
250-VRFY
250-ETRN
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-8BITMIME
250-DSN
250SMTPUTF8
接下来,运行橙色高亮的命令,例如mailfrom、rcptto、data,最后输入quit:
mailfrom:2502.1.0Ok rcptto: 2502.1.5Ok data 354Enddatawith . Hello,Welcometomymailserver(Postfix) . 2502.0.0Ok:queuedasB56BF1189BEC quit 2212.0.0Bye Connectionclosedbyforeignhost
完成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命令:
#dnfinstallopenssl-y
使用下面的openssl命令生成私钥和CSR(证书签名请求):
#opensslreq-nodes-newkeyrsa:2048-keyoutmail.key-outmail.csr
现在,使用以下openssl命令生成自签名证书:
#opensslx509-req-days365-inmail.csr-signkeymail.key-outmail.crt Signatureok subject=C=IN,ST=NewDelhi,L=NewDelhi,O=IT,OU=IT,CN=server1.crazytechgeek.info,emailAddress=root@linuxtechi GettingPrivatekey #
现在将私钥和证书文件复制到/etc/postfix目录下:
#cpmail.keymail.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服务以使上述更改生效:
#systemctlrestartpostfix
让我们尝试使用mailx客户端将邮件发送到内部本地域和外部域。
从pkumar发送内部本地邮件到postfixuser中:
#echo"testemail"|mailx-s"TestemailfromPostfixMailServer"-rroot@linuxtechiroot@linuxtechi
使用以下命令检查并阅读邮件:
#cd/home/postfixuser/Maildir/new/ #ll total8 -rw-------.1postfixuserpostfixuser476Nov1217:341573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info -rw-------.1postfixuserpostfixuser612Nov1302:401573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info #cat1573612845.Vfd02I20050bbM466643.server1.crazytechgeek.info
从postfixuser发送邮件到外部域(root@linuxtechi.com):
#echo"ExternalTestemail"|mailx-s"PostfixMailServer"-rroot@linuxtechiroot@linuxtechi
注意:如果你的IP没有被任何地方列入黑名单,那么你发送到外部域的邮件将被发送,否则它将被退回,并提示你的IP被spamhaus之类的数据库列入黑名单。
检查Postfix邮件队列
使用mailq命令列出队列中的邮件:
#mailq Mailqueueisempty #
完成!我们的Postfix配置正常工作了!目前就这样了。我们希望你觉得本教程有见地,并且你可以轻松地设置本地Postfix服务器。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。