Linux初级运维(二十五)——邮件服务器系统知识及服务器搭建

一、基础原理

    1、邮件服务器是一种用来负责电子邮件收发管理的设备。比网络上免费的邮箱更加安全和高效,因此一直是企业公司的必备设备。

    简单邮件传输协议(SMTP)是因特网电子邮件系统首要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。跟大多数应用层协议一样,SMTP也存在两个端:在发信人的邮件服务器上执行的客户端和在收信人的邮件服务器上执行的服务器端。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器在向其他邮件服务器发送邮件消息时,它是作为SMTP客户在运行。当一个邮件服务器从其他邮件服务器接收邮件消息时,它是作为SMTP服务器在运行。

        POP3:Post Office Protocol  

        IMAP4: Internet Mail Access Protocol

        SASL:Simple Authintication Secure Layer ,简单认证安全层

        MTA:邮件传输代理,SMTP服务器

        LDAP:Lightweight Directory Access Protocol

    2、MTA:邮件传输代理,SMTP服务器

        sendmail,UUCP

            单体结构,SUID,配置文件语法(m4编写)

        qmail

        postfix:模块化设计,安全,跟sendmail兼容,效率高

        exim:MTA

        Exchange(Windows,异步消息协作平台)

    3、MDA:

            procmail

            maildrop

    4、MRA:

        pop3  ,imap4

        cyrus-imap

        dovecot

    5、MUA:

        outlook express ,outlook

        foxmail

        thunderbird

        evolution

        mutt(文本界面)

    6、webmail:

        openwebmail

        squirrelmail

        extmail(extman)

二、搭建邮件服务器的部署软件

        postfix +SASL  (courier-authlib) + mysql     发送邮件

        Dovecot + mysql    接受邮件

        extamil+ extman+http    网页显示

    1、postfix的配置文件

        postfix模块化:

            master: /etc/postfix/master.cf

            mail:/etc/postfix/main.cf

                参数=值 :参数必须写在行的绝对行首,以空白开头的行被认为是上一行的延续

    2、postconf:配置postfix

            -d:显示默认的配置

            -n:修改了得配置

            -m:显示支持的查找表类型

            -A:显示支持的SASL客户端插件类型

            -e PARMATER-VALUE: 更改某参数配置信息,并保存至main.cf文件中

    3、smtp状态码:

        1XX:纯信息

        2XX:正确

        3XX:上一步操作尚未完成,需要继续补充

        4XX:暂时性错误

        5XX:永久性错误

    4、smtp协议命令:

            hello (smtp协议)

            ehllo(esmtp协议)

            mail from

            rcpt to

三、实验环境

    1、硬件环境:

        Linux服务器一台,IP地址:172.28.5.159

        Window系统一台,做测试使用,需要安装outlook,并与服务器在同一个局域网内

    2、服务器操作系统

        image.png

四、搭建邮件服务器内容如下:

    1、搭建DNS服务器

    2、搭建postfix服务器及普通发信

    3、普通收信

    4、认证收信

    5、squirrelmail收发邮件 (搭建网页收发邮件)

    6、邮件群发功能配置

    7、邮件发送容量大小配置

    8、通过配置用户磁盘配额实现限制用户邮箱空间

