Sendmail在企業網中的應用

 

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 【【說明已經成功加密了】】
相關文章
相關標籤/搜索