1.电子邮件服务简介:

Sendmail是UNIX/Linux环境中稳定性较好的一款邮件服务器软件,通过对Sendmail服务器的配置可以实现基本的邮件转发功能;dovecot服务器实现了POP3协议,可以与Sendmail服务器配合工作,实现用户对邮件的收取功能;OpenWebmail是网页形式的邮件应用系统,可实现用户对邮件的发送、收取和管理功能。通过对Sendmail、dovecot和OpenWebmail的综合管理,系统管理员可以构建出功能完善的邮件应用系统。

     一个完整的电子邮件系统分为以下3个部分:

  (1)邮件用户代理,简称MUA,其主要功能就是帮助用户发送和收取电子邮件。目前常用的Outlook,

电子邮件是多少,         Outlook Express,Foxmail,Thunderbird。

  (2)邮件传送代理。简称MTA。用来监控以及传送电子邮件。基于linxu下的一般有sendmail,Qmail,  Postfix。

  (3)电子邮件协议。电子邮件客户端和服务器的种类繁多,他们之间的电子邮件协议包括以下几种:

         1)SMTP。即简单邮件传输协议。他为用户提供高效,可靠地邮件传输,监听25号端口。它是一个

              请求/响应协议,用于接收用户的邮件请求,并与远端邮件服务器建立smtp连接。

如何终止linux邮箱服务。         2)POP3。即邮局协议。它使用tcp的110端口。用于电子邮件的接收。目前常用的是POP3.

         3)IMAP4。是通过互联网获取信息的一种协议。它同样可以提供像POP那样方便的下载邮件服务 。           IMAP还提供一种摘要浏览功能,让用户可以在阅读完邮件的主题,发件人,大小和到达时间等信息后才能决定是否下载。

         4)Webmail。Webmail不是一种协议,而是一种专门针对邮件程序被安装在服务器上的WEB支持插件,让用户可以直接通过浏览器查收,阅读和发送邮件。

2.关于sendmail,我们来认识几个人间和必须要安装的包:

       在red hat Enterprise Linux 5中,默认已经安装并且可以启动sendmail。

linux卸载服务,       sendmail的配置文件:sendmail的配置文件都放在/etc/mail目录下。

   1)/etc/mail/sendmail.cf ,这是sendmail的主配置文件,所有sendmail的配置都保存在这个文件中,不过,这个文件的语法复杂,建议通过修改其他文件参数来由程序生成该主配置文件。

   2)/etc/mail/sendmail.mc ,这个文件与sendmail.cf中的内容完全一样,但却拥有比较简单的语法。可以通过程序M4将其转化为sendmail.cf 。

   3)/etc/mail/access.db ,访问数据库,用来定义允许访问本地邮件服务器的主机ip地址,以及访问的类型

   4)/etc/mail/aliases.db ,即别名数据库,用来定义用户别名。

linux设置别名的配置文件。   5)/etc/mail/local-host-names ,该文件用于指定本地接收邮件的域。

  需要安装的包:sendmail-cf  m4

3.下面就sendmail来举一个案例:有一个位于北京的邮件系统,域名为bj.com ,ip地192.168.5.100,

一个位于上海的邮件系统,域名为sh.com ,ip地址为192.168.5.101,北京有两个用户 user1 和user2 ,域名分别为user1@bj.com  user2@bj.com,上海有两个用户 user3 和user4,域名分别为

user3@sh.com  user4@sh.com,现在要通过加密和认证来实现双方用户的邮件通信。

linux超级用户权限?4.实验步骤:

(1)编辑access文件

        [root@localhost Server]# cd /etc/mail

        [root@localhost mail]# vim access

        image

linux sendmail、       将sendmail服务重新启动一下:

       service sendmail start

   编辑local-host-names 文件,填写负责的区域:

       [root@localhost mail]# vim local-host-names

       image

我的电子邮箱,  (2)既然牵扯到域,少不了dns服务器的配置:

       下面是北京地区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

linux 查找文件命令,      [root@localhost Server]# cd /var/named/chroot/etc/

      [root@localhost etc]# cp -p named.caching-nameserver.conf named.conf

      [root@localhost etc]#  vim named.conf

      15行 any     27行 any     28行  any      37行 any       38行 any

            image

python收发邮件,           image

           image

      [root@localhost etc]# vim  named.rfc1912.zones         #修改区域声明文件

      image

      [root@localhost etc]# cd  /var/named/chroot/var/named

linux全局设置环境变量、      [root@localhost named]# cp -p localhost.zone bj.com.db

      [root@localhost named]# vim bj.com.db

      image

    [root@localhost named]# chkconfig named on

     [root@localhost named]# service named start

