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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建相关的知识,希望对你有一定的参考价值。

第一章 实验环境

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

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

第三章 实验步骤
准备工作:
[[email protected] ~]# systemctl stop firewalld //关闭防火墙
[[email protected] ~]# setenforce 0 //关闭selinux
第一部分:搭建DNS服务器
[[email protected] ~]# yum install bind -y //安装DNS服务
------------以下编辑主配置文件--------------
[[email protected] ~]# vi /etc/named.conf
修改如下内容:
技术分享图片
保存退出
[[email protected] ~]# named-checkconf //检查语法错误
注意:如有错误提示,详细解读错误提示,按提示修改配置文件;若没有任何提示,则表示没有语法错误。
------------以下编辑区域配置文件--------------------
[[email protected] ~]# vi /etc/named.rfc1912.zones
文件末尾加入以下内容:
技术分享图片
保存退出
[[email protected] ~]# named-checkconf //检查语法错误
---------------以下编辑区域数据配置文件-------------------
[[email protected] ~]# cd /var/named
[[email protected] named]# cp -p named.localhost aa.com.zone
//创建正向区域数据配置文件(注意,由于我是复制另一个样式文件,复制文件时必须加“-P”,表示复制过来的时候文件权限保持不变)
[[email protected] named]# vi aa.com.zone //编辑正向区域数据配置文件
技术分享图片
(此处注意语法格式,不要漏掉“.”)
保存退出
//创建反向区域数据配置文件
[[email protected] named]# cp -p named.localhost aa.com.local
[[email protected] named]# vi aa.com.local //编辑反向区域数据配置文件
技术分享图片
保存退出
[[email protected] named]# named-checkconf //检查语法错误
-------------启动服务,验证--------------
[[email protected] named]# systemctl start named //启动DNS服务
[[email protected] named]# systemctl enable named //设置开机启动
[[email protected] named]# vi /etc/resolv.conf //设置服务器域名
技术分享图片
保存退出
[[email protected] named]# nslookup mail.aa.com //解析验证
成功如下图:
技术分享图片

第二部分:搭建postfix并配置基本发信功能
[[email protected] ~]# postconf –a //验证是否支持cyrus dovecot功能
技术分享图片
(若postfix已安装好,则会支持这两个功能,若不支持,表示postfix未安装好;CentOS 7开始默认系统自带postfix。)
[[email protected] ~]# systemctl start postfix 启动服务
------------编辑主配置文件--------------
[[email protected] ~]# vi /etc/postfix/main.cf
编辑以下内容:
技术分享图片 //邮件服务器的主机名
技术分享图片 //邮件域
技术分享图片 //往外发邮件的邮件域
技术分享图片
//监听的网卡 (注意,两个地址之间有空格)
技术分享图片
//服务的对象
技术分享图片 //邮件存放的目录
保存退出
[[email protected] ~]# postfix check //检查语法错误(与named-check用法一样)
[[email protected] ~]# systemctl restart postfix //重启服务
[[email protected] ~]# postconf –n //查看postfix的非默认并已生效配置
-------------增加邮件测试帐号--------------
[[email protected] ~]# groupadd mailusers //创建组给测试帐号
[[email protected] ~]# useradd -g mailusers -s /sbin/nologin jack
//创建jack帐户只属于mailusers组并不能登录系统,用于测试邮件
[[email protected] ~]# passwd jack //创建jack密码
[[email protected] ~]# useradd -g mailusers -s /sbin/nologin tom
[[email protected] ~]# passwd tom
--------------连接服务器的25端口进行简单发信测试-----------
[[email protected] ~]# telnet mail.aa.com 25
//连接成功,开始写信
helo mail.aa.com //声明本机的主机
mail from:[email protected] //声明发件人地址
rcpt to:[email protected] //声明收件人地址
data //写正文
i am jack!!
. //正文结束标记
quit // 退出
如图所示:
技术分享图片
第三部分:收信验证
方法一:使用root查看tom用户是否收到测试邮件
[[email protected] ~]# cat /home/tom/Maildir/new/1515968168.Vfd00I306d0f0M475089.localhost.localdomain
成功显示:
技术分享图片

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

点开左侧“所有文件夹”,tom帐户已登录
技术分享图片
点开“收件箱”,tom已成功接收到邮件
技术分享图片
//验证成功
注意:如果收信慢,可点击右上角接收
技术分享图片

