电子邮件服务器以及sendmail加密、证书、认证
在(1)中我们已经简要介绍了电子邮件服务器的相关内容,下面我们来实现以下sendmail的安装以及邮件系统其他功能的实现
搭建环境:red hat 5.4
使用本地的光盘镜像里的软件包搭建邮件服务器
确保sendmail已经安装后,查看sendmail的工作端口情况,sendmail监听在本机的25端口,也就是说发送邮件仅仅局限于本机用户之间的发送
使用root用户给本机用户user1发送邮件
使用user1收邮件,mail查考邮箱,输入1查看邮件
退出时若输入q,邮件就自动保存到用户家目录下的mbox里
若输入x,下次查收邮件时会提示还有新邮件
若删除邮件输入d 邮件编号
因为目前的系统只能给连接本邮局的用户发送邮件,这显然很不方便,所以我们应改变监听地址:
修改/etc/mail目录下sendmail.mc,但是系统默认使用sendmail.cf,我们要把它进行转化,这需要一个软件sendmail-cf,还要修改一个access文件同样的系统使用access.db,access文件要转成access.db这需要软件m4,m4默认已经安装到系统
[root@station253 Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
修改sendmail.mc文件第116行
重启sendmail服务
监听端口已经更改
我们可以使用telnet来排错,查看端口状态,同样可以发邮件
Mail from:发件人
Rcpt to:收件人
Data输入数据
. 输入结束
Quit退出
当我们要发一封邮件时,随便输入一个用户名发现就能够发送,这就显现处sendmail的缺陷所在没有验证功能
同样外面的主机也能够给邮件服务器发送邮件的
为了解决sendmail的安全问题,下面我们来对sendmail的加密、证书和认证进行学习
环境:red hat 5.4
基于上面sendmail的配置环境
我们还需要安装接收邮件软件
#yum install dovecot
#service dovecot start
更改邮件服务器的一些文件
编辑/etc/mail/access文件
接收163.com的任何邮件
为发往sina.Com的邮件做中继
为192.168.102网段的ip地址主机做中继
编辑/etc/mail/access文件local-host-names
为163.com和sina.com地区邮局配置dns
# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
生成配置文件
进入/var/named/chroot/etc/目录下
#cp -p named.caching-nameserver.conf named.conf
并编辑
添加163.com域
# vim named.rfc1912.zones
生成163.com域的配置文件
# cd /var/named/
# cp -p localhost.zone 163.com.zone
# vim 163.com.zone
重启dns服务并修改/etc/resolv.conf、/etc/sysconfig/network、etc/hosts文件
修改主机名
更改hosts文件
重启相关服务
我们使用windows 2003作为测试主机
这样163.com的dns就搭建完成了
以同样的方法在sina.Com地区的服务器上创建好dns服务器
已经实现不同区域间的邮件传输,现在我们对它们进行加密和证书处理
创建CA
# cd /etc/pki/
# vim tls/openssl.cnf
更改默认值
创建所需目录和文件
产生证书序列号
# echo 01 >serial
产生私钥,并更改其权限
# openssl genrsa 1024 > private/cakey.pem
# chmod 600 private/cakey.pem
产生证书
# openssl req -new -key private/cakey.pem -out cacert.pem
相关信息
为服务器产生私钥和证书
产生证书
CA签署证书
# openssl ca -in sendmail.csr -out sendmail.crt
将证书和邮件服务器sendmail结合
修改邮件服务器的配置文件
# vim /etc/mail/sendmail.mc
重启邮件服务服务
# service sendmail restart
为接收创建私钥和证书
# mkdir -pv /etc/dovecot/certs
# cd /etc/dovecot/certs/
# openssl genrsa 1024 >dovecot.key
# openssl req -new -key dovecot.key -out dovecot.crs
CA签署证书
# openssl ca -in dovecot.csr -out dovecot.crt
并更改权限
# chmod 600 dovecot.key
编辑dovecot的配置文件
接收邮件加密协议
证书和私钥路径
证书链路径
重启dovecot服务
# service dovecot restart
接下来配置客户端
启用抓包工具
# tshark –ni eth0 –R “tcp.port eq 995”
可以看出加密成功
接下来做验证
sendmail自身没有身份认证能力,要想实现身份认证,必须要借助sasl协议,系统默认已经装好
# vim /usr/lib/sasl2/Sendmail.conf
邮件服务器与认证结合成功的标志
编辑sendmail的配置文件
# vim /etc/mail/sendmail.mc
重启sendmail服务
进行验证时要求有身份验证
利用auth login指令测试时,账号不能输明文的,要输入base64编码的账号,这时要产生这个base64编码
# echo -n "[email protected]" |openssl base64
# dXNlcjNAc2luYS5jb20=
输入验证账户base64编码
认证通过
当我们发送邮件时会出现下面错误
我们需要去进行设置
选择你的账户
这样进行设置后就可以成功发送了
前面我们所用的邮件发送和接收速度都非常慢,我们这里为邮件服务器做一个dns反向解析来提高它的速度
# vim /var/named/chroot/etc/named.rfc1912.zones
插入以下代码
# cp -p named.local 192.168.102.local
编辑192.168.102.local
然后执行
# rndc reload
同样在sina邮件服务器上做一个dns反向解析会大大提高邮件的收发速率