Mail服务器简介:

电子邮件系统由三类主要部件构成: 用户代理、邮件服务器和简单邮件传送协议,简称SMTP)。(simple Mail Transfer Protocol
在 linux下有许多软件包可以实现标准的邮件服务,linux中的电子邮件系统模型可分为MTA(邮件传输代理),MSA(邮件存储和获取代理)以及MUA(邮件用户代理)三大模块。linux下可供选择的邮件服务器套件有Sendmail和Qmail。Qmail比较注意安全问题,假如你需要一个安全的邮件网关,那它是一个不错的可选方案;而Sendmail在稳定性、可移植性、及确保没有bug方面具有一定特色,且可以在网络中搜索到大量的使用资料,因此Linux下一般都选用此系统搭建,下面就演示sendmail的搭建方法。
案例拓扑图:

MailA服务器的相关配置:
安装 sendmail相关软件包
rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm    保证可以编辑 sendmail.mc文件
cd /etc/mail进入目录编辑 sendmail.mc

 

service sendmail restart 重启 sendmail
编辑 access启用中继

 

 

vim local-host-names声明域名和邮箱名

 

重启sendmail

vim /etc/sysconfig/network编辑文件更改域名

 

安装 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
cd /var/named/chroot/etc 切换到 dns主目录
cp -p named.caching-nameserver.conf named.conf 拷贝文件为 named.conf
编辑文件 named.conf

 

vim named.rfc1912.zones编辑该文件

 

cd ../var/named         cp -p localhost.zone A.com.zone切换目录别生成域的文件

 

 

service named start重启dns

chkconfig named on设为开机启动

vim /etc/resolv.confdns指向

 

创建账号和密码测试 useradd user1 useradd user2  passwd user1  passwd user2
mail -s ok user1给 user1发送个邮件名字为ok
安装接受服务器
rpm -ivh perl-DBI-1.52-2.el5.i386.rpm   
rpm -ivh mysql-5.0.77-3.el5.i386.rpm           //dov相关软件包
rpm -ivh dovecot-1.0.7-7.el5.i386.rpm
service dovecot start重启并设为开机启动 chkconfig dovecot on
meilB服务器与 mailA服务器基本相同就不多做介绍了。
以上只是实现 A区域,B区域自己系统内的邮件收发。
当 A区域要向B区域发送消息时,A的dns无法解析B的域名,因此需要把A的DNS指向B的DNS。
vim /var/named/chroot/etc/named.conf

 

 

service named restart重启dns

同样B区域也要做指向。

配置好后在A区域客户端上向B区域客户发送邮件,此时时间会很长,因为本次试验拓扑在同一网段,需要在dns中指明逆向解析,这样速度就会增加

Vim /var/named/chroot/etc/named.rfc1912.zones

 

cd ../var/named/           cp -p named.local 192.168.100.zone切换目录并把文件拷贝为配置文件
vim 192.168.100.zone

 

 

同样在B区域也要做逆向解析。

重启dns后再次发送邮件

 

这样AB两区域可相互收发邮件,但邮件无安全性,因此,还何以在邮件系统中增加安全设置

安装抓包工具来更清楚的知道邮件传送,收发问题

rpm -ivh libsmi-0.4.5-2.el5.i386.rpm

rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm

tshark -ni eth0 -R "tcp.dstport eq 110" eth0上开始抓包

发送一封邮件测试一下,结果抓到了相关的用户和密码,根本没有安全性。

创建加密发送机制smtpsvim /etc/pki/tls/openssl.cnf

 

为证书机制创建 3个目录2个文件mkdir crl certs newcerts    touch index.txt serial
echo "01" >serial给文件初始值
openssl genrsa 1024 >private/cakey.pem    产生公钥并放入指定目录
chmod 600 private/* 修改文件权限
openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem 产生证书此指令执行后有很多相关条件要填写,为避免每次都填写可以编辑文件vim /etc/pki/tls/openssl.cnf 中相关条件

 

mkdir -pv /etc/mail/certs创建文件切换到该文件 cd /etc/mail/certs/
openssl genrsa 1024 >sendmail.key创建私钥钥匙
openssl req -new -key sendmail.key -out sendmail.csr为私钥申请证书并填写正确邮箱地址
ca -in sendmail.csr -out sendmail.cert 生成证书并放在 sendmail.cert中
chmod 600 *把所有的文件权限更改,保证安全。
为证书和私钥指明路径: vim /etc/mail/sendmail.mc

 

service sendmail restart重启服务

创建接受加密机制pop3s

mkdir -pv /etc/dovecot/certs 创建目录并切换到目录cd /etc/dovecot/certs/

openssl genrsa 1024 >dovecot.key 产生钥匙

openssl req -new -key dovecot.key -out dovecot.csr请求证书

openssl ca -in dovecot.csr -out dovecot.cert产生证书

指明钥匙和证书路径:vim /etc/dovecot.conf

 

在客户端上把smtp的地址设置为配置的邮件地址,并在高级选项中开启接受和发送ssl

发送测试,也可以抓包查看,账号名字加密。