当前位置: 首页 > 科技观察

如何在CentOS8上安装和配置Postfix邮件服务器

时间:2023-03-14 18:23:50 科技观察

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/hosts192.168.1.13server1.crazytechgeek.info保存并退出文件。步骤3)安装Postfix邮件服务器确认系统上没有其他MTA运行后,运行以下命令安装Postfix:#dnfinstallpostfixInstall-Postfix-Centos8步骤4)启动并启用Postfix服务成功安装Postfix后,运行以下命令启动和启用Postfix服务:#systemctlstartpostfix#systemctlenablepostfix要检查Postfix状态,请运行以下systemctl命令:#systemctlstatuspostfixStart-Postfix-check-status-centos8很好,我们已经验证了Postfix已启动并正在运行。接下来,我们将配置Postfix以将邮件本地发送到我们的服务器。Step5)安装mailx邮件客户端在配置Postfix服务器之前,我们需要安装mailx,安装它,运行以下命令:#dnfinstallmailxInstall-Mailx-CentOS8Step6)配置Postfix邮件服务器Postfix的配置文件位于/etc/后缀/main.cf。我们需要对配置文件进行一些更改,因此请使用您喜欢的文本编辑器打开它:#vi/etc/postfix/main.cf更改以下行:myhostname=server1.crazytechgeek.infomydomain=crazytechgeek.infomyorigin=$mydomain##取消注释并将inet_interfaces设置为所有##inet_interfaces=all##更改为所有##inet_protocols=all##comment###mydestination=$myhostname,localhost.$mydomain,localhost##uncomment##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~]#telnetlocalhost25Trying127.0.0.1...Connectedtolocalhost.Escapecharacteris'^]'.220server1.crazytechgeek.infoESMTPPostfix以上结果确认连接到postfix邮件服务器是正常的。接下来,输入命令:#ehlolocalhost输出如下所示:250-server1.crazytechgeek.info250-PIPELINING250-SIZE10240000250-VRFY250-ETRN250-STARTTLS250-ENHANCEDSTATUSCODES250-8BITMIME250-DSN250SMTPUTF8接下来,运行以橙色突出显示的命令,对于例如mailfrom,rcptto,data,最后输入quit:mailfrom:2502.1.0Okrcptto:2502.1.5Okdata354Enddatawith.LF>Hello,Welcometomymailserver(Postfix).2502.0.0Ok:queuedasB56BF1189BECquit2212.0.0ByeConnectionclosedbyforeignhost完成telnet命令从本地用户pkumar向另一个本地用户postfixuser发送邮件,如下:Send-email-with-telnet-centos8如果一切按计划进行,您应该能够在新用户的主目录中查看已发送的邮件:#ls/home/postfixuser/Maildir/new1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info#要阅读邮件,只需像这样使用cat命令:#cat/home/postfixuser/Maildir/new/1573580091.Vfd02I20050b8M635437.server1.crazytechgeek.infoRead-postfix-email-linuxPostfix邮件服务器日志Postfix邮件服务器邮件日志保存在一个文件中/var/log/maillog中,使用以下命令查看实时日志,#tail-f/var/log/maillogpostfix-maillogs-centos8保护Postfix邮件服务器的安全建议始终保护客户端和Postfix服务器之间的通信。这可以使用SSL证书来实现,该证书可以来自受信任的机构或自签名证书。在本教程中,我们将使用openssl命令生成一个ForPostfix的自签名证书,我假设您的系统上已经安装了openssl,如果没有,请使用以下dnf命令:#dnfinstallopenssl-y使用以下openssl命令生成私钥和CSR(证书签名请求):#opensslreq-nodes-newkeyrsa:2048-keyoutmail.key-outmail.csrPostfix-Key-CSR-CentOS8现在,使用以下openssl命令生成自签名证书:#opensslx509-req-days365-inmail.csr-signkeymail.key-outmail.crtSignatureoksubject=C=IN,ST=NewDelhi,L=NewDelhi,O=IT,OU=IT,CN=server1.crazytechgeek.info,emailAddress=root@linuxtechiGettingPrivatekey#现在将私钥和证书文件复制到/etc/postfix目录:#cpmail.keymail.crt/etc/postfix更新路径Postfix配置文件中的私钥和证书文件:#vi/etc/postfix/main.cf.........smtpd_use_tls=yessmtpd_tls_cert_file=/etc/postfix/mail.crtsmtpd_tls_key_file=/etc/postfix/mail.keysmtpd_tls_security_level=may...重启Postfix服务使以上修改生效:#systemctlrestartpostfix让我们尝试使用mailx客户端向内部发送邮件本地域和外部域。从pkumar发送内部本地邮件到postfixuser:#echo"testemail"|mailx-s"TestemailfromPostfixMailServer"-rroot@linuxtechiroot@linuxtechi使用以下命令查看和阅读邮件:#cd/home/postfixuser/Maildir/new/#lltotal8-rw-------.1postfixuserpostfixuser476Nov1217:341573580091.Vfd02I20050b8M635437.server1.crazytechgeek.info-rw------.1postfixuserpostfixuser612Nov1302:401573612845.Vfd02I20050bbtechcrazy.info-rw.46661573612845.Vfd02I20050bbM466643.server1.crazytechgeek.infoRead-Postfixuser-Email-CentOS8从postfixuser发送邮件到外部空间(root@linuxtechi.com):#echo"ExternalTestemail"|mailx-s"PostfixMailServer"-rroot@linuxtechiroot@linuxtechi注意:如果你的IP没有在任何地方被列入黑名单,那么你发往外域的邮件将被投递,否则将被退回,并提示你的IP被数据库列入黑名单,例如作为垃圾邮件之家。检查Postfix邮件队列使用mailq命令列出队列中的邮件:#mailqMailqueueisempty#Done!我们的Postfix配置正在运行!就这样吧。我们希望您发现本教程有见地,并且您可以轻松设置本地Postfix服务器。