[RHEL5企业级Linux服务攻略]--第5季 Sendmail服务全攻略之常规配置 1.Sendmail服务软件包 sendmail-8.13.8-2.el5.i386.rpm:sendmail服务的主程序包,服务器端必须安装该软件包。 2.Sendmail相关配置文档 sendmail.cf:sendmail核心配置文件,位于/etc/mail/sendmail/sendmail.cf sendmail.mc:sendmail提供sendmail文件模板,通过编辑此文件后再使用m4工具将结果导入sendmail.cf完成配置sendmail核心配置文件,降低配置复杂度,位于/etc/mail/sendmail.mc local-host-name:定义收发邮件服务器的域名和主机别名,位于/etc/mail/local-host-name access.db:用来设置sendmail服务器为哪些主机进行转发邮件,位于/etc/mail/access.db aliases.db:用来定义邮箱别名,位于/etc/mail/aliases.db virtusertable.db:用来设置虚拟账户,位于/etc/mail/virtusertable.db 3.邮件功能组件 MUA:邮件用户代理(Mail User Agent) MTA:邮件传输代理(Mail Transfer Agent) MDA:邮件递送代理(Mail Delivery Agent) 4.Sendmail常规服务器配置 搭建Sendmail服务器流程: (1)配置sendmail.mc文件 (2)使用m4工具将sendmail.mc文件导入sendmail.cf文件 (3)配置local-host-names文件 (4)建立用户账号 (5)重新启动服务使配置生效 Sendmail应用案例1: 局域网网段:192.168.8.0/24 企业域名:redking.com DNS及Sendmail服务器地址:192.168.8.1 sendmail服务是和DNS服务结合相当紧密的一个服务,所以我们在配置sendmail之前,需要设置并调试好DNS服务器(DNS配置请参考上季[RHEL5企业级Linux服务攻略]--第4季 DNS服务全攻略),DNS配置中设置MX资源记录指定邮件服务器地址。 (1)配置DNS主配置文件named.conf (2)配置redking.com区域文件 使用MX记录设置邮件服务器,这条记录一定要有,否则Sendmail无法正常工作。 (3)配置redking.com反向区域文件 (4)修改DNS域名解析的配置文件 vim /etc/resolv.conf (5)重启named服务使配置生效 (6)安装Sendmail软件包 RHEL5默认安装sendmail-8.13.8-2.el5及m4-1.4.5-3.el5.1软件包,我们只需要安装sendmail-cf-8.13.8-2.el5宏文件包就可以了。 (7)编辑sendmail.mc修改SMTP侦听网段范围 配置邮件服务器需要更改IP地址为公司内部网段或者0.0.0.0,这样可以扩大侦听范围(通常都设置成0.0.0.0),否则邮件服务器无法正常发送邮件。 vim /etc/mail/sendmail.mc 第116行将smtp侦听范围从127.0.0.1改为0.0.0.0 第155行修改成自己域:LOCAL_DOMAIN(`redking.com')dnl 使用m4命令生成sendmail.cf文件,其实sendmail.mc即是一个模板文件哈~ m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf (8)修改local-host-names文件添加域名及主机名 vim /etc/mail/local-host-names (9)安装Dovecot软件包(POP3和IMAP) 到这里sendmail服务器基本配置完成后,Mail Server就可以完成邮件发送工作,如果需要使用POP3和IMAP协议接收邮件还需要安装dovecot软件包。在rhel5里dovecot整合了IMAP。 安装dovecot软件包要解决其依赖性,安装per-DBI-1.52-1.fc6.i386.rpm和mysql-5.0.22-2.1.0.1.i386.rpm (10)启动Sendmail服务 service sendmail restart和service dovecot restart命令启动sendmail和dovecot服务,如果每次开机启动,可以使用chkconfig命令修改。 (11)测试端口 使用netstat命令测试是否开启SMTP的25端口、POP3的110端口及IMAP的143端口。 也可以使用netstat -ntla (12)验证Sendmail的SMTP认证功能 telnet localhost 25 后输入ehlo localhost验证Sendmail的SMTP认证功能 telnet localhost 110 telnet mail.redking.com 25 telnet mail.redking.com 110 (13)建立用户 (14)客户端测试 Sendmail应用案例2: 公司采用两个网段和两个域来分别管理内部员工 team1.redking.com域采用192.168.10.0/24网段 team2.redking.com域采用192.168.20.0/24网段 DNS及Sendmail服务器地址:192.168.8.1 要求: (1)员工可以自由收发内部邮件并且能够通过邮件服务器往外网发信。 (2)设置两个邮件群组team1和team2,确保发送给team1的邮件“team1.redking.com”域成员都可以收到,同理哈,发送给team2的邮件“team2.redking.com”域成员都可以收到。 (3)禁止待客室的主机192.168.10.88使用Sendmail服务器。 需求分析: 要求(1)中设置员工自由收发内部邮件可以参考Sendmail应用案例1去设置哈,如果需要邮件服务器把邮件发到外网需要设置access文件。 要求(2)需要别名设置来实现群发功能。 要求(3)需要在access文件中拒绝(REJECT)192.168.10.88 因实验原因:由senmail邮件服务器代替路由器功能哈~ 配置实战: (1)配置DNS服务 配置DNS主配置文件named.conf 配置redking.com.zone区域文件 配置8.168.192.in-addr.arpa.zone反向区域文件 配置team1.redking.com.zone区域文件 配置10.168.192.in-addr.arpa.zone反向区域文件 配置team2.redking.com.zone区域文件 配置20.168.192.in-addr.arpa.zone反向区域文件 (2)修改DNS域名解析的配置文件 vim /etc/resolv.conf (3)重启named服务使配置生效 (4)安装Sendmail软件包 RHEL5默认安装sendmail-8.13.8-2.el5及m4-1.4.5-3.el5.1软件包,我们只需要安装sendmail-cf-8.13.8-2.el5宏文件包就可以了。 (5)编辑sendmail.mc修改SMTP侦听网段范围 配置邮件服务器需要更改IP地址为公司内部网段或者0.0.0.0,这样可以扩大侦听范围(通常都设置成0.0.0.0),否则邮件服务器无法正常发送邮件。 vim /etc/mail/sendmail.mc 第116行将smtp侦听范围从127.0.0.1改为0.0.0.0 第155行修改成自己域:LOCAL_DOMAIN(`redking.com')dnl 使用m4命令生成sendmail.cf文件,其实sendmail.mc即是一个模板文件哈~ m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf (6)修改local-host-names文件添加域名及主机名 vim /etc/mail/local-host-names (7)群发邮件设置 vim /etc/aliases aliases文件语法格式: 真实用户账号:别名1,别名2 使用newaliases命令生成aliases.db数据库文件 (8)配置访问控制的access文件 在RHEL5中,默认Sendmail服务器所在的主机的用户可以任意发送邮件,而不需要任何身份验证,即注意/etc/mail/access文件中有一行Connect: 127.0.0.1 RELAY 生成access数据库文件 makemap hash access.db > access (9)安装Dovecot软件包(POP3和IMAP) 到这里sendmail服务器基本配置完成后,Mail Server就可以完成邮件发送工作,如果需要使用POP3和IMAP协议接收邮件还需要安装dovecot软件包。在rhel5里dovecot整合了IMAP。 安装dovecot软件包要解决其依赖性,安装per-DBI-1.52-1.fc6.i386.rpm和mysql-5.0.22-2.1.0.1.i386.rpm (10)启动Sendmail服务 service sendmail restart和service dovecot restart命令启动sendmail和dovecot服务,如果每次开机启动,可以使用chkconfig命令修改。 (11)测试端口 使用netstat -ntla命令测试是否开启SMTP的25端口、POP3的110端口及IMAP的143端口。 (12)建立用户 (13)客户端测试 192.168.8.0/24网段测试 群发测试 192.168.10.0/24网段测试 在服务器端可以看到team1组成员邮箱已经收到192.168.8.0/24网段中michael用户发的邮件。下面我们在192.168.10.0/24网段接收测试下~~~ 正常接收群发邮件 下面由team1.redking.com区域向team2.redking.com用户成员群发邮件~~~ 成功发送~~ 下面team2成员用户应该收到两个封邮件 192.168.20.0/24网段测试 服务器端状态: 客户端状态: 待客室主机192.168.10.88测试 最后我们测试禁止待客室的主机192.168.10.88使用Sendmail服务器 192.168.10.88主机不能使用Sendmail邮件功能 将受限的IP地址192.168.10.88换成其他不受限制的IP地址就可以将这原本不能发送的邮件发送出去了~~~ ##########################华丽分割线############################ 本季讲解了[RHEL5企业级Linux服务攻略]--第5季 Sendmail服务全攻略之常规配置,下季更新[RHEL5企业级Linux服务攻略]--第5季 Sendmail服务全攻略之高级配置哈,敬请期待哈~~~0(^-^)0 ##########################华丽分割线############################ [RHEL5企业级Linux服务攻略]--第5季 Sendmail服务全攻略之高级配置 企业环境 公司邮件服务器,统一为员工设置企业邮箱,公司业务以销售为主,员工数量为300人并办公地点不固定。员工收发邮件一般较小,大部分为产品信息及销售报表。为了减少邮件服务器负荷,提高邮件传输效率,需要有效拒绝垃圾邮件。 邮件服务器域名:mail.redking.com 邮件服务器IP地址:192.168.8.1 需求分析 根据企业情况,搭建邮件服务器的需求有以下两点: 1.减少成本 公司员工数量较多,会占用邮件服务器大量的磁盘空间,如果不对用户邮箱容量加以解决限制,可能会随着邮件数量的增加,导致服务器存储空间不足而扩展磁盘容量,所以我们需要对邮箱进行磁盘配额限制哈~ 2.拒绝垃圾邮件 处理垃圾邮件会增加服务器的负担,占用邮件服务器的硬件资源,造成正常响应的延迟。而企业员工会经常出差,办公地点不固定,无法使用access数据库做相应的筛选,只能通过邮件的认证机制防止垃圾邮件滥用服务器资源。 解决方案 1.配置DNS服务器 (1)配置DNS主配置文件named.conf vim /etc/named.conf (2)配置redking.com.zone区域正向解析文件 (3)配置8.168.192.in-addr.arpa.zone区域反向解析文件 (4)重启named服务使配置生效 2.修改local-host-names文件 vim /etc/mail/local-host-names 3.配置sendmail.cf 确保sasl库已经安装 编辑sendmail.mc配置文件 (1)开启sendmai认证 互联网上运行的邮件服务器,必须开启中继功能才能完成外部邮件的转发哈~,但是如果不加以限制,则会使非法用户有机会执行各种操作,如使用服务器发送垃圾邮件,甚至会被其他邮件服务器屏蔽哈,这样偶们滴邮件服务器就无法向外部转发邮件,我们可以添加邮件的认证机制,通过验证邮件使用者的账号和密码,能够有效拒绝非法用户使用邮件服务器中继功能哈~~~ 去掉以下三行的dnl字段开启sendmail认证功能 52行 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl TRUST_AUTH_MECH的作用是使sendmail不管access文件中如何设置都能relay那些通过LOGIN、PLAIN或DIGEST-MD5方式验证的邮件。 `confAUTH_MECHANISMS'的作用是确定系统的认证方式。 `Port=submission, Name=MSA, M=Ea'的作用是开启认证,并以子进程运行MSA实现邮件的账户和密码的验证。 注意:FEATURE要加在MAILER语句前面,否则可能造成邮件服务器运行错误哈~~~ (2)设置用户用户邮件的大小限制 在sendmail.mc中没有这个选项,这个要在sendmail.cf中设置哈~ vim /etc/mail/sendmail.cf 默认不限制: # maximum message size 我们可以设置成邮件最大不超过20MB # maximum message size 意思为每次收发邮件最大为20MB,任何超过这个值的邮件将被拒绝。 (3)设置本地邮箱的域名 LOCAL_DOMAIN(`redking.com')dnl (4)使用m4生成新的sendmail.cf文件 4.配置磁盘配额 (1)修改fstab文件 为了方便管理哈,将用户的邮件信息存放在/var/mail目录中,建议将/var划分到独立的分区,这样我们才能对/var文件系统添加磁盘配额功能,参考[RHEL5企业级Linux服务攻略]--第1季 Linux服务器的搭建与测试。 vim /etc/fstab 添加/var文件系统参数 LABEL=/var /var ext3 defaults,usrquota,grpquota 1 2 usrquota为用户的配额参数,grpquota为组的配额参数 修改/etc/fstab文件后保存退出,重启系统,使系统按照新的参数挂载文件系统。 参考RHCE课程-RH131Linux管理笔记六-Linux文件系统管理、挂载及sudo设置与使用 重启过程中,因为缺失配额文件,所以操作系统在装载文件系统时会报错,通过下面创建配额文件工作后将会消除错误。 (2)创建配额文件 因为存放邮件信息的/var目录在独立的分区哈~所以我们使用quotachek命令在/var目录下分别为用户和组创建配额文件 quotacheck -cugm /var (3)设置磁盘配额 为用户和组设置详细的配额限制,我们可以使用edquota命令进行磁盘配额的设置哈~ edquota命令格式: edquota -u 用户名 edquota -g 组名 比如为用户michael配置磁盘配额限制,执行edquota命令,打开用户配额配置文件 edquota -u michael Filesystem:文件系统的名称 blocks:用户当前使用的块数(磁盘空间),单位为KB soft:可以使用的最大磁盘空间,可以在一段时期内被超过软限制规定 hard:可以使用的磁盘空间的绝对最大值,达到了该限制后,操作系统将不再为用户或组分配磁盘空间 inodes:用户当前使用的inode节点数量(文件数) soft:可以使用的最大文件数。可以在一段时期内被超过软限制规定 hard:可以使用的文件数的绝对最大值。达到该限制后,用户或组将不能再建立文件 设置磁盘空间或者文件数限制,需要修改对应的soft、hard值,而不要修改blocks和inodes值哈~根据当前磁盘的使用状态,操作系统会自动设置这两个字段的值。 注意:如果soft或者hard值被设置为0则表示没有限制哈~ 比如对用户michael将磁盘空间硬限制设置为200MB (4)使磁盘配额生效 命令:quotaon -augv 目录名 参数: quotaon -av 注意:磁盘配额对root用户没有效果,并且磁盘配额设置的参数要比现有的数量要大,如分区大小要比现使用空间要大,文件数要比现有文件数要大。 (5)查看磁盘配额状态 repquota -a 注意: OK,如果企业员工较多,那么像这样一个个为每个员工单独配置磁盘配额将会增加我们管理的难度哈~这里我们可以建立一个样简单的脚本,将所有用户的磁盘空间科学硬限制为200MB哈~ 在/etc/mail/目录下创建一个quota.sh磁盘配额脚本文件 vim /etc/mail/quota.sh quota.sh脚本内容: #!/bin/bash for循环语句in后面跟需要进行磁盘配额的用户名 setquota能够在命令行下直接进行磁盘配额限制,格式如下哈~ setquota -u 用户 block软限制 block硬限制 inode软限制 inode硬限制 因为需要将用户使用的磁盘空间限制为200MB,所以只需要更改block硬限制就可以了哈~ 我们可以使用 . /etc/mail/quota.sh执行此脚本哈~ 执行quotaoff -av后执行quotaon -av使设置的磁盘配额生效 5.配置dovecot 确认已经安装了dovecot RPM包哈~安装完dovecot软件包后,默认情况下,POP3和IMAP就可以正常工作,能够接收客户端的接受邮件请求哈~,但是为了保证客户端能够使用加密的形式接受邮件,还需要为dovecot添加相应的密钥和证书,启动POP3S或者IMAPS的支持哈~这时Mail服务器必须生成相应的密钥和证书才能正常工作哈~ (1)生成私钥和自签名证书 Mail服务器会使用私钥加密邮件,客户端在收取邮件时,则使用Mail服务器证书中的公钥对邮件进行解密,这样才能正常读取邮件哈~,/etc/pki/tls/certs/Makefile文件保存着生成密钥和证书的脚本设置,这里使用make命令制作dovecot.pem文件,其保存邮件服务器的私钥和公钥信息。 make -C /etc/pki/tls/certs/ dovecot.pem 生成证书时,按要求依次填写国家、省份、城市等等信息哈~ (2)修改dovecot.conf配置文件 vim /etc/dovecot.conf 查询dovecot使用的密钥和证书的位置 修改dovecot.conf配置信息中密钥和证书的位置指向我们刚刚生成的dovecot.pem (3)重启sendmail、dovecot、saslauthd服务 (4)查看端口状态 netstat -tupln 6.测试 (1)服务器状态 eth1网卡192.168.5.110当路由器用哈~我不知道在vmware中怎么模拟路由器,汗~~哪位大哥如果会的话,教一下偶哈~ (2)客户端测试 网段:192.168.5.0/24 发个邮件测试下哈~ 接收测试邮件~ 测试发送20MB邮件 20MB邮件发送成功 client3邮箱状态 测试发送超出20MB限制的邮件 提示超出邮件限制大小,OK,成功~ 最后我们测试邮箱用户的磁盘配额设置哈,现在client3用户的邮件中差不多有196MB邮件容量,限额是200MB哈~ 下面我们测试如果再发个10MB的邮件,这样就超出200MB限额了,看下能否发送成功哈~ 在michael用户端显示成功发送哈~ 如果所发邮件超出收件人磁盘配额限额哈~,发件人会收到一封系统退信哈~ 提示:procmail: Quota exceeded while writing "/var/mail/client3" 这时,收件人必须接收完邮件服务器上的邮件或由管理员增加到使用空间的限额后才能正常接收邮件哈~ ########################Michael分割线######################## 谨以此博文庆祝blog成为blog star,献给关注、支持本blog的网友哈~谢谢大家的支持、留言及回复,大家也可以将自己研究及配置的实验方案提供一下,大家一起研究交流一下,共同进步哈~~~下季内容[RHEL5企业级Linux服务攻略]--第6季 vsftpd服务全攻略之常规配置,敬请期待~~~ ########################Michael分割线######################## |
|