Sendmail的介绍
sendmail是最重要的邮件传输代理程序。理解电子邮件的工做模式是很是重要的。通常状况下,咱们把电子邮件程序分解成用户代理,传输代理和投递代理。 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express、foxmail等。而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail。
配置sendmail前须要准备的工做
一.安装sendmail-8.13.8-2.el5.i386.rpm软件包
【用来修改sendmail.mc文件】
[root@localhost Server]# rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm
Preparing...
########################################### [100%]
1:sendmail-cf ########################################### [100%] [root @localhost mail]# rpm -qa |grep m4 【用来修改access文件】
m4-1.4.5-3.el5.1
二. 修改主机名
[root@local ~]# vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=mail.163.com
三. 在一个邮件服务器上安装dns服务器而且把dns服务器配置好
1. 安装软件
[root@local Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm
Preparing...
################################ [100%] 1:bind #################################### [100%]
[root@local Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm
Preparing...
########################################### [100%]
1:bind-chroot
########################################### [100%]
[root@local Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm
Preparing...
########################################### [100%] 1:caching-nameserver ########################################### [100%]
2. 配置dns服务器
[root@local etc]# cp -p named.caching-nameserver.conf named.conf 【复制一份配置文件模板】
修改以下
15
listen-on port 53 { any; };
27
allow-query { any; };
28
allow-query-cache { any; };
37
match-clients { any; };
38
match-destinations { any; };
39
recursion yes;
[root@local named]# cp -p localhost.zone 163.com.zone
修改一下几行
2 @
IN SOA ns.163.com. root (
9
IN NS ns.163.com.
10 ns
IN A 192.168.1.100
11 mail
IN A 192.168.1.100
12 pop3
IN CNAME mail
13 smtp
IN CNAME mail
14 @
IN MX 10 mail
四. 查看sendmail的配置文件并修改下列文件
[root@localhost ~]# cd /etc/mail
[root@localhost mail]# ll
1. 修改sendmail.mc文件mysql
[root@localhost mail]# vim sendmail.mclinux
修改第116行把原来的127.0.0.1 修改成0.0.0.0sql
重启服务后查看端口状况
[root@localhost mail]# netstat -tupln|less
tcp
0 0 0.0.0.0:25 0.0.0.0:* LISTE32761/sendmil: acc LISTEN 32761/sendmail: acc 0.0
2. sendmail默认状况下不支持中继,因为不支持中继就不能与外部通讯因此须要修改
Access文件如下这种修改成基于ip地址的中继
[ root@localhost mail]# vim access
Connect:localhost.localdomain
RELAY
Connect:localhost
RELAY
Connect:127.0.0.1
RELAY
Connect:192.168.1
RELAY
sina.com
RELAY
163.com
OK
在另外一台pc上测试
telnet 192.168.1.100 25
【个人linux主机ip为192.168.1.100】
3.
[root@mail mail]# vim local-host-names
# local-host-names - include all aliases for your machine here.i
163.com
mail.163.com
五. 安装邮件接收服务器这里利用yum进行安装
1. 利用yum进行安装
[root@mail Server]# yum install -y dovecot-1.0.7-7.el5.i386.rpm
Running Transaction
Installing
: perl-DBI 1/3
Installing
: mysql 2/3
Installing
: dovecot
Installed:
六. 利用outlook Express 进行测试
邮件的别名修改
[root@mail ~]# vim /etc/aliases
结果user1 和user2 都接受到邮件了
七.
163服务器和sina服务器搭建好之后作好反向dns
[root@mail etc]# vim named.rfc1912.zones
37 zone "1.168.192.in-addr.arpa" IN {
38
type master;
39
file "192.168.1.zone";
40
allow-update { none; };
41 };
[root@mail ~]# cd /var/named/chroot/var/named/
[root@mail named]# cp -p named.local 192.168.1.zone
1 $TTL
86400
2 @
IN SOA localhost. root.localhost. (
3
1997022700 ; Serial
4
28800 ; Refresh
5
14400 ; Retry
6
3600000 ; Expire
7
86400 ) ; Minimum
8
IN NS localhost.
9 50
IN PTR mail.sina.com.
八.为邮件进行加密
1. 首先安装抓包软件
[root@mail Server]# yum install -y wireshark-1.0.8-1.el5_3.1.i386.rpm
安装好以后发一封邮件 进行测试
Running as user "root" and group "root". This could be dangerous.【【抓包】】
Capturing on eth0
39.735050 192.168.1.101 -> 192.168.1.100 TCP 1090 > 110 [SYN] Seq=0 Win=65535 Len=0 MSS=1460
39.735533 192.168.1.101 -> 192.168.1.100 TCP 1090 > 110 [ACK] Seq=1 Ack=1 Win=65535 Len=0
39.738192 192.168.1.101 -> 192.168.1.100 POP Request: USER user2【【帐号】】
39.739713 192.168.1.101 -> 192.168.1.100 POP Request: PASS 123【密 码】】
39.770656 192.168.1.101 -> 192.168.1.100 POP Request: STAT
39.876335 192.168.1.101 -> 192.168.1.100 POP Request: LIST
结果抓出了帐号和密码
1. 实现邮件加密的步骤
实现CA
[root@mail ~]# vim /etc/pki/tls/openssl.cnf
[root@mail ~]# cd /etc/pki/CA/
[root@mail CA]# mkdir crl certs newcerts
【建立目录】
[root@mail CA]# touch index.txt serial 【建立文件】
[root@mail CA]# echo "01" >serial
【为serial文件建立序列号】
[root@mail CA]# openssl genrsa 1024 >private/cakey.pem 【产生私钥】
[root@mail CA]# chmod 600 private/*【修改cakey.Pem的权限】
[root@mail CA]# openssl req -new -key private/cakey.pem -x509 -days 3650 -out cacert.pem
【产生证书】
为sendmail发送服务器申请证书
申请证书要有钥匙,请求文件,证书
[root@mail certs]# openssl genrsa 1024 >sendmail.key 【产生钥匙】
Generating RSA private key, 1024 bit long modulus
..................................................++++++
......++++++
[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr 【生成请求文件】
[root@mail certs]# openssl ca -in sendmail.csr -out sendmail.cert 【申请证书】
进行证书和服务器的捆绑
[root@mail ~]# vim /etc/mail/sendmail.mc
60 define(`confCACERT_PATH', `/etc/pki/CA')dnl
61 define(`confCACERT', `/etc/pki/CA/cacert.pem')dnl
62 define(`confSERVER_CERT', `/etc/mail/certs/sendmail.cert')dnl
63 define(`confSERVER_KEY', `/etc/mail/certs/sendmail.key')dnl
64 dnl #
测试
发送邮件
抓包测试
[root@mail certs]# tshark -ni eth0 -R "tcp.dstport eq 25 or tcp.srcport eq 25"
Running as user "root" and group "root". This could be dangerous.
Capturing on eth0
73.595784 192.168.1.101 -> 192.168.1.100 SMTP C: STARTTLS 【【说明已经成功加密了】】