第一章 实验环境

  1. 硬件环境:
    Linux服务器一台,IP地址:192.168.80.10;
    WIN7客户端一台,拥有OUTLOOK2013,测试用,与服务器在同一局域网内。
  2. Linux系统环境,如下图:

    第二章 实验内容
    一:搭建DNS服务器
    二:搭建postfix服务器及普通发信
    三:普通收信
    四:认证收信
    五:squirrelmail收发邮件(搭建网页收发邮件)
    六:邮件群发功能配置
    七:邮件发送容量大小配置
    八:通过配置用户磁盘配额实现限制用户邮箱空间

第三章 实验步骤

准备工作:

[root@localhost ~]# systemctl stop firewalld //关闭防火墙

[root@localhost ~]# setenforce 0 //关闭selinux

第一部分:搭建DNS服务器

[root@localhost ~]# yum install bind -y //安装DNS服务

------------以下编辑主配置文件--------------

[root@localhost ~]# vi /etc/named.conf

修改如下内容:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件


保存退出

[root@localhost ~]# named-checkconf //检查语法错误

注意:如有错误提示,详细解读错误提示,按提示修改配置文件;若没有任何提示,则表示没有语法错误。

------------以下编辑区域配置文件--------------------

[root@localhost ~]# vi /etc/named.rfc1912.zones

文件末尾加入以下内容:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_02


保存退出

[root@localhost ~]# named-checkconf //检查语法错误

---------------以下编辑区域数据配置文件-------------------

[root@localhost ~]# cd /var/named

[root@localhost named]# cp -p named.localhost aa.com.zone

//创建正向区域数据配置文件(注意,由于我是复制另一个样式文件,复制文件时必须加“-P”,表示复制过来的时候文件权限保持不变)

[root@localhost named]# vi aa.com.zone //编辑正向区域数据配置文件

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_03


(此处注意语法格式,不要漏掉“.”)

保存退出

//创建反向区域数据配置文件

[root@localhost named]# cp -p named.localhost aa.com.local

[root@localhost named]# vi aa.com.local //编辑反向区域数据配置文件

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_04


保存退出

[root@localhost named]# named-checkconf //检查语法错误

-------------启动服务,验证--------------

[root@localhost named]# systemctl start named //启动DNS服务

[root@localhost named]# systemctl enable named //设置开机启动

[root@localhost named]# vi /etc/resolv.conf //设置服务器域名

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_05


保存退出

[root@localhost named]# nslookup mail.aa.com //解析验证

成功如下图:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_06

第二部分:搭建postfix并配置基本发信功能

[root@localhost ~]# postconf –a //验证是否支持cyrus dovecot功能

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_07


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

[root@localhost ~]# systemctl start postfix 启动服务

------------编辑主配置文件--------------

[root@localhost ~]# vi /etc/postfix/main.cf

编辑以下内容:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_08

//邮件服务器的主机名

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_09

//邮件域

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_10

//往外发邮件的邮件域

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_11


//监听的网卡 (注意,两个地址之间有空格)

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_12


//服务的对象

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_13

//邮件存放的目录

保存退出

[root@localhost ~]# postfix check //检查语法错误(与named-check用法一样)

[root@localhost ~]# systemctl restart postfix //重启服务

[root@localhost ~]# postconf –n //查看postfix的非默认并已生效配置

-------------增加邮件测试帐号--------------

[root@localhost ~]# groupadd mailusers //创建组给测试帐号

[root@localhost ~]# useradd -g mailusers -s /sbin/nologin jack

//创建jack帐户只属于mailusers组并不能登录系统,用于测试邮件

[root@localhost ~]# passwd jack //创建jack密码

[root@localhost ~]# useradd -g mailusers -s /sbin/nologin tom

[root@localhost ~]# passwd tom

--------------连接服务器的25端口进行简单发信测试-----------

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

//连接成功,开始写信

helo mail.aa.com //声明本机的主机

mail from:jack@aa.com //声明发件人地址

rcpt to:tom@aa.com //声明收件人地址

data //写正文

i am jack!!

. //正文结束标记

quit // 退出

如图所示:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_14


第三部分:收信验证

方法一:使用root查看tom用户是否收到测试邮件

[root@localhost ~]# cat /home/tom/Maildir/new/1515968168.Vfd00I306d0f0M475089.localhost.localdomain

成功显示:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_15

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

--------------安装dovecot软件----------------

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

---------------编辑配置文件--------------

[root@localhost ~]# vi /etc/dovecot/dovecot.conf

修改以下三行:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_16


centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_17


centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_18


添加以下三行:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_19


centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_20


centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_21


保存退出

----------------启动服务--------------

[root@localhost ~]# systemctl start dovecot

[root@localhost ~]# netstat -anpt | grep dovecot

//110,143端口需要监听

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_22


