RHCE课程-RH253Linux服务器架设笔记七-Sendmail服务器配置
2014-05-15 09:47
621 查看
邮件服务器主要是DNS和主机环境,自身的配置很容易的! 还有学习邮件邮件服务器一定要知道邮件服务器的原理 这个需要下来后大家自己去研究下 Internet最基本的服务,也是最重要的服务之一,就是电子邮件服务。 电子邮件服务还具有快速、经济的特点。发一份电子邮件给远在他方的一位用户,通常来说,对方几分钟之内就能收到。如果选用传统邮件,发一封特快专递也需要至少一天的时间。 与实时信息交流,如电话相比,因为电子邮件是采用存储转发的方式,发送邮件时,并不需要收件人处于在线状态,收件人可以根据实际需要随时上网从邮件服务器上收取邮件,方便了信息的交流 下面说说邮件服务系统的组成 虽然大家用了很久的e-mail,估计知道邮件服务器工作原理的也不多 只知道这边点发送,那边就能收到 其实电子邮件服务是一个相当复杂的服务 邮件用户代理(MUA )将信息传送给邮件传输代理(MTA ) 邮件传输代理(MTA )决定信息送至目的地的路由,然后根据情况决定是否还需要将信息交给中介邮件传输代理 用户通过邮件投递代理(MDA )将邮件下载到用户的邮箱之中。 用户收到邮件 我们使用的foxmail和outlook只是一个MUA和MDA 一个邮件服务器扮演了两个角色,MTA和MDA MTA是邮件服务器的主要功能,但是为了更好的协同工作所以一般也扮演了MDA 在Linux平台中,有许多邮件服务器可供选择,但目前使用较多的是Sendmail服务器、 Postfix服务器和Qmail服务器 Sendmail是一个很优秀的邮件服务软件。几乎所有Linux的缺省配置中都内置了这个软件,只需要设置好操作系统,它就能立即运转起来。 Postfix是一个由IBM资助下由Wietse Venema 负责开发的一个自由软件工程产物,它的目的就是为用户提供除Sendmail之外的邮件服务器选择 Qmail是有Dan Bernstein开发的可以自由下载邮件服务器软件,其第一个beta版本0.70.7发布于1996年1月24日,当前版本是2.3.3-2 说邮件服务器,有三个协议肯定要讲 SMTP,POP3,IMAP SMTP:Simple Mail Transfer Protocol/简单邮件传送协议 定义邮件传送,基于TCP服务的应用层, 明文传送,SMTP协议使用25端口 SMTP协议命令
HELO 通报来访者地址
MAIL FROM:发件人地址
RCPT TO:收件人地址
DATA 输入正文内容,用单独的.为行结束
QUIT:连线结束 这个是直接使用SMTP协议发送邮件的命令 现在邮件服务器还没架设起来,等会我们来测试这几个命令吧 我们今天要讲讲sendmail邮件服务器的架设 sendmail是使用十分广泛的邮件提交工具(MSP),在邮件模型中承担着MTA及MDA的作用,支持多种类型的邮件地址寻址,支持虚拟域及虚拟用户,允许用户及主机伪装,提供在投递失败后自动重发等多种错误应对策略 sendmail服务简介 后台进程:sendmail 脚本:/etc/init.d/sendmail 使用端口:25(smtp) 所需RPM包:sendmail 配置文件:/etc/mail/sendmail.mc;/etc/mail/sendmail.cf;/etc/mail/access;/etc/mail/access.db;/etc/aliases;….. 注意:分隔的 /etc/mail/sendmail.cf是默认的sendmail主要配置文件。由于此配置文件相当复杂,通常情况下我们不会直接去修改此文件,而是通过编辑简单的宏文件-/etc/mail/sendmail.mc,并使用工具m4来生成sendmail.cf配置文件。 sendmail.mc宏应该定义了操作系统类型、文件位置、请求特征及邮件发送工具、用户列表等信息 在sendmail.mc默认设定以dnl开头的行表示注释,即在编译宏文件时不会写入配置文件中。 默认情况下,sendmail服务器只侦听本地的连接。因此要注释下面的设定,让服务器能够接收网络上的其它服务器发送过来的邮件。 好了,我们先开安装sendmail yum install sendmail* 系统默认只装了sendmail的一些组件,需要自己重新安装 添加这三个包
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/22037e5bee5e9d5aa67498739c2ada20.png)
/etc/mail 目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/564c5746807dd8c1f241a92de35ba2ab.png)
sendmail的配置文件基本都在这里 access 文件是我们配置sendmail访问控制的文件 access.db是通过access文件生成的数据库 makefile 是M4 工具 sendmail.cf默认的sendmail主配置文件 sendmail.mc宏文件,我们要编译的就是这个文件 我们看看sendmail的主配置文件是什么东西,估计这些东西能看懂的也没几个
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/a80a47c87ba5ed5caa2748ffaf7f5c78.png)
所以我们不修改cf文件,我们通过修改sendmail.mc文件用m4工具来生成cf文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/3ffce66b053da56d8e1c20cd648351bc.png)
FEATURE (’accept_unresolvable_domains’ )
接受 无法反向解析的域来的邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/5d7265171d569e4a4848a1f7530570ee.png)
FEATURE (’dnsbl’ )
支持根据dns 黑洞列表来拒绝垃圾邮件 FEATURE (’relay_based_on_MX’ )
自动接受DNS 中MX 记录来源的邮件转发 FEATURE (’blacklist_recipients’ )
允许使用黑名单查禁收件人 安装在linux系统上
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/bda5191ea1306472a77309b6825c8af7.png)
这行很重要,意思是服务器默认只监听本地端口
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/0749a8c0364ef7bcccb6b5d505aec89b.png)
要让其他client使用我们的服务器,我们要把127.0.0.1改成0.0.0.0
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/ad8c9ae11435637ba71938a1f78cd591.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/9d55e0636ef419f6106d1151d2cd2102.png)
改成你自己的域名
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/a8f059460917924b67e1b41d52de4011.png)
注释116或者只修改116行也就可以了,但是为了保证邮件服务器稳定,最好把域名也修改了 退出以后修改本目录的local-host-names目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/9213dbb941b83c183fe59930759b0d71.png)
在这个文件中加入你IP地址能解析出来的所有域名 然后检查主机名字 ,邮件服务器的主机名字必须要规范FQDN形式
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/1344eb593396f26ffb91756addb06ae5.png)
然后检查/etc/hosts文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/345de5de8218450b1de0556e950624ab.png)
检查DNS设置/etc/resolv.conf
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b09b8f8c01c413e9537f943ba82c0813.png)
最后检查DNS是否有MX记录指向你的服务器
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/64fed0c95eded602bf1bbae05194fb83.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/07152480ee55302da602cf32e5bf9311.png)
然后使用m4工具,生成配置文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f67f95dfa73696df2d2187f32a13c7b8.png)
记住顺序要搞对,不然你就要重新安装服务器了 生成以后重新启动sendmail服务器
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4eef37e81e0ba116ef003ed9abac77b4.png)
查看端口是否监听起来了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/3dc2cf5e7bb45745188ba23c685e95ca.png)
我们先使用mail工具发送邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/750bcac6a040cade30eb941f028dda1e.png)
subject是主题 回车后是内容,内容输入完成 使用 ctrl+d 结束 cc 是抄送,这里没有抄送,直接回车 然后我们切换到michael用户看看收到邮件没有,现在我们使用mail命令来收邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/48a7da48e9eb52b36df937772c2507a9.png)
已经收到了 N后面是编号,输入编号就可以查看
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2efe799b90e171f064a5f8798ee00dff.png)
刚才我们配置好了服务器,只是有了MTA功能 所以我们要安装dovecot 用yum和rpm安装都可以
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/fd47dd43f3bc5b4b5c7d93176b7846aa.png)
然后启动dovecot
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/063f393ca0e3343927d8f35c8795b9aa.png)
dovecot支持两个协议,一个是pop3,一个是imap POP3:Post Office Protocol 3/邮局协议第三版 POP3协议适用于不能时时在线的邮件用户。支持客户在服务器上租用信箱,然后利用POP3协议向服务器请求下载,基于TCP/IP协议与客户端/服务端模型,POP3的认证与邮件传送都采用明文,使用110端口 IMAP:Internet Message Access Protocol/英特网信息存取协议 另一种从邮件服务器上获取邮件的协议,与POP3相比,支持在下载邮件前先行下载邮件头以预览邮件的主题来源,基于TCP/IP,使用143端口 现在我们在outlook上添加刚才的michael用户
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/540db1ffd21a645d2aeefd7dbae61f83.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/1f0be664dcde47ce5fd611376b4a3065.png)
现在我们用root向michael用户发送一封邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/d322c9ff8ede291413629f0c2d9dd34a.png)
我们用outlook去接收
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c525bc595376e2bbfa1711e2b134780b.png)
接受成功 然后给root回复一封
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/24878e81bc81f6db65786dd0685ecd6c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/a4e6857a4091e36af4a64b43e72d863a.png)
下面我们再建立一个用户51cto,在给大家介绍一个linux下使用的邮件client工具mutt [root@mail ~]# mutt -f pop://51cto@michael.com 输入密码
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/bf1b188017f68a30942690c85982170d.png)
然后就进入了操作界面,功能上面都有解释
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/482e5066549a8545eb0b3d025463d2bc.png)
我们使用m 写封邮件给root
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/7a138057a15c7702e5eb68bf3f12aa05.png)
下面出现to,就是对方邮件地址
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/455c7b871ff95f524baea12ca85c91eb.png)
回车,出现Subject,主题 输入test
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2456bfc344f793cdbdfc2b30d9eee186.png)
然后回车,进入vi,编辑正文
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c949313206108dac3580d17084112c45.png)
保存退出
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/3b1ae1d5ce19cd8f01c5e8b361124b64.png)
输入y 发送
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/caf5bf128781f94724993537a6d3df0d.png)
然后输入q,退出,更多功能大家自己开发 imap我给大家讲讲 制作邮件服务器的证书 cd /etc/pki/tls/certs
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f20f0eaffbca0f35bca0e959b31a79c0.png)
make dovecot.pem
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/8064aaf6334f33e76d9384cd7576726b.png)
国家
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/97b84fbeb0bc8b554b76f0351bbff832.png)
省名
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2f7a512a71e7eb7a8d505d119dbe15c2.png)
城市、公司、单位
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/38096d79b5c4026f819184b18f644048.png)
vim /etc/dovecot.conf
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c75b236c917574054b4872e260d517a9.png)
查收.pem
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/e2295e0edb6ea0c3f92c4e93de818e12.png)
找到这两行,把刚才生成的文件放到这两个目录下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/836f6f30ca18f1049520f92ff1246022.png)
重新启动dovecot,然后使用mutt工具 使用imap协议
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/324fd64e8f02c65652d104367a2fc0d6.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/09d1c2f18b3320ec5bfd0bc49fbcb980.png)
查看证书是否被修改,正确就按o,不同样以就使用r
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4cd6cdf58d3fcfea23d73bc0d71c3301.png)
操作和刚才一样 ,就进入了mutt工具
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/8813b393c76d5e168d1ff16d22197e01.png)
证书这个RHCE考试考到的几率比较高,要考试的同学需要重视 我们把openwebmail给大家讲讲吧,这个企业用的多点 http://www.openwebmail.org/
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f52d933068fbcaa8baecde26145a3460.png)
perl-Text-Iconv-1.7-2.el5.i386.rpm http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rhel5/perl-Text-Iconv/
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c99bba7785a438147b6aeb04cd601efa.png)
openwebmail-2.53-3.i386.rpm http://www.openwebmail.org/openwebmail/download/redhat/rpm/release/2.53/
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/519ac2794faa68a48e3459ab6d1009d2.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/9fa9000863d0d959252ebedb5eb6894b.png)
rpm -ivh perl-Text-Iconv-1.7-2.el5.i386.rpm
rpm -ivh openwebmail-data-2.53-3.i386.rpm openwebmail-2.53-3.i386.rpm
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/282a8635ea82c6d9ccd6e37e7c873d75.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b0283418b1e4f98880705ed45916c4d8.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/67376a257cdaf0d1c193fcbbabb0dd30.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f681c73408c23b841dee90b60dfe4b06.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/325893943d2a1b7b75c541e6e848e5f5.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4a5088dc3a151edf20852e9a7f189530.png)
无法建立 文件 /var/log/openwebmail.log! (Permission denied) 那应该是SELinux的问题, 不建议关闭SELinux touch /var/log/openwebmail.log
chcon -u system_u /var/log/openwebmail.log
chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log
chcon -t httpd_unconfined_script_exec_t /var/www/cgi-bin/openwebmail/openwebmail*
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/e50b0438574745474a7c34784fe8620c.png)
touch /var/log/openwebmail.log ==>这是产生一个log档
chcon -u system_u /var/log/openwebmail.log ==>这是修改文件使用者权限
chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log ==>这是修改写入权限
chcon -t httpd_unconfined_script_exec_t /var/www/cgi-bin/openwebmail/openwebmail* ==>这是修改文件由什么套件专用
这些都是因为SELinux造成的,原本文件、目录权限只有使用文件前面那串(rwxrwxrwx),在使用SELinux后,会多出一种管理context type,context type会限制该目录、文件的使用原则,所以,在使用有安装SELinux时,常常会出现apach、ftp明明都设定好了,却还是不能使用,多半出问题,都是SELinux在做怪。 ok~
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/e64bf7b95af97961b257f0168b609529.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/78ddce814b4a426f299e6feb2a9e2e90.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b48424858b81fe6e03888d5200e89ee9.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/6b579b815ee0a979b7baae5a6ed783b8.png)
点pref
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/dcdf292ec4d89189ca2addc0cfb2123d.png)
改成hotmail的风格,图标是简体中文 现在我们给michael发送一封邮件测试下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/75fd24bd75b616302ae69e298f94d57a.png)
然后我们用outlook去收,能够收到
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/5f22aa7b66e7f5ececfbb7eddcdd64ea.png)
下面我们回复一封
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2cb515bea5eb9928c7a6c295d29e34a1.png)
这是内容
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/d76959bde3e55858366a445f61e409cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4119d3730a91c5a7c025abef65085ef9.png)
sendmail服务器的别名和用户控制 先是别名,就是给一个虚拟用户发邮件一个或多个用户能够收到,类似群发 vim /etc/aliases 前面是虚拟用户或者真实用户,右面是需要转发给的用户
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f00dbd9b8241718b20c4d5a923b40f0a.png)
给stuff用户发邮件,会自动转发给michael和51cto 我系统里面没有stuff这个用户,修改配置文件以后,使用newalias 更新别名数据库
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c1c27606ed03e3893aab5f36270aecb5.png)
成功
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b0bdfd199065843ca0b397e5fa233acd.png)
这个是51cto用户,他收到了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/166c78f9f2e06a2d617c0fa3d6209b85.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4c16d6fde660ee47b8487d1e5b009ec6.png)
这个是michael用户,他也收到了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/aab9baac4de712cdcee598faaa749514.png)
下一个功能是访问控制 访问控制时在RHCE考试最容易考到得地方 vim /etc/mail/access
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/8af2e5391de8fe8507eb5990520513d1.png)
access文件的格式:
IP/域名 设定值 也可以是用户
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/1e65366f67fe9fc09936681faa370dfa.png)
使用makemap 命令 生成access.db文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/04d357b857fdb77c1c7080c08d3ce8e4.png)
重新启动sendmail服务器
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/91a12bce447356ba3fb46ce5004ac5ea.png)
不能发送了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/72c707d98b21d8496855cdac5717d41e.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b1b9f0cf3f1a6af586105ce3df04ce1c.png)
直接被拒绝了,不能给那个用户发送邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/cd15ae229d1b498837bf6cb080b55838.png)
然后我们取消拒绝试试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/fc4694ee093c8cc68cb0a4875501ad2d.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2723f7d532748be8c801241181de839d.png)
现在再试试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/fe06253b2cd140af720ab95f4349a2ae.png)
可以了哈~
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2d535b1a9cc8770d0e3e69afac0f1f60.png)
HELO 通报来访者地址
MAIL FROM:发件人地址
RCPT TO:收件人地址
DATA 输入正文内容,用单独的.为行结束
QUIT:连线结束 这个是直接使用SMTP协议发送邮件的命令 现在邮件服务器还没架设起来,等会我们来测试这几个命令吧 我们今天要讲讲sendmail邮件服务器的架设 sendmail是使用十分广泛的邮件提交工具(MSP),在邮件模型中承担着MTA及MDA的作用,支持多种类型的邮件地址寻址,支持虚拟域及虚拟用户,允许用户及主机伪装,提供在投递失败后自动重发等多种错误应对策略 sendmail服务简介 后台进程:sendmail 脚本:/etc/init.d/sendmail 使用端口:25(smtp) 所需RPM包:sendmail 配置文件:/etc/mail/sendmail.mc;/etc/mail/sendmail.cf;/etc/mail/access;/etc/mail/access.db;/etc/aliases;….. 注意:分隔的 /etc/mail/sendmail.cf是默认的sendmail主要配置文件。由于此配置文件相当复杂,通常情况下我们不会直接去修改此文件,而是通过编辑简单的宏文件-/etc/mail/sendmail.mc,并使用工具m4来生成sendmail.cf配置文件。 sendmail.mc宏应该定义了操作系统类型、文件位置、请求特征及邮件发送工具、用户列表等信息 在sendmail.mc默认设定以dnl开头的行表示注释,即在编译宏文件时不会写入配置文件中。 默认情况下,sendmail服务器只侦听本地的连接。因此要注释下面的设定,让服务器能够接收网络上的其它服务器发送过来的邮件。 好了,我们先开安装sendmail yum install sendmail* 系统默认只装了sendmail的一些组件,需要自己重新安装 添加这三个包
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/22037e5bee5e9d5aa67498739c2ada20.png)
/etc/mail 目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/564c5746807dd8c1f241a92de35ba2ab.png)
sendmail的配置文件基本都在这里 access 文件是我们配置sendmail访问控制的文件 access.db是通过access文件生成的数据库 makefile 是M4 工具 sendmail.cf默认的sendmail主配置文件 sendmail.mc宏文件,我们要编译的就是这个文件 我们看看sendmail的主配置文件是什么东西,估计这些东西能看懂的也没几个
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/a80a47c87ba5ed5caa2748ffaf7f5c78.png)
所以我们不修改cf文件,我们通过修改sendmail.mc文件用m4工具来生成cf文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/3ffce66b053da56d8e1c20cd648351bc.png)
FEATURE (’accept_unresolvable_domains’ )
接受 无法反向解析的域来的邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/5d7265171d569e4a4848a1f7530570ee.png)
FEATURE (’dnsbl’ )
支持根据dns 黑洞列表来拒绝垃圾邮件 FEATURE (’relay_based_on_MX’ )
自动接受DNS 中MX 记录来源的邮件转发 FEATURE (’blacklist_recipients’ )
允许使用黑名单查禁收件人 安装在linux系统上
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/bda5191ea1306472a77309b6825c8af7.png)
这行很重要,意思是服务器默认只监听本地端口
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/0749a8c0364ef7bcccb6b5d505aec89b.png)
要让其他client使用我们的服务器,我们要把127.0.0.1改成0.0.0.0
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/ad8c9ae11435637ba71938a1f78cd591.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/9d55e0636ef419f6106d1151d2cd2102.png)
改成你自己的域名
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/a8f059460917924b67e1b41d52de4011.png)
注释116或者只修改116行也就可以了,但是为了保证邮件服务器稳定,最好把域名也修改了 退出以后修改本目录的local-host-names目录
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/9213dbb941b83c183fe59930759b0d71.png)
在这个文件中加入你IP地址能解析出来的所有域名 然后检查主机名字 ,邮件服务器的主机名字必须要规范FQDN形式
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/1344eb593396f26ffb91756addb06ae5.png)
然后检查/etc/hosts文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/345de5de8218450b1de0556e950624ab.png)
检查DNS设置/etc/resolv.conf
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b09b8f8c01c413e9537f943ba82c0813.png)
最后检查DNS是否有MX记录指向你的服务器
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/64fed0c95eded602bf1bbae05194fb83.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/07152480ee55302da602cf32e5bf9311.png)
然后使用m4工具,生成配置文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f67f95dfa73696df2d2187f32a13c7b8.png)
记住顺序要搞对,不然你就要重新安装服务器了 生成以后重新启动sendmail服务器
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4eef37e81e0ba116ef003ed9abac77b4.png)
查看端口是否监听起来了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/3dc2cf5e7bb45745188ba23c685e95ca.png)
我们先使用mail工具发送邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/750bcac6a040cade30eb941f028dda1e.png)
subject是主题 回车后是内容,内容输入完成 使用 ctrl+d 结束 cc 是抄送,这里没有抄送,直接回车 然后我们切换到michael用户看看收到邮件没有,现在我们使用mail命令来收邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/48a7da48e9eb52b36df937772c2507a9.png)
已经收到了 N后面是编号,输入编号就可以查看
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2efe799b90e171f064a5f8798ee00dff.png)
刚才我们配置好了服务器,只是有了MTA功能 所以我们要安装dovecot 用yum和rpm安装都可以
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/fd47dd43f3bc5b4b5c7d93176b7846aa.png)
然后启动dovecot
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/063f393ca0e3343927d8f35c8795b9aa.png)
dovecot支持两个协议,一个是pop3,一个是imap POP3:Post Office Protocol 3/邮局协议第三版 POP3协议适用于不能时时在线的邮件用户。支持客户在服务器上租用信箱,然后利用POP3协议向服务器请求下载,基于TCP/IP协议与客户端/服务端模型,POP3的认证与邮件传送都采用明文,使用110端口 IMAP:Internet Message Access Protocol/英特网信息存取协议 另一种从邮件服务器上获取邮件的协议,与POP3相比,支持在下载邮件前先行下载邮件头以预览邮件的主题来源,基于TCP/IP,使用143端口 现在我们在outlook上添加刚才的michael用户
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/540db1ffd21a645d2aeefd7dbae61f83.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/1f0be664dcde47ce5fd611376b4a3065.png)
现在我们用root向michael用户发送一封邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/d322c9ff8ede291413629f0c2d9dd34a.png)
我们用outlook去接收
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c525bc595376e2bbfa1711e2b134780b.png)
接受成功 然后给root回复一封
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/24878e81bc81f6db65786dd0685ecd6c.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/a4e6857a4091e36af4a64b43e72d863a.png)
下面我们再建立一个用户51cto,在给大家介绍一个linux下使用的邮件client工具mutt [root@mail ~]# mutt -f pop://51cto@michael.com 输入密码
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/bf1b188017f68a30942690c85982170d.png)
然后就进入了操作界面,功能上面都有解释
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/482e5066549a8545eb0b3d025463d2bc.png)
我们使用m 写封邮件给root
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/7a138057a15c7702e5eb68bf3f12aa05.png)
下面出现to,就是对方邮件地址
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/455c7b871ff95f524baea12ca85c91eb.png)
回车,出现Subject,主题 输入test
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2456bfc344f793cdbdfc2b30d9eee186.png)
然后回车,进入vi,编辑正文
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c949313206108dac3580d17084112c45.png)
保存退出
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/3b1ae1d5ce19cd8f01c5e8b361124b64.png)
输入y 发送
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/caf5bf128781f94724993537a6d3df0d.png)
然后输入q,退出,更多功能大家自己开发 imap我给大家讲讲 制作邮件服务器的证书 cd /etc/pki/tls/certs
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f20f0eaffbca0f35bca0e959b31a79c0.png)
make dovecot.pem
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/8064aaf6334f33e76d9384cd7576726b.png)
国家
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/97b84fbeb0bc8b554b76f0351bbff832.png)
省名
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2f7a512a71e7eb7a8d505d119dbe15c2.png)
城市、公司、单位
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/38096d79b5c4026f819184b18f644048.png)
vim /etc/dovecot.conf
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c75b236c917574054b4872e260d517a9.png)
查收.pem
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/e2295e0edb6ea0c3f92c4e93de818e12.png)
找到这两行,把刚才生成的文件放到这两个目录下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/836f6f30ca18f1049520f92ff1246022.png)
重新启动dovecot,然后使用mutt工具 使用imap协议
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/324fd64e8f02c65652d104367a2fc0d6.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/09d1c2f18b3320ec5bfd0bc49fbcb980.png)
查看证书是否被修改,正确就按o,不同样以就使用r
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4cd6cdf58d3fcfea23d73bc0d71c3301.png)
操作和刚才一样 ,就进入了mutt工具
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/8813b393c76d5e168d1ff16d22197e01.png)
证书这个RHCE考试考到的几率比较高,要考试的同学需要重视 我们把openwebmail给大家讲讲吧,这个企业用的多点 http://www.openwebmail.org/
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f52d933068fbcaa8baecde26145a3460.png)
perl-Text-Iconv-1.7-2.el5.i386.rpm http://www.openwebmail.org/openwebmail/download/redhat/rpm/packages/rhel5/perl-Text-Iconv/
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c99bba7785a438147b6aeb04cd601efa.png)
openwebmail-2.53-3.i386.rpm http://www.openwebmail.org/openwebmail/download/redhat/rpm/release/2.53/
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/519ac2794faa68a48e3459ab6d1009d2.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/9fa9000863d0d959252ebedb5eb6894b.png)
rpm -ivh perl-Text-Iconv-1.7-2.el5.i386.rpm
rpm -ivh openwebmail-data-2.53-3.i386.rpm openwebmail-2.53-3.i386.rpm
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/282a8635ea82c6d9ccd6e37e7c873d75.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b0283418b1e4f98880705ed45916c4d8.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/67376a257cdaf0d1c193fcbbabb0dd30.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f681c73408c23b841dee90b60dfe4b06.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/325893943d2a1b7b75c541e6e848e5f5.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4a5088dc3a151edf20852e9a7f189530.png)
无法建立 文件 /var/log/openwebmail.log! (Permission denied) 那应该是SELinux的问题, 不建议关闭SELinux touch /var/log/openwebmail.log
chcon -u system_u /var/log/openwebmail.log
chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log
chcon -t httpd_unconfined_script_exec_t /var/www/cgi-bin/openwebmail/openwebmail*
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/e50b0438574745474a7c34784fe8620c.png)
touch /var/log/openwebmail.log ==>这是产生一个log档
chcon -u system_u /var/log/openwebmail.log ==>这是修改文件使用者权限
chcon -t httpd_sys_script_rw_t /var/log/openwebmail.log ==>这是修改写入权限
chcon -t httpd_unconfined_script_exec_t /var/www/cgi-bin/openwebmail/openwebmail* ==>这是修改文件由什么套件专用
这些都是因为SELinux造成的,原本文件、目录权限只有使用文件前面那串(rwxrwxrwx),在使用SELinux后,会多出一种管理context type,context type会限制该目录、文件的使用原则,所以,在使用有安装SELinux时,常常会出现apach、ftp明明都设定好了,却还是不能使用,多半出问题,都是SELinux在做怪。 ok~
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/e64bf7b95af97961b257f0168b609529.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/78ddce814b4a426f299e6feb2a9e2e90.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b48424858b81fe6e03888d5200e89ee9.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/6b579b815ee0a979b7baae5a6ed783b8.png)
点pref
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/dcdf292ec4d89189ca2addc0cfb2123d.png)
改成hotmail的风格,图标是简体中文 现在我们给michael发送一封邮件测试下
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/75fd24bd75b616302ae69e298f94d57a.png)
然后我们用outlook去收,能够收到
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/5f22aa7b66e7f5ececfbb7eddcdd64ea.png)
下面我们回复一封
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2cb515bea5eb9928c7a6c295d29e34a1.png)
这是内容
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/d76959bde3e55858366a445f61e409cc.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4119d3730a91c5a7c025abef65085ef9.png)
sendmail服务器的别名和用户控制 先是别名,就是给一个虚拟用户发邮件一个或多个用户能够收到,类似群发 vim /etc/aliases 前面是虚拟用户或者真实用户,右面是需要转发给的用户
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/f00dbd9b8241718b20c4d5a923b40f0a.png)
给stuff用户发邮件,会自动转发给michael和51cto 我系统里面没有stuff这个用户,修改配置文件以后,使用newalias 更新别名数据库
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/c1c27606ed03e3893aab5f36270aecb5.png)
成功
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b0bdfd199065843ca0b397e5fa233acd.png)
这个是51cto用户,他收到了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/166c78f9f2e06a2d617c0fa3d6209b85.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/4c16d6fde660ee47b8487d1e5b009ec6.png)
这个是michael用户,他也收到了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/aab9baac4de712cdcee598faaa749514.png)
下一个功能是访问控制 访问控制时在RHCE考试最容易考到得地方 vim /etc/mail/access
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/8af2e5391de8fe8507eb5990520513d1.png)
access文件的格式:
IP/域名 设定值 也可以是用户
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/1e65366f67fe9fc09936681faa370dfa.png)
使用makemap 命令 生成access.db文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/04d357b857fdb77c1c7080c08d3ce8e4.png)
重新启动sendmail服务器
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/91a12bce447356ba3fb46ce5004ac5ea.png)
不能发送了
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/72c707d98b21d8496855cdac5717d41e.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/b1b9f0cf3f1a6af586105ce3df04ce1c.png)
直接被拒绝了,不能给那个用户发送邮件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/cd15ae229d1b498837bf6cb080b55838.png)
然后我们取消拒绝试试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/fc4694ee093c8cc68cb0a4875501ad2d.png)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2723f7d532748be8c801241181de839d.png)
现在再试试
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/fe06253b2cd140af720ab95f4349a2ae.png)
可以了哈~
![](https://oscdn.geek-share.com/Uploads/Images/Content/202012/05/2d535b1a9cc8770d0e3e69afac0f1f60.png)
相关文章推荐
- RHCE课程-RH253Linux服务器架设笔记七-Sendmail服务器配置 推荐
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(2) 推荐
- RHCE课程-RH253Linux服务器架设笔记六-Squid服务器配置 推荐
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(4)
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(3)
- RHCE课程-RH253Linux服务器架设笔记二-NFS服务器配置 推荐
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(1) 推荐
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(2)
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(3)
- RHCE课程-RH253Linux服务器架设笔记五-APACHE服务器配置(4)
- RHCE课程-RH253Linux服务器架设笔记十-Iptables防火墙
- RHCE课程-RH253Linux服务器架设笔记四-DHCP服务器配置 推荐
- RHCE课程-RH253Linux服务器架设笔记五-DNS服务器配置(2)
- RHCE课程-RH253Linux服务器架设笔记五-DNS服务器配置 推荐
- RHCE课程-RH253Linux服务器架设笔记五-DNS服务器配置(2)
- RHCE课程-RH253Linux服务器架设笔记九-tcp_wrapper
- RHCE课程-RH253Linux服务器架设笔记一-VSFTPD
- RHCE课程-RH253Linux服务器架设笔记五-DNS服务器配置
- RHCE课程-RH253Linux服务器架设笔记一-VSFTPD的配置(1) 推荐
- RHCE课程-RH253Linux服务器架设笔记三-Samba服务器配置(2) 推荐