第四部分:发信认证配置

  1. 编辑认证配置文件
    ---------安装cyrus-sasl软件-------------
    [[email protected] ~]# yum install -y cyrus-sasl //注意,此处加上“”,包含安装该软件所包含插件
    ----------编辑配置文件---------------
    [[email protected] ~]# vi /etc/sasl2/smtpd.conf
    技术分享图片 //配置认证方式
    保存退出
    [[email protected] ~]# vi /etc/sysconfig/saslauthd
    技术分享图片 //本地用户认证
    保存退出
    -------------启动服务--------------
    [[email protected] ~]# systemctl start saslauthd
    [[email protected] ~]# systemctl enable saslauthd
  2. 编辑postfix主配置文件
    [[email protected] ~]# 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 //允许本地域以及认证成功的发信,拒绝认证失败的发信
    如图:
    技术分享图片
    [[email protected] ~]# postfix check //检查语法错误
    [[email protected] ~]# systemctl restart postfix //重启postfix服务
  3. 测试普通发信验证
    技术分享图片
    //注意:由于[email protected]未认证,所以拒绝访问,发送失败
  4. 将邮件用户名和密码生成密文
    [[email protected] ~]# printf "jack" | openssl base64 //帐户加密
    [[email protected] ~]# printf "123" | openssl base64 //密码加密
    技术分享图片
  5. 字符终端测试认证发信
    [[email protected] ~]# telnet mail.aa.com 25
    ehlo mail.aa.com //注意是ehlo不是helo
    auth login //认证登录
    amFjaw== //密文用户名
    MTIz //密文密码
    mail from:[email protected]
    rcpt to:[email protected]
    data
    this is test
    .
    quit
    //发送成功
  6. 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-mhash
  2. 编辑Apache主配置文件
    [[email protected] ~]# vi /etc/httpd/conf/httpd.conf
    技术分享图片 //域名
    技术分享图片
    保存退出
  3. 编辑PHP主配置文件
    [[email protected] ~]# vi /etc/php.ini
    技术分享图片
    保存退出
  4. 启动服务
    [[email protected] ~]# systemctl start httpd //启动Apache服务
    [[email protected] ~]# systemctl enable httpd //设置开机启动
    [[email protected] ~]# systemctl start mariadb //启动mysql数据库服务
    [[email protected] ~]# systemctl enable mariadb //设置开机启动
    [[email protected] ~]# netstat -anpt | grep 80 //查看httpd端口状态
    技术分享图片
    [[email protected] ~]# netstat -anpt | grep 3306 //查看mysql端口状态
    技术分享图片
  5. 网页测试 http://192.168.80.10/
    技术分享图片
  6. 编辑mysql数据库安全配置
    [[email protected] ~]# mysql_secure_installation
    技术分享图片
    //使用本地管理员root进入
    技术分享图片
    //创建数据库管理员密码,回车,输入两遍密码(123)
    技术分享图片
    //移除匿名用户
    技术分享图片
    //不允许管理员远程登录,选择否
    技术分享图片
    //删除测试数据库
    技术分享图片
    //重新载入权限配置
  7. 编辑php测试文件
    [[email protected] ~]# vi /var/www/html/index.php
    创建php默认配置文件,并添加以下内容:
    技术分享图片
    保存退出
    //网页测试 http://192.168.80.10/
    技术分享图片
    //测试成功
  8. 编辑mysql数据库
    //进入数据库,建立授权帐号
    [[email protected] ~]# mysql -u root –p
    输入数据库密码(123),回车进入,输入以下内容
    技术分享图片
    //测试数据库工作是否正常
    [[email protected] ~]# vi /var/www/html/index.php
    将其它内容删除,并输入以下内容:
    技术分享图片
    保存退出
    刷新网页
    技术分享图片
    //测试成功
    ----------------搭建小松鼠网页邮箱--------------
  9. 准备工作
    http://www.squirrelmail.org/download.php
    到该网站去下载压缩包到Linux服务器
    安装包:技术分享图片
    汉化包:技术分享图片
    技术分享图片
  10. 解压
    [[email protected] ~]# tar xzvf squirrelmail-webmail-1.4.22.tar.gz
    //解压安装包,生成一个安装文件
    [[email protected] ~]# tar xzvf all_locales-1.4.18-20090526.tar.gz -C squirrelmail-webmail-1.4.22
    //解压汉化包到安装文件里面
    技术分享图片
    [[email protected] ~]# cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail
    //复制该文件到http默认目录下
    [[email protected] ~]# cd /var/www/html/mail/
    技术分享图片
  11. 创建小松鼠网页默认配置文件
    [[email protected] mail]# mkdir attach
    [[email protected] mail]# chown -R apache:apache attach/ data/
    [[email protected] mail]# cd config
    [[email protected] config]# cp config_default.php config.php
    技术分享图片
  12. 编辑配置文件
    [[email protected] 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
    技术分享图片
    输入jack或者tom帐户密码登录
    技术分享图片
    //验证成功

第六部分:邮件群发配置

  1. 设置邮件组
    [[email protected] ~]# vi /etc/aliases
    添加以下内容:
    技术分享图片
    //将jack,tom加入到student组里面
    保存退出
    [[email protected] ~]# newaliases //生成新的hash数据库文件
  2. 重启postfix服务
    [[email protected] ~]# systemctl restart postfix /重启postfix服务
  3. 添加lucy邮件测试用户
    [[email protected] ~]# useradd -g mailusers -s /sbin/nologin lucy
    [[email protected] ~]# passwd lucy
  4. 登录outlook2013,登录lucy帐户,给student组群发邮件
    //在outlook中添加lucy帐户
    //用lucy帐户发信
    技术分享图片

//查看tom与jack帐户收信
Jack成功收信
技术分享图片
tom成功收信
技术分享图片
//验证成功

第七部分:发送邮件容量大小限制
------------编辑配置文件--------------
[[email protected] ~]# vi /etc/postfix/main.cf //编辑postfix配置文件
最后添加以下内容:
技术分享图片
//限制发送的邮件大小最大为5MB
保存退出
[[email protected] ~]# systemctl restart postfix //重启postfix服务
--------------------用outlook验证----------------------
//发送一个超过5M的文件
技术分享图片
技术分享图片
技术分享图片
技术分享图片

//发送失败,验证成功

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

以上是关于Linux运维高级篇—CentOS 7下Postfix邮件服务器搭建的主要内容,如果未能解决你的问题,请参考以下文章

详解linux运维工程师高级篇(大数据安全方向)

低价集成DevOps思想基于Centos7.X打造全方位Linux高级运维架构师运维开发+自动化运维

Linux精华篇—CentOS 7.4下源码编译构建LNMP架构

谷粒商城微服务分布式高级篇:linux下使用docker安装ElasticSearch

Linux精华篇—CentOS 7.4下源码编译构建LAMP架构

青蛙学Linux—CentOS 6.10的安装