---------------收信验证---------------

[root@localhost ~]# telnet mail.aa.com 110

user tom //收件人登录

pass 123 //邮箱密码

list //列表查看邮件

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

quit //退出邮箱

如图所示:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_23


centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_24


//验证成功

方法三:用win7客户端outlook2013收信验证

打开

centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_25


打开左上角,“文件”

centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_26


点开账户设置

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_27


打开“新建”,

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_28


手动设置,下一步

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_29


选择POP或IMAP,下一步

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_30


配置tom信息,下一步

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_31


连接服务器成功

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_32


完成

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_33

点开左侧“所有文件夹”,tom帐户已登录

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_34


点开“收件箱”,tom已成功接收到邮件

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_35


//验证成功

注意:如果收信慢,可点击右上角接收

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_36

第四部分:发信认证配置

1. 编辑认证配置文件
---------安装cyrus-sasl软件-------------
[root@localhost ~]# yum install -y cyrus-sasl //注意,此处加上“”,包含安装该软件所包含插件
----------编辑配置文件---------------
[root@localhost ~]# vi /etc/sasl2/smtpd.conf
 //配置认证方式
保存退出
[root@localhost ~]# vi /etc/sysconfig/saslauthd
 //本地用户认证
保存退出
-------------启动服务--------------
[root@localhost ~]# systemctl start saslauthd 
[root@localhost ~]# systemctl enable saslauthd2. 编辑postfix主配置文件
[root@localhost ~]# vi /etc/postfix/main.cf
添加以下内容:
smtpd_sasl_auth_enable = yes //开启认证
smtpd_sasl_security_options = noanonymous //不允许匿名发信
mynetworks = 127.0.0.0/8 //允许的网段,如果增加本机所在网段就会出现允许不验证也能向外域发信
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination //允许本地域以及认证成功的发信,拒绝认证失败的发信
如图:

[root@localhost ~]# postfix check //检查语法错误
[root@localhost ~]# systemctl restart postfix //重启postfix服务3. 测试普通发信验证

//注意:由于abc@163.com未认证,所以拒绝访问,发送失败4. 将邮件用户名和密码生成密文
[root@localhost ~]# printf "jack" | openssl base64 //帐户加密
[root@localhost ~]# printf "123" | openssl base64 //密码加密5. 字符终端测试认证发信
[root@localhost ~]# telnet mail.aa.com 25
ehlo mail.aa.com //注意是ehlo不是helo
auth login //认证登录
amFjaw== //密文用户名
MTIz //密文密码
mail from:jack@aa.com
rcpt to:aa@163.com
data
this is test

  1. .
    quit
    //发送成功
  2. win7客户端用outlook2013测试认证发信
    更改帐户配置

    点开“其它设置”

    发送服务器,打√,使用与接收邮件服务器相同的设置

    下一步,成功

    新建电子邮件

    写信

    //查看jack是否接收到邮件
    Outlook添加jack帐户,与添加tom方法一样,其它设置中记得打√

    //验证成功

第五部分:配置squirrelmail收发邮件(小松鼠网页浏览邮箱)

---------------搭建LAMP环境-------------
1. 安装httpd,mariadb,php服务
yum install -y \
httpd \ //Apache服务
mariadb-server mariadb \ //Mysql服务
php \ //PHP服务
php-mysql \ //PHP关联数据库
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash2. 编辑Apache主配置文件
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
 //域名

保存退出3. 编辑PHP主配置文件
[root@localhost ~]# vi /etc/php.ini 

保存退出4. 启动服务
[root@localhost ~]# systemctl start httpd //启动Apache服务
[root@localhost ~]# systemctl enable httpd //设置开机启动
[root@localhost ~]# systemctl start mariadb //启动mysql数据库服务
[root@localhost ~]# systemctl enable mariadb //设置开机启动
[root@localhost ~]# netstat -anpt | grep 80 //查看httpd端口状态

[root@localhost ~]# netstat -anpt | grep 3306 //查看mysql端口状态5. 网页测试 http://192.168.80.10/
6. 编辑mysql数据库安全配置
[root@localhost ~]# mysql_secure_installation

//使用本地管理员root进入

//创建数据库管理员密码,回车,输入两遍密码(123)

//移除匿名用户

//不允许管理员远程登录,选择否

//删除测试数据库

//重新载入权限配置7. 编辑php测试文件
[root@localhost ~]# vi /var/www/html/index.php
创建php默认配置文件,并添加以下内容:

保存退出
//网页测试 http://192.168.80.10/
//测试成功8. 编辑mysql数据库
//进入数据库,建立授权帐号
[root@localhost ~]# mysql -u root –p
输入数据库密码(123),回车进入,输入以下内容