mail邮件系统。     [root@localhost named]# vim /etc/resolv.conf

     image

    修改地区名称:

     [root@localhost named]# vim /etc/sysconfig/network

     image

基于java的电子邮件收发系统。    hosts文件里的信息也得改:

     [root@localhost named]# vim /etc/hosts

     image

    [root@localhost named]# init 6    #重新启动

    启动完成后确认这几种服务是否开启:

    [root@mail ~]# service named status

    [root@mail ~]# service sendmail status

    建立两个用户user1  user2

    [root@mail ~]# echo "123" |passwd --stdin user1

    [root@mail ~]# echo "123" |passwd --stdin user2

    现在先来测试北京本地用户是否能收发邮件。

    image    

    image

    image

    image

    image

   image

   至此说明了用户user1接到了自己给自己发送的邮件。

  (3)接下来安装接收服务器:

     首先我们来安装dovecot包:

     [root@mail ~]# yum install -y dovecot

     [root@mail ~]# chkconfig dovecot on

     [root@mail ~]# service dovecot start               #启动dovecot服务

     现在我们使用user1给user2发送邮件:

     image

     image

  说明user1已经成功将邮件发送给user2.

做到这里,说明北京本地的两个用户已经可以相互发送邮件和接收邮件,那接下的任务就是让北京用户和上海用户可以互相收发邮件。

    建立上海邮件服务器的步骤跟北京基本上是一样的,在这里步骤就省略了。

   因为私有域名的原因,上海和北京两个地区要满足互相收发邮件,必须开启转发功能:

   [root@mail ~]# vim /var/named/chroot/etc/named.conf

   image  

   同样,上海地区的也一样要改,并且转发的地址为192.168.5.100.

   [root@mail ~]# rndc reload

   下面我们来测试上海用户user3给北京用户user1发送邮件的结果:

   image 

   image

   说明上海的user3用户已经成功的将邮件发送给了北京的user1用户,实现了两地用户之间的通信。

(4)为了保证邮件收发的安全性,下面我们队邮件系统的收发进行加密:

   启用加密设置:

   [root@mail ~]# cd /etc/pki/

   [root@mail pki]# cd tls/

   [root@mail tls]# vim openssl.cnf

   image

   image

   CA证书:

   [root@mail pki]# cd CA/

   [root@mail CA]# mkdir crl
   [root@mail CA]# mkdir certs
   [root@mail CA]# mkdir newcerts

   [root@mail CA]# touch index.txt serial

   [root@mail CA]# echo "01" >serial

   [root@mail CA]# openssl genrsa 1024 >private/cakey.pem

   [root@mail CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

   [root@mail CA]# chmod 600 private/cakey.pem        #修改钥匙权限

  

给sendmail颁发一个证书:

  [root@mail CA]# mkdir /etc/mail/certs

  [root@mail CA]# cd /etc/mail/certs/

  [root@mail certs]# openssl genrsa 1024 >sendmail.key

  [root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr

  [root@mail certs]# openssl ca -in sendmail.key -out sendmail.cert

  image

  [root@mail certs]# cp /etc/pki/CA/cacert.pem .

  [root@mail certs]# cd /etc/mail

  [root@mail mail]#  vim sendmail.mc

  image

  image

  启动134行。

  [root@mail mail]# cd certs/

  [root@mail certs]# chmod 600 *       #修改权限

  为了验证TLS是否启动,我们做以下操作:

  image

 说明tls已经开启。

(5)下面为接收服务器颁发认证:

  [root@mail mail]# mkdir -pv /etc/dovecot/certs

  [root@mail mail]# cd /etc/dovecot/certs/

  [root@mail certs]# openssl genrsa 1024 >dovecot.key

  [root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr

  [root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert

  [root@mail certs]# chmod 600 *

  [root@mail certs]# vim /etc/dovecot.conf

  image

  image

  [root@mail certs]# service dovecot restart

  下面是测试:

   我们先走110端口的pop3.

   安装抓包工具:wireshark

   [root@mail ~]#  tshark -ni eth0 -R "tcp.dstport eq 110"

   image

   image

   从这里可以看出输入的信息被抓获,非常不安全。

   下面我们走993的加密端口,看看会有什么结果:

   [root@mail ~]#  tshark -ni eth0 -R "tcp.dstport eq 993"

   image

  从这里可以看出所输入的信息被SSL加密,保证了安全性。

  下面我们也得让客户端接收邮件的时候走的是加密端口。

  image

  image

 image  

说明接收邮件也是通过加密来接收的。

上海地区的做法跟北京一样,在这里就不做说明了。