Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

Stella981
• 阅读 1167

第一章 实验环境

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

  2. Linux系统环境,如下图:
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    第二章 实验内容
    一:搭建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
修改如下内容:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
[root@localhost ~]# named-checkconf //检查语法错误
注意:如有错误提示,详细解读错误提示,按提示修改配置文件;若没有任何提示,则表示没有语法错误。
------------以下编辑区域配置文件--------------------
[root@localhost ~]# vi /etc/named.rfc1912.zones
文件末尾加入以下内容:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
[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 //编辑正向区域数据配置文件
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
(此处注意语法格式,不要漏掉“.”)
保存退出
//创建反向区域数据配置文件
[root@localhost named]# cp -p named.localhost aa.com.local
[root@localhost named]# vi aa.com.local //编辑反向区域数据配置文件
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
[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 //设置服务器域名
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
[root@localhost named]# nslookup mail.aa.com //解析验证
成功如下图:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

第二部分:搭建postfix并配置基本发信功能
[root@localhost ~]# postconf –a //验证是否支持cyrus dovecot功能
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
(若postfix已安装好,则会支持这两个功能,若不支持,表示postfix未安装好;CentOS 7开始默认系统自带postfix。)
[root@localhost ~]# systemctl start postfix 启动服务
------------编辑主配置文件--------------
[root@localhost ~]# vi /etc/postfix/main.cf
编辑以下内容:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //邮件服务器的主机名
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //邮件域
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //往外发邮件的邮件域
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//监听的网卡 (注意,两个地址之间有空格)
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//服务的对象
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //邮件存放的目录
保存退出
[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 // 退出
如图所示:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
第三部分:收信验证
方法一:使用root查看tom用户是否收到测试邮件
[root@localhost ~]# cat /home/tom/Maildir/new/1515968168.Vfd00I306d0f0M475089.localhost.localdomain
成功显示:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

方法二:搭建dovecot提供收信服务
--------------安装dovecot软件----------------
[root@localhost ~]# yum install -y dovecot
---------------编辑配置文件--------------
[root@localhost ~]# vi /etc/dovecot/dovecot.conf
修改以下三行:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
添加以下三行:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
----------------启动服务--------------
[root@localhost ~]# systemctl start dovecot
[root@localhost ~]# netstat -anpt | grep dovecot
//110,143端口需要监听
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
---------------收信验证---------------
[root@localhost ~]# telnet mail.aa.com 110
user tom //收件人登录
pass 123 //邮箱密码
list //列表查看邮件
retr 1 //读取编号为1的邮件
quit //退出邮箱
如图所示:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//验证成功
方法三:用win7客户端outlook2013收信验证
打开
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
打开左上角,“文件”
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
点开账户设置
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
打开“新建”,
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
手动设置,下一步
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
选择POP或IMAP,下一步
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
配置tom信息,下一步
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
连接服务器成功
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
完成
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

点开左侧“所有文件夹”,tom帐户已登录
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
点开“收件箱”,tom已成功接收到邮件
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//验证成功
注意:如果收信慢,可点击右上角接收
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

第四部分:发信认证配置

  1. 编辑认证配置文件
    ---------安装cyrus-sasl软件-------------
    [root@localhost ~]# yum install -y cyrus-sasl _//注意,此处加上“_”,包含安装该软件所包含插件
    ----------编辑配置文件---------------
    [root@localhost ~]# vi /etc/sasl2/smtpd.conf
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //配置认证方式
    保存退出
    [root@localhost ~]# vi /etc/sysconfig/saslauthd
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //本地用户认证
    保存退出
    -------------启动服务--------------
    [root@localhost ~]# systemctl start saslauthd
    [root@localhost ~]# systemctl enable saslauthd

  2. 编辑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 //允许本地域以及认证成功的发信,拒绝认证失败的发信
    如图:
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    [root@localhost ~]# postfix check //检查语法错误
    [root@localhost ~]# systemctl restart postfix //重启postfix服务

  3. 测试普通发信验证
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //注意:由于abc@163.com未认证,所以拒绝访问,发送失败

  4. 将邮件用户名和密码生成密文
    [root@localhost ~]# printf "jack" | openssl base64 //帐户加密
    [root@localhost ~]# printf "123" | openssl base64 //密码加密
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

  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
    .
    quit
    //发送成功

  6. win7客户端用outlook2013测试认证发信
    更改帐户配置
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    点开“其它设置”
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    发送服务器,打√,使用与接收邮件服务器相同的设置
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    下一步,成功
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    新建电子邮件
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    写信
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //查看jack是否接收到邮件
    Outlook添加jack帐户,与添加tom方法一样,其它设置中记得打√
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //验证成功

第五部分:配置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-mhash

  2. 编辑Apache主配置文件
    [root@localhost ~]# vi /etc/httpd/conf/httpd.conf
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建 //域名
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    保存退出

  3. 编辑PHP主配置文件
    [root@localhost ~]# vi /etc/php.ini
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    保存退出

  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端口状态
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    [root@localhost ~]# netstat -anpt | grep 3306 //查看mysql端口状态
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

  5. 网页测试 http://192.168.80.10/
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

  6. 编辑mysql数据库安全配置
    [root@localhost ~]# mysql_secure_installation
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //使用本地管理员root进入
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //创建数据库管理员密码,回车,输入两遍密码(123)
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //移除匿名用户
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //不允许管理员远程登录,选择否
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //删除测试数据库
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //重新载入权限配置

  7. 编辑php测试文件
    [root@localhost ~]# vi /var/www/html/index.php
    创建php默认配置文件,并添加以下内容:
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    保存退出
    //网页测试 http://192.168.80.10/
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //测试成功

  8. 编辑mysql数据库
    //进入数据库,建立授权帐号
    [root@localhost ~]# mysql -u root –p
    输入数据库密码(123),回车进入,输入以下内容
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //测试数据库工作是否正常
    [root@localhost ~]# vi /var/www/html/index.php
    将其它内容删除,并输入以下内容:
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    保存退出
    刷新网页
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //测试成功
    ----------------搭建小松鼠网页邮箱--------------

  9. 准备工作
    http://www.squirrelmail.org/download.php
    到该网站去下载压缩包到Linux服务器
    安装包:Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    汉化包:Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

  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
    //解压汉化包到安装文件里面
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    [root@localhost ~]# cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail
    //复制该文件到http默认目录下
    [root@localhost ~]# cd /var/www/html/mail/
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

  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.php
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

  12. 编辑配置文件
    [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'; //默认字符编码
    保存退出
    //注意特殊字符,“$”与“;”不要漏掉

  13. 网页验证测试 http://192.168.80.10/mail
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    输入jack或者tom帐户密码登录
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //验证成功

第六部分:邮件群发配置

  1. 设置邮件组
    [root@localhost ~]# vi /etc/aliases
    添加以下内容:
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
    //将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帐户发信
    Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

//查看tom与jack帐户收信
Jack成功收信
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
tom成功收信
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//验证成功

第七部分:发送邮件容量大小限制
------------编辑配置文件--------------
[root@localhost ~]# vi /etc/postfix/main.cf //编辑postfix配置文件
最后添加以下内容:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//限制发送的邮件大小最大为5MB
保存退出
[root@localhost ~]# systemctl restart postfix //重启postfix服务
--------------------用outlook验证----------------------
//发送一个超过5M的文件
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建

//发送失败,验证成功

第八部分:通过配置用户磁盘配额实现限制用户邮箱空间
-----------开启磁盘配额------------
[root@localhost ~]# df –hT //查看邮件目录挂载信息
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
[root@localhost ~]# vi /etc/fstab
//修改配置文件,实现开机自动挂载
修改以下内容:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
[root@localhost ~]# mount //查看sda2磁盘配额开启状态
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
[root@localhost ~]# umount /home/ //卸载home目录
[root@localhost ~]# mount –a //重新挂载
[root@localhost ~]# mount //查看挂载状态
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//挂载成功
[root@localhost ~]# quotaon -p /home/
//确认home目录磁盘配额已开启
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//由于sda2分区格式为xfs,默认自动开启磁盘配额功能
--------------为jack用户配置磁盘配额限制---------------
[root@localhost ~]# edquota -u jack
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//配置jack用户邮箱大小为最大10M
-------------测试,验证--------------
//将邮件发送大小限制去掉
[root@localhost ~]# vi /etc/postfix/main.cf
删除以下内容:
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
保存退出
[root@localhost ~]# systemctl restart postfix //重启服务
//用outlook发送邮件给jack
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//发出第三封邮件之后,邮箱提示,硬盘配额溢出
[root@localhost ~]# cd /home/jack/Maildir/cur/
//进入jack用户存放邮件的目录查看接收邮件的大小
Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建
//系统默认接收到两封邮件后容量已达7.1M,无法再接收第三封3M的邮件,磁盘配额生效,测试成功!!

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
2年前
swap空间的增减方法
(1)增大swap空间去激活swap交换区:swapoff v /dev/vg00/lvswap扩展交换lv:lvextend L 10G /dev/vg00/lvswap重新生成swap交换区:mkswap /dev/vg00/lvswap激活新生成的交换区:swapon v /dev/vg00/lvswap
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
Java获得今日零时零分零秒的时间(Date型)
publicDatezeroTime()throwsParseException{    DatetimenewDate();    SimpleDateFormatsimpnewSimpleDateFormat("yyyyMMdd00:00:00");    SimpleDateFormatsimp2newS
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
2个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这