//测试数据库工作是否正常
[root@localhost ~]# vi /var/www/html/index.php
将其它内容删除,并输入以下内容:

保存退出
刷新网页

//测试成功
----------------搭建小松鼠网页邮箱--------------9. 准备工作
http://www.squirrelmail.org/download.php到该网站去下载压缩包到Linux服务器
安装包:
汉化包:10. 解压
[root@localhost ~]# tar xzvf squirrelmail-webmail-1.4.22.tar.gz
//解压安装包,生成一个安装文件
[root@localhost ~]# tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22
//解压汉化包到安装文件里面

[root@localhost ~]# cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail
//复制该文件到http默认目录下
[root@localhost ~]# cd /var/www/html/mail/11. 创建小松鼠网页默认配置文件
[root@localhost mail]# mkdir attach
[root@localhost mail]# chown -R apache:apache attach/ data/
[root@localhost mail]# cd config
[root@localhost config]# cp config_default.php config.php12. 编辑配置文件
[root@localhost config]# vi config.php
修改以下内容:
$domain = 'aa.com'; //域名
$imap_server_type = 'dovecot'; //服务类型
$data_dir = '/var/www/html/mail/data'; //数据目录
$attachment_dir = '/var/www/html/mail/attach/'; //附件目录
$squirrelmail_default_language = 'zh_CN'; //默认语言环境
$default_charset = 'zh_CN.UTF-8'; //默认字符编码
保存退出

  1. //注意特殊字符,“$”与“;”不要漏掉
  2. 网页验证测试 http://192.168.80.10/mail输入jack或者tom帐户密码登录

    //验证成功

第六部分:邮件群发配置

  1. 设置邮件组
    [root@localhost ~]# vi /etc/aliases
    添加以下内容:

    //将jack,tom加入到student组里面
    保存退出
    [root@localhost ~]# newaliases //生成新的hash数据库文件
  2. 重启postfix服务
    [root@localhost ~]# systemctl restart postfix /重启postfix服务
  3. 添加lucy邮件测试用户
    [root@localhost ~]# useradd -g mailusers -s /sbin/nologin lucy
    [root@localhost ~]# passwd lucy
  4. 登录outlook2013,登录lucy帐户,给student组群发邮件
    //在outlook中添加lucy帐户
    //用lucy帐户发信

//查看tom与jack帐户收信

Jack成功收信

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_37


tom成功收信

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_38


//验证成功第七部分:发送邮件容量大小限制

------------编辑配置文件--------------

[root@localhost ~]# vi /etc/postfix/main.cf //编辑postfix配置文件

最后添加以下内容:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_39


//限制发送的邮件大小最大为5MB

保存退出

[root@localhost ~]# systemctl restart postfix //重启postfix服务

--------------------用outlook验证----------------------

//发送一个超过5M的文件

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_40


centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_41


centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_42


centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_43

//发送失败,验证成功

第八部分:通过配置用户磁盘配额实现限制用户邮箱空间

-----------开启磁盘配额------------

[root@localhost ~]# df –hT //查看邮件目录挂载信息

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_44


[root@localhost ~]# vi /etc/fstab

//修改配置文件,实现开机自动挂载

修改以下内容:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_php_45


保存退出

[root@localhost ~]# mount //查看sda2磁盘配额开启状态

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_46


[root@localhost ~]# umount /home/ //卸载home目录

[root@localhost ~]# mount –a //重新挂载

[root@localhost ~]# mount //查看挂载状态

centos 7构建邮件服务器 centos搭建邮件服务器的方法_centos 7构建邮件服务器_47


//挂载成功

[root@localhost ~]# quotaon -p /home/

//确认home目录磁盘配额已开启

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_48


//由于sda2分区格式为xfs,默认自动开启磁盘配额功能

--------------为jack用户配置磁盘配额限制---------------

[root@localhost ~]# edquota -u jack

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_49


//配置jack用户邮箱大小为最大10M

-------------测试,验证--------------

//将邮件发送大小限制去掉

[root@localhost ~]# vi /etc/postfix/main.cf

删除以下内容:

centos 7构建邮件服务器 centos搭建邮件服务器的方法_数据库_50


保存退出

[root@localhost ~]# systemctl restart postfix //重启服务

//用outlook发送邮件给jack

centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_51


centos 7构建邮件服务器 centos搭建邮件服务器的方法_配置文件_52


//发出第三封邮件之后,邮箱提示,硬盘配额溢出

[root@localhost ~]# cd /home/jack/Maildir/cur/

//进入jack用户存放邮件的目录查看接收邮件的大小

centos 7构建邮件服务器 centos搭建邮件服务器的方法_运维_53


//系统默认接收到两封邮件后容量已达7.1M,无法再接收第三封3M的邮件,磁盘配额生效,测试成功!!

转载于:https://blog.51cto.com/12227558/2074095