企业环境
公司邮件服务器,统一为员工设置企业邮箱,公司业务以销售为主,员工数量为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 
53行 define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl 
123行 DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')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 
#O MaxMessageSize=0
我们可以设置成邮件最大不超过20MB
# maximum message size 
O MaxMessageSize=20971520
意思为每次收发邮件最大为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 目录名
参数: 
  -a   开启在/ect/fstab文件里,有加入quota设置的分区的空间限制。 
  -g   开启群组的磁盘空间限制。 
  -u   开启用户的磁盘空间限制。 
  -v   显示指令指令执行过程。
quotaon -av
注意:磁盘配额对root用户没有效果,并且磁盘配额设置的参数要比现有的数量要大,如分区大小要比现使用空间要大,文件数要比现有文件数要大。
(5)查看磁盘配额状态
repquota -a
注意:
OK,如果企业员工较多,那么像这样一个个为每个员工单独配置磁盘配额将会增加我们管理的难度哈~这里我们可以建立一个样简单的脚本,将所有用户的磁盘空间科学硬限制为200MB哈~
在/etc/mail/目录下创建一个quota.sh磁盘配额脚本文件
vim /etc/mail/quota.sh
quota.sh脚本内容:
#!/bin/bash    
for i in michael redhat michaelwang client1 client2 client3 clienta clientb clientc    
do    
setquota -u $i 0 200000 0 0 /var    
done
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分割线########################
本文转自redking51CTO博客,原文链接:http://blog.51cto.com/redking/137599,如需转载请自行联系原作者

[RHEL5企业级Linux服务攻略]--第5季 Sendmail服务全攻略之高级配置相关推荐

  1. [RHEL5企业级Linux服务攻略]--第6季 Vsftpd服务全攻略之常规配置

    1.vsftpd服务软件包 vsftpd-2.0.5-10.el5.i386.rpm:vsftpd主程序包 2.vsftpd相关文档 /etc/vsftpd/vsftpd.conf:vsftpd的核心 ...

  2. [RHEL5企业级Linux服务攻略]--第9季 Squid服务全攻略之高级配置

    企业环境 公司搭建一台代理服务器,需要提高内网访问互联网速度并能够对内部员工的上网行为进行限制,采用squid代理服务器软件,对内部网络进行优化. 需求分析 提高用户访问速度,需要对squid服务器进 ...

  3. [RHEL5企业级Linux服务攻略]--第3季 DHCP服务全攻略

    1 DHCP原理  1.1 DHCP概述 DHCP(Dynamic Host Configuration Protocal)就是动态主机配置协议哈,可以自动配置主机的IP地址.子网掩码.网关及DNS等 ...

  4. [RHEL5企业级Linux服务攻略]--第2季 Samba服务全攻略答疑贴

    回答mlk0416第一个问题: 现在我以joy用户登录samba,如果不用重启系统或注销用户的方法解决多用户切换问题,关闭后重新登录samba还是会以joy帐号登录.现在我们用windows命令提示符 ...

  5. [RHEL5企业级Linux服务攻略]--第1季 Linux服务器的搭建与测试

    1 Red Hat Enterprise Linux 5的安装 安装Red Hat Linux的硬件要求如下,一般现在的电脑配置都可以满足这些要求了哈: CPU:Pentium以上处理器.文本模式推荐 ...

  6. [RHEL5企业级Linux服务攻略]--第6季 Vsftpd服务全攻略之高级配置

    企业环境 公司为了宣传最新的产品信息,计划搭建FTP服务器,为客户提供相关文档的下载.对所有权互联网开放共享目录,允许下载产品信息,禁止上传.公司的合作单位能够使用FTP服务器进行上传和下载,但不可以 ...

  7. [RHEL5企业级Linux服务攻略]--第4季 DNS服务全攻略

    1 DNS原理 1.1 DNS简介 DNS(Domain Name System)域名系统,在TCP/IP网络中有非常重要的地位,能够提供域名与IP地址的解析服务. 1.2 域名空间 DNS是一个分布 ...

  8. linux下php-5.4.8.tar.gz编译安装全攻略

    首先安装基础依赖组建,注:这些依赖组建也是LINUX+PHP+MYSQL+APACHE+NGINX+MEMCACHED时必要的系统组件  LANG=C yum -y install gcc gcc-c ...

  9. 2019阿里云开年Hi购季云安全分会场全攻略!

    为什么80%的码农都做不了架构师?>>>    2019阿里云云上Hi购季活动已经于2月25日正式开启,从已开放的活动页面来看,活动分为三个阶段: 2月25日-3月04日的活动报名阶 ...

最新文章

  1. bootstrap跟vue冲突吗_知道微服务,但你知道微前端吗?
  2. 项目性能优化(实现页面静态化1)
  3. 从mongodb中查询数据
  4. 利用Python实现gif动图倒放
  5. nfs:client mount成功,但是进入目录时出现Permission denied
  6. CF891E-Lust【EGF】
  7. c语言怎样输入动态数组代码,求助~~ 如何把数组变成动态输入的?
  8. 创纪录!浪潮云海完成OpenStack Rocky版本全球最大规模单一集群测试!
  9. 我一定要找到它FreeEIM
  10. Java工程带库编译运行
  11. 前后端分离之JWT(JSON Web Token)的使用
  12. Java中重写与重载的区别
  13. 新一配:iPod及其系列产品【转载】
  14. 全名k歌自定义图文链接(卡片)
  15. 开启VScode中最简单的内部浏览器 - 可以访问外网 - Browser Preview
  16. 031_onetab
  17. 计算机毕业设计开题报告怎么写?【详细说明】
  18. 网页访问的服务器和端口怎么查,怎么查看网页访问端口号
  19. Ansible批量管理Windows服务器,winrm配置
  20. kindeditor自定义添加网络视频插件,修改批量图片上传方式flash为h5

热门文章

  1. 文件上传功能如何测试
  2. MeterSphere场景变量—常量整理总结
  3. logging日志模块
  4. 在不同应用场景中,我们该如何进行测试呢?
  5. 收藏~10年软件测试人员的工作方法进阶汇总
  6. 从手动测试菜鸟到自动化测试老司机,如何完成蜕变
  7. 当你学会这项python数据提取神器时,请做好升职准备!
  8. php 日期转毫秒_高性能的PHP日志系统 SeasLog 使用
  9. MATLAB 画图 x轴换成 字符串
  10. python3socket非阻塞在linux里无效_Linux下socket设置为非阻塞方式和fcntl系统调用