RHEL7版-项目14使用Postfix与Dovecot收发电子邮件.pptx
第第1 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二Red Hat Enterprise Linux 7.3(RHEL 7.3)l课程标准课程标准( (教学大纲教学大纲) )l教学设计方案教学设计方案( (教案教案) )lPPTPPT电子课件电子课件l教材习题参考答案教材习题参考答案l模拟试卷及参考答案模拟试卷及参考答案(4(4套套) )l红帽认证红帽认证+ +全国技能大赛资料全国技能大赛资料l知识拓展知识拓展& &网络工程解决方案网络工程解决方案附赠光盘附赠光盘第第2 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二项目项目14 Postfix与与Dovecot邮件服务器的搭建邮件服务器的搭建第第3 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二14.1 项目描述项目描述电子邮件电子邮件(E_mail)是是Internet最早出现的服务之一最早出现的服务之一是人们利用计算机网络进行信息传递的一种简便是人们利用计算机网络进行信息传递的一种简便、迅速、廉价的现代化通信方式、迅速、廉价的现代化通信方式,它不但可以传送它不但可以传送文本文本,还可以传递图片、图像、声音等多媒体信息还可以传递图片、图像、声音等多媒体信息对一些企事业单位而言对一些企事业单位而言,拥有自己的邮件系统是高拥有自己的邮件系统是高效、安全业务运作与快速市场响应的标志效、安全业务运作与快速市场响应的标志,它不仅它不仅能够满足组织内部频繁的信件交流的需求能够满足组织内部频繁的信件交流的需求,还能够还能够提升组织形象并带来实际效益提升组织形象并带来实际效益,据统计据统计Internet上有上有30%的业务与电子邮件有关的业务与电子邮件有关,邮件系统正逐步成为邮件系统正逐步成为现代企事业内外信息交流、商务往来、移动办公现代企事业内外信息交流、商务往来、移动办公的重要工具。的重要工具。 第第4 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二 邮件递交代理邮件递交代理MDA负责把邮件按照接收者的用户名投负责把邮件按照接收者的用户名投递到邮箱中。递到邮箱中。电子邮件协议电子邮件协议 SMTP、Extended SMTP、POP3 、POP3S、IMAP4 、IMAP4S第第5 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二14.2.2 电子邮件传输过程电子邮件传输过程 第第6 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二14.2.3 Linux平台上主流平台上主流E_mail软件软件 类型类型名称名称特点特点发送邮件发送邮件服务器软件服务器软件SendmailSendmail资格最古老资格最古老, ,运行稳定运行稳定, ,但安全性欠佳但安全性欠佳PostfixPostfix采用模块化设计采用模块化设计, ,在投递效率、稳定性、性在投递效率、稳定性、性能及安全性方面表现优秀能及安全性方面表现优秀, ,与与sendmailsendmail保持保持足够的兼容性。足够的兼容性。QmailQmail采用模块化设计采用模块化设计, ,速度快、执行效率高速度快、执行效率高, ,配配置稍微复杂点置稍微复杂点接收邮件接收邮件服务器软件服务器软件DovecotDovecot速度很快、扩展性好、安全性好、速度很快、扩展性好、安全性好、架设、架设、操作与维护简便操作与维护简便Cyrus IMAPCyrus IMAP 速度快速度快, ,基于非系统用户认证加带基于非系统用户认证加带SMTPSMTP认证认证第第7 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二RHEL7默认安装了默认安装了Postfix)rootmail # rpm -qa | grep postfixpostfix-2.10.1-6.el7.x86_64 rootmail # systemctl is-active postfix文件位置及名称功能说明/etc/postfix/main.cf主配置文件/etc/postfix/master.cf运行参数配置文件,其规定了Postfix每个子程序的运行参数,默认已经配置好,通常不需要更改/etc/postfix/install.cf包含了安装过程中安装程序产生的Postfix初始化设置/etc/postfix/access访问控制文件,用来设置服务器为哪些主机进行转发邮件,即用于实现中继代理。设置完毕后,需要在main.cf中启用,并使用postmap生成相应的数据库文件/etc/postfix/header_checks主要用于邮件头内容过滤,通过正则匹配确认策略,也可以将该文件复制设置body过滤/etc/postfix/virtual虚拟别名域库文件,用来设置虚拟账号和域的数据库文件,需要在main.cf文件中启用/etc/aliases别名文件,用来定义邮箱别名,设置完毕后,需要在main.cf中启用,并使用postalias或newaliases生成相关数据库第第8 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二Postfix绝大多数配置参数都在绝大多数配置参数都在main.cf文件中文件中,且都设置了缺省值。用户只且都设置了缺省值。用户只要调整几个基本的参数便可搭建起基本的接收邮件服务器。要调整几个基本的参数便可搭建起基本的接收邮件服务器。 配置行的格式为配置行的格式为:参数参数=参数值参数值|$参数。参数。所有配置以类似变量的设置方法来处理所有配置以类似变量的设置方法来处理,如如:myhostname = ,请注意等号的两边要留空格符请注意等号的两边要留空格符,非续行的配置行第一个非续行的配置行第一个字符不可以是空白字符不可以是空白,要从行首写起。要从行首写起。可以使用可以使用“$”来扩展使用变量设置。例如来扩展使用变量设置。例如,当当myhostname = ,而而myorigin=$myhostname时时,则后者等价于则后者等价于myorigin = 。如果参数支持两个以上的参数值如果参数支持两个以上的参数值,则可使用空格符或逗号加空格符来分隔。如则可使用空格符或逗号加空格符来分隔。如:“mydestination = $myhostname, $mydomain, ”可使用多行来表示同一个设置值可使用多行来表示同一个设置值,只要在第一行最后有逗号只要在第一行最后有逗号,且第二行开头为空且第二行开头为空格符格符,即可将数据延伸到第二行继续书写。即可将数据延伸到第二行继续书写。若重复设置了某一项目若重复设置了某一项目,则以较晚出现的设置值为准。则以较晚出现的设置值为准。第第9 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二Postfix的相关指令见表14-3。命令格式功能说明postconf -n|d查看postfix当前有效配置,-n查看非默认配置,-d查看默认配置postfix check检查 postfix 相关的档案、权限等是否正确postfix start| stop |reload开始执行或关闭 postfix或重新读入配置文件/etc/postfix/main.cfpostfix flush强制将目前正在邮件队列的邮件寄出postalias hash:/etc/aliases别名数据库生成指令,执行后会依据/etc/aliases 文件生成 /etc/aliases.db postcat /var/spool/postfix/maildrop/F36DDC08FF用于查看邮件队列中的邮件内容postmap hash:/etc/postfix/access用于生成access文件为数据库文件:postqueue -p其输出类似于mailq第第10 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二 【例14-1】Postfix和DNS服务在IP地址为192.168.1.1的同一主机,主机名为mail.dyzx.edu。配置服务器使得该服务器能为192.168.0.0/16网段的用户发送本地邮件域dyzx.edu中的邮件,以及中继转发远程邮件域的邮件。配置的步骤如下配置的步骤如下:步骤步骤1:设置设置Postfix服务器所在主机的主机名服务器所在主机的主机名其中主机名的设置命令如下其中主机名的设置命令如下:rootmail # hostnamectl -static set-hostname mail.dyzx.edu第第11 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤2:安装与配置安装与配置DNS服务服务启动或重启启动或重启unbound服务服务,并并设置为开机自动启动。设置为开机自动启动。rootmail # mount /dev/cdrom /mntrootmail # rpm -ivh /mnt/Packages/unbound-1.4.20-28.el7.x86_64.rpmrootmail # vim /etc/unbound/unbound.confinterface: 192.168.1.1/38行:设置DNS服务监听的端口do-ip4: yes/151行:开启监听ipv4地址access-control: 0.0.0.0/0 allow /177行:允许所有地址访问,allow表示允许,refuse表示拒绝username: ”/211行:改成空字符串,表示任何用户均可访问local-zone: dyzx.edu. static/455行:设置解析的区域名/以下4行local-data定义的是正向解析记录local-data: dyzx.edu. 86400 IN SOA ns.dyzx.edu. root.dyzx.edu 200 3600 1800 7200 86400local-data: ns.dyzx.edu. IN A 192.168.1.1local-data: dyzx.edu. IN MX 5 mail.dyzx.edu.local-data: mail.dyzx.edu. IN A 192.168.1.1:wq/保存退出rootmail # systemctl start unboundrootmail # systemctl enable unbound第第12 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤3:安装Postfix服务软件(默认已安装)编辑主配置文件main.cf,调整基本配置项检查配置文件的语法正确性重启Postfix服务并设置在系统开机时自动启动。rootmail # vim /etc/postfix/main.cfmyhostname = mail.dyzx.edu/75行:设置Postfix服务器使用的FQDN(完全合格域名)mydomain = dyzx.edu/83行:设置Postfix服务器的本地邮件域的域名myorigin = $mydomain/99行:发件人所在的域名(即发件人邮箱地址后的地址)inet_interfaces = all/116行:设置Postfix系统侦听传入和传出邮件的网络接口mydestination = $myhostname,localhost.$mydomain,localhost,$mydomain /166行:允许接收的邮件域的域名mynetworks = 192.168.0.0/16 /264行:允许发送邮件的客户端的IP地址relay_domains = $mydestination/295行:允许中转的本地或远程邮件域的域名home_mailbox = Maildir/419行:设置邮件存储位置和格式:wq/保存退出rootmail # postfix check/执行后若未出现任何信息,表示没有语法错误rootmail # systemctl restart postfixrootmail # systemctl enable postfix第第13 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤4:创建邮箱的用户账号。创建邮箱的用户账号。Postfix服务器使用服务器使用Linux系统中的用户账系统中的用户账号作为邮箱的用户账号号作为邮箱的用户账号,因此只要在因此只要在Linux系统中直接建立系统中直接建立Linux用户账号用户账号便可。便可。步骤步骤5:打开打开SELinux有关的布尔值有关的布尔值在防火墙中开放在防火墙中开放dns和和smtp访问访问流量。流量。rootmail # groupadd stu_mail/建立邮箱的组账号rootmail # adduser -g stu_mail -s /sbin/nologin zhang3/建立邮箱的用户rootmail # adduser -g stu_mail -s /sbin/nologin li4rootmail # adduser -g stu_mail -s /sbin/nologin wang5rootmail # passwd zhang3/设置用户密码rootmail # passwd li4rootmail # passwd wang5rootmail # setsebool -P allow_postfix_local_write_mail_spool onrootmail # firewall-cmd -permanent -add-service=dnsrootmail # firewall-cmd -permanent -add-service=smtprootmail # firewall-cmd -reload第第14 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤6:在在Linux客户端修改客户端修改DNS域名解析配置文件。域名解析配置文件。步骤步骤7:为了使用为了使用telnet工具进行发信测试工具进行发信测试,安装安装telnet的服务器端和客的服务器端和客户端软件包。户端软件包。rootmail # vim /etc/resolv.confnameserver 192.168.1.1rootmail # mount /dev/cdrom /mntrootmail # rpm -ivh /mnt/Packages/telnet-server-0.17-60.el7.x86_64.rpmrootmail # rpm -ivh /mnt/Packages/telnet-0.17-60.el7.x86_64.rpm步骤步骤8:启动启动telnet服务服务设置在开机时自动启动设置在开机时自动启动开放开放telnet服务的端服务的端口。口。rootmail # systemctl start telnet.socketrootmail # systemctl enable telnet.socketrootmail # firewall-cmd -permanent -add-port=23/tcprootmail # firewall-cmd -reload第第15 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤9:发信测试发信测试(下面粗体部分为用户输入下面粗体部分为用户输入,其余为系统应答信息其余为系统应答信息)。rootmail # telnet mail.dyzx.edu 25/使用telnet命令连接邮件服务器的25端口Trying 192.168.1.1./正在连接IP地址为192.168.1.1的服务器Connected to mail.dyzx.edu./连接服务器成功Escape character is .220 mail.dyzx.eduESMTP PostfixHELO localhost/向服务器告知客户端地址(主机名)250 mail.dyzx.eduMAIL FROM: zhang3dyzx.edu/告知发件人地址250 2.1.0 OkRCPT TO: li4dyzx.edu/告知收件人地址250 2.1.5 OkDATA/告知服务器要开始传送数据了354 End data with .Subject: the first Mail/告知邮件的主题(标题)hello,ervery body!/邮件正文./邮件内容以点“.”结束250 2.0.0 Ok: queued as EC46E41152QUIT/退出telnet命令,结束本次会话221 2.0.0 ByeConnection closed by foreign host.第第16 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤10:查看发送结果。对于发送给本地邮件域的邮件查看发送结果。对于发送给本地邮件域的邮件,发送成功后发送成功后,会在会在服务器的收件人用户服务器的收件人用户(如如:li4)的家目录的家目录(/home/li4/Maildir/new)下存放其下存放其邮件邮件,通过通过ls、cat命令可以分别查看邮件文件的名称和内容。命令可以分别查看邮件文件的名称和内容。rootmai1 # ls /home/li4/Maildir/new/查看邮件存放的目录中产生的邮件文件清单1456305931.V803I21a5517M24227.mail.dyzx.edu rootmai1 # cat /home/li4/Maildir/new/1456305931.V803I21a5517M24227.mail.dyzx.eduReturn-Path: zhang3dyzx.edu/退信地址X-Original-To: li4dyzx.edu/来源地址Delivered-To: li4dyzx.edu/提交目标地址Received: from localhost (mail.dyzx.edu 192.168.1.1)by mail.dyzx.edu (Postfix) with SMTP id E0B7D21A1B1Afor ; Wed, 24 Feb 2016 17:23:49 +0800 (CST)Subject: the first MailMessage-Id: Date: Wed, 24 Feb 2016 17:23:49 +0800 (CST)From: zhang3dyzx.edu/发件人地址hello,ervery body! /邮件的正文第第17 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二1dovecot服务的安装服务的安装RHEL7.3安装程序默认未安装安装程序默认未安装Dovecot,在配置好本地光盘在配置好本地光盘yum源的基础源的基础上上(参见任务参见任务6-7),安装安装Dovecot软件包的命令如下软件包的命令如下:rootmail # vim /etc/dovecot/dovecot.conf/查找以下配置行并将其修改为:protocols = imap pop3 lmtp /24行:指定本邮件主机所运行的协议listen = * /30行:监听本机的所有网络接口login_trusted_networks = 192.168.0.0/16 /48行:指定允许登录的网段地址2dovecot服务的基本配置服务的基本配置步骤步骤1:要启用最基本的要启用最基本的Devocot服务服务,需对文件需对文件/etc/dovecot/dovecot.conf作如下修改作如下修改:rootmail # yum -y install dovecot第第18 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤3:开启开启Firewalld防火墙允许防火墙允许POP/IMAP服务流量服务流量,POP使用使用110/TCP,IMAP使用使用143/TCP启动启动Dovecot服务并设置为开机自动启服务并设置为开机自动启动。动。rootmail # firewall-cmd -permanent -zone=public -add-port=110/tcp,143/tcp rootmail # firewall-cmd -reloadrootmail # systemctl start dovecotrootmail # systemctl enable dovecot步骤步骤2:修改修改/etc/dovecot/conf.d/10-mail.conf子配置文件子配置文件,指定邮件存指定邮件存储格式。储格式。rootmail # vim /etc/dovecot/conf.d/10-mail.conf/查找以下配置行(第24行)并将行首“#”去掉mail_location = maildir:/Maildir/ 24行:指定邮件存储格式和位置第第19 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二1在客户端建立电子邮件账户在客户端建立电子邮件账户步骤步骤1:若在服务器端开启防火墙,则要在服务器端使用以下命令开启25和110端口。rootmail # firewall-cmd -permanent -zone=public -add-port=25/tcp,110/tcprootmail # firewall-cmd -reload步骤步骤2:配置客户端配置客户端DNS地址地址,使其指向网络中使其指向网络中DNS服务器的服务器的IP地址地址(如如192.168.1.1)。步骤步骤3:单击单击【开始开始】【所有程序所有程序】【Microsoft Office】【Microsoft Outlook 2010】,打开打开Outlook 2010主窗口主窗口依次单击依次单击【文文件件】【信息信息】【添加账户添加账户】,如图如图14-3所示。所示。步骤步骤4:在打开的在打开的【自动账户设置自动账户设置】对话框中勾选对话框中勾选【手动配置服务器设置手动配置服务器设置或其他服务器类型或其他服务器类型】单击单击【下一步下一步】按钮按钮,如图如图14-4所示。所示。第第20 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤5:打开打开【选择服务选择服务】对话框对话框,单击单击【Internet电子邮件电子邮件】单选按钮单选按钮单击单击【下一步下一步】按钮按钮,打开打开【Internet电子邮件设置电子邮件设置】对话框对话框填写用户填写用户、服务器和登录等信息、服务器和登录等信息单击单击【其他设置其他设置】按钮按钮,如图如图14-5所示。所示。第第21 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤6:打开打开【Internet电子邮件设置电子邮件设置】对话框对话框,单击单击【发送服务器发送服务器】选项选项卡卡取消勾选取消勾选【我的发送服务器我的发送服务器(SMTP)要求验证要求验证】,如图如图14-6所示。所示。步骤步骤7:单击单击【高级高级】选项卡选项卡勾选勾选【在服务器上保留邮件的副本在服务器上保留邮件的副本】,以以便使邮件不仅在客户机上保存便使邮件不仅在客户机上保存,还在邮件服务器上保存还在邮件服务器上保存单击单击【确定确定】按钮按钮,如图如图14-7所示。所示。第第22 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤8:系统返回系统返回【Internet电子邮件设置电子邮件设置】对话框对话框,单击单击【测试账户设置测试账户设置】按钮按钮弹出弹出【测试账户设置测试账户设置】对话框开始测试对话框开始测试,若测试任务的状态均显若测试任务的状态均显示示“已完成已完成”,则表明设置正确则表明设置正确单击单击【关闭关闭】按钮按钮,如图如图14-8所示。所示。步骤步骤9:系统返回系统返回【Internet电子邮件设置电子邮件设置】对话框对话框系统再次测试后返回系统再次测试后返回,单击单击【下一步下一步】按钮按钮,打开打开【祝贺您!祝贺您!】对话框对话框,单击单击【添加其他账户添加其他账户】可继续添加账户可继续添加账户,若添加完毕则单击若添加完毕则单击【完成完成】按钮按钮,结束账户的添加结束账户的添加,如图如图14-9所示。所示。步骤步骤10:重复步骤重复步骤3步骤步骤9过程可建立多个账户。过程可建立多个账户。第第23 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤1:在客户端进入Outlook 2010主窗口单击【开始】选项卡单击【新建电子邮件】按钮在打开的【未命名-邮件】窗口中单击【发件人】下拉按钮选择发件人输入收件人的邮箱地址、主题和邮件内容单击【发送】按钮,如图14-10所示。第第24 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二2用户在客户端收发电子邮件用户在客户端收发电子邮件步骤步骤2:若能成功发送邮件则说明SMTP服务器运行正常。在Outlook 2010主窗口上点击【发送/接收】图标【发送/接收所有文件夹】,若成功接收,说明POP3服务运行也正常,如图14-11所示。第第25 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二在在Postfix邮件系统中邮件系统中,发给一个别名用户邮件地址的邮件会发给一个别名用户邮件地址的邮件会实际投递到相对应的一个或多个真实用户的邮箱中实际投递到相对应的一个或多个真实用户的邮箱中,从而实从而实现邮件一发多收的群发效果。另外现邮件一发多收的群发效果。另外,当真实用户采取实名制当真实用户采取实名制,而别名使用非实名制时而别名使用非实名制时,那又起到了隐藏真实邮件地址的效那又起到了隐藏真实邮件地址的效果。果。用户别名机制通过用户别名机制通过/etc/aliases文件实现文件实现,其配置步骤如下其配置步骤如下:步骤步骤1:编辑编辑main.cf,确认文件中包含如下两条语句确认文件中包含如下两条语句(默认默认已存在已存在):rootmail # vim /etc/postfix/main.cfalias_maps = hash:/etc/aliases/ /386行:指定含有用户别名定义的文件的路径及名称alias_database = hash:/etc/aliases/397行:指定别名表数据库文件的路径及名称第第26 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤2:编辑编辑/etc/aliases文件文件,在文件尾添加别名用户与真实用户的映射在文件尾添加别名用户与真实用户的映射关系。关系。rootmail # vim /etc/aliases/添加以下两行:admin: zhang3dyzx.edumy_stu: zhang3, li4, wang5步骤步骤3:执行如下命令执行如下命令,使修改后的配置文件使修改后的配置文件main.cf和和aliases立即生效。立即生效。rootmail # postalias /etc/aliases /生成可以读取的库文件aliases.dbrootmail # newaliasesrootmail # systemctl reload postfix第第27 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤4:给用户别名my_studyzx.edu发邮件,验证邮件群发效果,如图14-12所示。除了使用用户别名实现邮件群发除了使用用户别名实现邮件群发,还可以使用虚拟别名域实现邮件群发。还可以使用虚拟别名域实现邮件群发。第第28 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二使用使用smtpd_client_restrictions参数对客户端使用的参数对客户端使用的IP地址、网络地址地址、网络地址、主机名、域名等进行过滤检查、主机名、域名等进行过滤检查 步骤步骤1:修改修改main.cf文件文件,添加基于客户端地址的过滤项目添加基于客户端地址的过滤项目 rootmail # smtpd_client_restrictions = /基于客户端地址的过滤参数,以下是2个参数值 check_client_access hash:/etc/postfix/access /指定验证访问表的名称及位置 reject_unknown_client /拒绝其IP地址在DNS中无PTR记录的客户端步骤步骤2:编辑编辑access文件文件,在其中添加基于客户端地址的过滤规则在其中添加基于客户端地址的过滤规则rootmail # 192.168.1 OK192.168.1.18 REJECT REJECT:wq/保存退去。rootmail # postmap /etc/postfix/access/将access文件转换为hash数据库文件access.dbrootmail # systemctl reload postfix第第29 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤3:验证。验证。当发件人所在客户机的IP地址为被拒绝的192.168.1.18时,会出现“发送/接收错误”的报告,如图14-13所示。第第30 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二2基于发件人地址的限制规则基于发件人地址的限制规则使用使用smtpd_sender_restrictions参数可以针对发件人的地址设置多项参数可以针对发件人的地址设置多项限制限制步骤步骤1:修改修改main.cf文件文件,添加基于发件人地址的过滤项目添加基于发件人地址的过滤项目rootmail # vim /etc/postfix/main.cfsmtpd_sender_restrictions = /基于发件人的过滤参数 permit_mynetworks, /允许其IP地址在$mynetworks范围的发件人的连接 reject_sender_login_mismatch,/拒绝发件人与登录用户不匹配时的连接 reject_non_fqdn_sender,/拒绝发件人地址域不是FQDN格式的连接 reject_unknown_sender_domain,/拒绝其IP在DNS中无A或MX记录的发件人 check_sender_access hash:/etc/postfix/sender_access/指定发件人访问表的位置rootmail # postfix reload步骤步骤2:创建创建sender_access文件文件,在其中添加基于发件人地址的过滤规则在其中添加基于发件人地址的过滤规则rootmail # vim /etc/postfix/sender_accessli4dyzx.edu REJECT /拒绝Li4dyzx.edu用户从外部登录发送邮件liu2 REJECT /拒绝任何域的liu2用户发送邮件sub.dyzx.edu REJECT /拒绝dyzx.edu的子域用户发送邮件rootmail # postmap /etc/postfix/sender_access /生成hash格式的库文件第第31 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二3基于收件人地址的限制规则基于收件人地址的限制规则通过通过smtpd_recipient_restrictions参数可以对收件人进行过滤检查参数可以对收件人进行过滤检查rootmail # vim /etc/postfix/main.cfsmtpd_recipient_restrictions = /基于收件人的过滤参数 permit_mynetworks,/允许本邮件系统发出的邮件 reject_unauth_destination,/拒绝不是发往默认转发和默认接收的连接 reject_non_fqdn_recipient,/拒绝其地址域不属于合法FQDN的收件人 reject_unknown_recipient_domain/拒绝其IP在DNS中无A或MX记录的收件人rootmail # postfix reload通过Postfix默认转发的邮件是:来自$mynetworks中发送的邮件,发往$relay_domains中的域或其子域的邮件,但是不能包含邮件路由。Postfix默认接收的邮件是:发送目标在$inet_interfaces、$mydestinations、$virtual_alias_domains、$virtual_mailbox_domains中的邮件第第32 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二无论是本地域内的不同用户还是本地域与远程域的用户无论是本地域内的不同用户还是本地域与远程域的用户,要要实现邮件通信都要求邮件服务器开启邮件的转发功能。为了实现邮件通信都要求邮件服务器开启邮件的转发功能。为了避免邮件服务器成为各类广告与垃圾信件的中转站和集结地避免邮件服务器成为各类广告与垃圾信件的中转站和集结地,对转发邮件的客户端进行身份认证对转发邮件的客户端进行身份认证(用户名和密码验证用户名和密码验证)是非是非常必要的。常必要的。SMTP认证机制常用的是通过认证机制常用的是通过Cryus SASL包来实现的包来实现的,其具其具体配置步骤如下体配置步骤如下: 步骤步骤1: RHEL7默认已经安装了默认已经安装了Cyrus-SASL认证包。认证包。rootmai1 # rpm -qa | grep saslcyrus-sasl-scram-2.1.26-20.el7_2.x86_64cyrus-sasl-plain-2.1.26-20.el7_2.x86_64cyrus-sasl-md5-2.1.26-20.el7_2.x86_64cyrus-sasl-lib-2.1.26-20.el7_2.x86_64cyrus-sasl-2.1.26-20.el7_2.x86_64第第33 页页LinuxLinux网络操作系统配置与管理网络操作系统配置与管理2022年年5月月31日星期二日星期二步骤步骤2:查看、选择、启动和测试所选的密码验证方式 rootmail # saslauthd -v /查看支持的密码验证方法saslauthd 2.1.26authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap ht