五、配置步骤

    1、搭建DNS服务器

        (1)安装DNS服务

        yum install bind -y

        image.png

        (2)修改主配置文件

        vim /etc/named.conf

        image.png

        (3)检查语法错误

            named-checkconf 

        (4)配置区域配置文件

            vim /etc/named.rfc1912.zones

        在文件末尾加入以下内容:

            image.png

        检查语法错误:  named-checkconf 

        (5)区域数据文件配置

        image.png

        复制文件添加-P 表示复制过来的文件保持权限不变。

        vim melvin1.com.zone

        image.png

        (6)创建反向区域数据配置文件

        cp -p named.localhost melvin1.com.local

        image.png

        vim melvin1.com.local

        image.png

        named-checkconf          检查语法错误

        (7)重启服务,进行验证

        image.png

        (8)设置服务器域名并进行解析验证

        vim /etc/resolv.conf

        image.png

        解析验证:

        image.png

    2、搭建postfix并配置基本发信功能

        (1)验证是否支持cyrus dovecot功能

        postconf -a

        image.png

        (若postfix已安装好,则会支持这两个功能,若不支持,表示postfix未安装好;CentOS 7开始默认系统自带postfix。)

        systemctl start postfix         # 启动postfix服务

        (2)配置主配置文件

        vim /etc/postfix/main.cf

        修改以下内容信息:

        myhostname=mail.melvin1.com   邮件服务器的主机名

        mydomain=melvin1.com      邮件域

        myorigin=$mydomain      往外发邮件的邮件域

        inet_interfaces=172.28.5.159, 127.0.0.1   监听的网卡 (注意,两个地址之间有空格)

        mydestination=$myhostname, $mydomain    服务的对象

        home_mailbox=maildir/        邮件存放的目录

        保存以上的修改并退出。

        检查语法是否正确:  postfix check

        (3)重启服务并查看postfix

        image.png

        (4)增加邮件测试账号

        image.png

        (5)连接服务器25号端口进行简单发信测试

        [root@localhost ~]# telnet mail.melvin1.com 25

        Trying 172.28.5.159...      连接成功

        Connected to mail.melvin1.com.

        Escape character is '^]'.

        220 mail.melvin1.com ESMTP Postfix

        helo mail.melvin1.com        声明本机的主机

        250 mail.melvin1.com         

        mail from:[email protected]    声明发件人地址

        250 2.1.0 Ok

        rcpt to:[email protected]    声明收件人地址

        250 2.1.5 Ok

        data        写正文

        354 End data with <CR><LF>.<CR><LF>

        I am melvin !!!

        .     正文结束标记

        quit      退出

        image.png

    3、收信验证

    方法一: 搭建dovecot 提供收信服务

        yum install -y dovecot         安装dovecot软件

        image.png

        修改配置文件:vim /etc/dovecot/dovecot.conf

        protocols = imap pop3  lmtp

        listen = *,::

        !include conf.d/*.conf

        在最后添加以下信息:

        ssl = no

        disable_plaintext_auth = no

        mail_location = maildir:~/Maildir

    然后重启 dovecot 服务: systemctl restart dovecot

        image.png

        收信验证:

        telnet mail.melvin1.com 110

        user tom    //收件人

        pass  password    //邮箱密码

        list      //列表查看邮件

        retr  1   //   读取编号为1的邮件

        quit   //  退出邮箱

        image.png

    方法二: 使用win系统上的邮箱客户端系统进行收信验证

        打开foxmail程序,更改账户配置。

        image.png

    4、发信认证部分:

        (1)编辑认证文件:

        yum install -y cyrus-sasl*     安装cyrus-sasl 软件

        vim /etc/sasl2/smtpd.conf 

        image.png

        vim /etc/sysconfig/saslauthd

        image.pngo

        启动服务:

        systemctl start saslauthd

        systemctl enable saslauthd

        (2)编辑postfix主配置文件,添加以下信息:

        vim /etc/postfix/main.cf

        image.png

        image.png

        添加完成后,检查语法错误:  postfix check  

        重启postfix服务:  systemctl restart postfix

        (3)测试普通发信验证

        image.png

        (4)将邮件用户名和密码生成密文

        image.png

        (5)字符终端测试认证发信:

        telnet mail.melvin1.com 25

        ehlo mail.melvin1.com       //注意是ehlo  不是helo

        auth login      //认证登录

        bWVsdmlu     加密用户名

        cGFzc3cwcmQ=      加密的密码

        image.png

        发送成功,能够往外发送邮件了。

    5、配置squirrelmai收发邮件(小松鼠网页浏览邮箱)

        (1)安装httpd, mariadb, php 服务       

   yum install -y httpd

   yum install -y mariadb-server mariadb

   yum install -y php

   yum install -y php-mysql

    yum install -y php-gd

    yum install -y libjpeg*

   yum install -y php-ldap

   yum install -y php-odbc

   yum install -y php-pear

    yum install -y php-xml

    yum install -y php-xmlrpc

    yum install -y php-mhash

        (2)编辑Apache 主配置文件

        vim /etc/httpd/conf/httpd.conf   修改内容如下:

        ServerName mail.melvin1.com

        DirectoryIndex index.html   index.php

        (3)编辑PHP主配置文件

        vim /etc/php.ini     修改内容如下:

        date.timezone=PRC

        (4)启动服务并查看端口

        image.png

        (5)网页测试,浏览器输入: 172.28.5.159

        image.png        (6)、编辑mysql数据库安全配置

        image.png

        image.png

        (7)编辑php测试文件

        vim /var/www/html/index.php 

        image.png

        image.png

        (8)编辑mysql数据库

        进入数据库,建立授权账号

        mysql -u root -p  然后输入数据库密码

        image.png

        创建数据库等相关信息:

        image.png

        测试数据库工作是否正常:

        vim /var/www/html/index.php

        image.png

        浏览器输入地址,进行测试:

        image.png

        (9)下载小松鼠网页邮箱安装包:

        下载网址:http://www.squirrelmail.org/download.php

        image.png

        上传至邮件服务器:

        image.png

        (10)解压:

        tar xzvf squirrelmail-webmail-1.4.22.tar.gz    解压安装包

        tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22    将汉化包解压到安装包文件里

        cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail      复制文件到http默认目录下

        cd /var/www/html/mail/

        ls

        image.png

        (11)创建网页邮箱默认配置文件

        image.png

        (12)编辑配置文件:

        vim config.php,  修改以下内容:

        image.png

        (13)网页验证测试: 172.28.5.159/mail

        image.png

                image.png

     6、邮件群发配置

        (1)设置邮件组

        vim /etc/aliases    添加以下信息:

        student:          melvin,tom

        保存退出后,生成新的hash数据库文件:newaliases

        (2)重启postfix服务

        systemctl restart postfix

        (3)添加lucy邮件测试用户

        image.png

        (4)使用客户端用lucy用户给student组发送邮件

        image.png

        

        

        

        

        

    

        

            

猜你喜欢

转载自blog.51cto.com/5001660/2377785