Sendmail是一种古老的邮件服务器,但是它仍然存在着种种问题,最大的问题就是安全问题。由于Sendmail邮件服务器占据了很大的市场份额,因此,提高Sendmail的安全性就显得格外重要了。
本篇拟从证书、Starttls、Sasl技术来探讨Sendmail的安全问题。首先对相关术语的解释如下,(只有术语解释来自于互联网,请尊重版权)。
STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL),而不是使用一个单独的加密通信端口。RFC 2595定义了IMAP和POP3的STARTTLS,RFC 3207定义了SMTP的STARTTLS,RFC 4642定义了NNTP的STARTTLS。TLS 是独立于应用层的协议。高层协议可以透明地分布在 TLS 协议上面。然而,TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。
Sasl全称Simple Authentication and Security Layer,是一种用来扩充C/S模式验证能力的机制。在Postfix可以利用SASL来判断用户是否有权使用转发服务,或是辨认谁在使用你的服务器。SASL提供了一个通用的方法为基于连接的协议增加验证支持,而XMPP使用了一个普通的XML名字空间来满足SASL的需要。
接下来,笔者将使用有图有真相的实验,和您共同探讨Sendmail 安全方面在企业中的应用实例。(很抱歉,由于篇幅的限制,本篇不得不分为上下两篇,给您带来的不便,敬请谅解。谢谢)
实验环境:某企业拟计划使用Sendmail来搭建邮件服务器。为了尽最大努力的保护邮件服务系统的安全,要求使用证书、Sasl等技术。
实验拓扑:
实验设备:
DNS && MAIL Server LInux5.4(2.6.18-164.el5)
实验步骤:
一、配置Sendmail
1.安装Sendmail相关组件
[root@ns ~]# yum list |grep -E "Sendmail"
This system is not registered with RHN.
RHN support will be disabled.
Sendmail.i386 8.13.8-2.el5 installed
Sendmail-cf.i386 8.13.8-2.el5 rhel-Server
Sendmail-devel.i386 8.13.8-2.el5 rhel-Server
Sendmail-doc.i386 8.13.8-2.el5 rhel-Server
[root@ns ~]# yum install -y Sendmail-cf.i386
[root@ns ~]# rpm -qa |grep -E "Sendmail|m4"
m4-1.4.5-3.el5.1
Sendmail-cf-8.13.8-2.el5
Sendmail-8.13.8-2.el5
2.修改Sendmail相关配置文件
[root@ns ~]#
[root@ns mail]# pwd
/etc/mail
[root@ns mail]# vim Sendmail.mc
[root@ns mail]# vim access
[root@ns mail]# vim local-host-names
[root@ns mail]# service Sendmail start
Starting Sendmail:
[root@ns mail]# service Sendmail restart
Shutting down sm-client: [ OK ]
Shutting down Sendmail: [ OK ]
Starting Sendmail: [ OK ]
Starting sm-client: [ OK ]
[root@ns mail]#
3.测试
添加用户
[root@ns ~]# useradd user1
[root@ns ~]# echo "123"|passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@ns mail]# telnet 127.0.0.1 25
二、配置DNS
1.安装Sendmail相关组件
[root@ns Server]# pwd
/mnt/cdrom/Server
[root@ns Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
[root@ns Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
[root@ns Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
2.修改Sendmail相关配置文件
[root@ns etc]# pwd
/var/named/chroot/etc
[root@ns etc]# cp -p named.caching-nameserver.conf named.conf
[root@ns etc]# vim named.conf
[root@ns etc]# pwd
/var/named/chroot/etc
[root@ns etc]# vim named.rfc1912.zones
[root@ns etc]# cd /var/named/chroot/var/named/
[root@ns named]# cp localhost.zone bj.com.db
[root@ns named]# vim bj.com.db
[root@ns named]# pwd
/var/named/chroot/var/named
[root@ns named]# cp -p named.local 192.168.10.db
[root@ns named]# vim 192.168.10.db
3.重启服务
[root@ns named]# rndc reload
server reload successful
[root@ns named]# service named start
Starting named: [ OK ]
[root@ns named]#
[root@ns named]# chkconfig named on
[root@ns named]# chkconfig --list |grep named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
三、修改主机信息
1.修改nameserver
[root@ns named]# vim /etc/resolv.conf
2.修改hostname
[root@ns named]# hostname
ns.bj.com
[root@ns named]# vim /etc/sysconfig/network
3.修改hosts文件
[root@ns named]# vim /etc/hosts
4.重启
[root@ns named]# init 6
四、配置dovecot
1.安装dovecot相关组件
[root@mail ~]# yum list all |grep dov
This system is not registered with RHN.
RHN support will be disabled.
dovecot.i386 1.0.7-7.el5 rhel-Server
[root@mail ~]# yum install dovecot.i386 -y
2.修改dovecot相关配置文件
[root@mail ~]# service dovecot start
Starting Dovecot Imap: [ OK ]
[root@mail ~]# chkconfig dovecot on
[root@mail ~]# chkconfig --list |grep dovecot
dovecot 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@mail ~]# netstat -tupln |grep dovecot
tcp 0 0 :::993 :::* LISTEN 3179/dovecot
tcp 0 0 :::995 :::* LISTEN 3179/dovecot
tcp 0 0 :::110 :::* LISTEN 3179/dovecot
tcp 0 0 :::143 :::* LISTEN 3179/dovecot
[root@mail ~]#
[root@mail ~]# grep 993 /etc/services
imaps 993/tcp # IMAP over SSL
imaps 993/udp # IMAP over SSL
[root@mail ~]# grep 995 /etc/services
pop3s 995/tcp # POP-3 over SSL
pop3s 995/udp # POP-3 over SSL
[root@mail ~]# service dovecot restart
Stopping Dovecot Imap: [ OK ]
Starting Dovecot Imap: [ OK ]
[root@mail ~]# netstat -tupln |grep dovecot
tcp 0 0 :::110 :::* LISTEN 3294/dovecot
tcp 0 0 :::143 :::* LISTEN 3294/dovecot
[root@mail ~]# vim /etc/dovecot.conf
( 很抱歉,由于篇幅的限制,本篇不得不分为上下两篇,给您带来的不便,敬请谅解。 未完,参考《布Sendmail之网,安全则不漏(下)》)