Linux系统,Centos7版本下搭建postfix服务器及其相关配置应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统,Centos7版本下搭建postfix服务器及其相关配置应用相关的知识,希望对你有一定的参考价值。

实验报告

一、 实验名称:邮件服务器的搭建和相关使用功能的配置
二、 实验环境与要求:Linux系统 centos7版本
搭建邮件服务器实现发信收信基本功能
实现发信认证功能
搭建好LAMP环境,配置squirrelmail收发邮件
三、 实验内容:
1、 检查版信息,postfix安装情况与支持的功能,启动运行;
2、 搭建与之相关的DNS服务器,配置DNS解析功能;
3、 配置postfix基本发信功能,进行测试;
4、 安装dovecot提供收信服务,进行测试;
5、 客户端利用邮箱软件配置测试服务器功能;
6、 进行发信认证配置;
7、 搭建LAMP环境,配置squirrelmail收发邮件

实验步骤:

第一步:
cat /etc/redhat-release //检查版本信息
技术分享图片

※安装postfix(版本自带) centos7版本即使用最小化安装仍自带此功能

postconf -a // 验证是否支持cyrus dovecot功能
技术分享图片

启动服务器systemctl start postfix
netstat -anpt | grep 25 //查看监听端口号
技术分享图片

第二步:
※搭建与之相关的DNS服务器,配置DNS解析功能
yum install bind //安装服务器程序

vi /etc/named.conf //编辑主配置文件
技术分享图片

技术分享图片
※以下进行区域文件配置:
cd /var/named/ 进入文件目录下
复制配置文件的模板进行修改:
cp -p named.localhost yyf.com.zone
cp -p named.localhost yyf.com.local

vi /var/named/yyf.com.zone 编辑正向区文件

如图:
技术分享图片

vi /var/named/yyf.com.local 编辑反向区文件
如图:

技术分享图片
以上基本配置编辑完成
systemctl start named //启动服务器
netstat -anpu | grep name //检测到UDP 53端口在监听 服务器正常工作。
进行DNS验证
vi /etc/resolv.conf
nameserver 192.168.80.18 //指向DNS服务器地址

rpm -ivh /mnt/Packages/bind-utils-9.9.4-50.el7.x86_64.rpm //安装检测命令nslookup

解析如图:
~nslookup mail.yyf.com //正向解析
技术分享图片

~nslookup 192.168.80.18 //反向解析
技术分享图片

解析成功!

第三步:
-----配置postfix基本发信功能
vi /etc/postfix/main.cf 编辑配置文件 修改项如下:
myhostname = mail.aa.com //本机系统主机名
mydomain = aa.com //主机域名
myorigin = $mydomain //根源、起点
inet_interfaces = 192.168.80.18, 127.0.0.1 //接口地址
inet_protocols = ipv4
mydestination = $myhostname, $mydomain //预定、指定范围
home_mailbox = Maildir/ //信箱家目录

完成后保存退出,用postfix check命令检查是否存在语法错误:

service postfix restart //重启邮件服务器

※要测试发信功能是否生效,我们需要添加用户并加入同一组管理:
-----增加邮件测试账号
groupadd mailusers //增加组账号
useradd -g mailusers -s /sbin/nologin jack //建用户jack 加入mailusers组且不可登陆系统
passwd jack(密码随便设置123)
useradd -g mailusers -s /sbin/nologin tom //建用户tom 加入mailusers组且不可登陆系统
passwd tom(密码随便设置123)

测试准备:安装yum install telnet
开始测试:连接服务器的25端口进行简单发信测试
telnet mail.yyf.com 25
依次输入以下内容:
如图:

技术分享图片
由于目前未安装收件服务,所以只能通过root超级管理员来查看邮件是否发送成功

使用root查看tom用户是否收到测试邮件:
ls -l /home/tom/Maildir/new/ 在此目录下应该会有刚才发的邮件
技术分享图片
可用cat命令查看内容
邮件发送功能测试成功!

第四步:
※安装dovecot提供收信服务

yum install dovecot //安装系统程序

vi /etc/dovecot/dovecot.conf //配置程序文件
※修改项如下:
protocols = imap pop3 lmtp
listen = //监听 所有端口
!include conf.d/10-auth.conf //此处* 必须替换
※手动增加以下内容:
ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir

※以上基本配置完成
service dovecot start //启动服务
netstat -anpt | grep dovecot // 110 143端口需要监听
如图:
技术分享图片
服务启动成功,正常工作

※现在可以用户进行测试收信了(以前是用root,现在可以用账户)
测试开始:telnet mail.yyf.com 110
如图:
技术分享图片
我们来读取第一份邮件看看
显示如图:
技术分享图片

用quit 可以退出
测试结构说明收件系统工作正常

鉴于目前的收信发信方式太不友好,安装MUA软件连接服务器收发邮件

※客户端装测设软件:
技术分享图片
用此软件进行测试,看服务器是否正常工作
基本设置如图所示:
技术分享图片
技术分享图片
登陆后收件:
技术分享图片
邮件接受正常
服务器工作正常

第五步:
以下进行发信认证配置
yum install cyrus-sasl* 安装相关软件包

vi /etc/sasl2/smtpd.conf 开始编辑配置文件,内容如下:
pwcheck_method: saslauthd
mech_list: plain login
log_level:3 //设置日志级别为3

vi /etc/sysconfig/saslauthd //编辑认证系统配置文件
MECH=shadow

service saslauthd start //开启认证功能服务器

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 //允许本地域以及认证成功的发信,拒绝认证失败的发信

postfix check //检查语法
service postfix restart //重启服务器

※测试普通发信
telnet mail.yyf.com 25
如图:
技术分享图片
向未认证区域发件失败说明认证系统是生效的
quit 退出

※下面用系统账户进行发信测试
将用户名与密码生成密文加密:
printf "jack" | openssl base64 //生成密文
amFjaw== (密文)
printf "123" | openssl base64 //生成密文
MTIz (密文)

※开始用字符终端测试认证发信:
telnet mail.aa.com 25
如图:
技术分享图片
技术分享图片

若在真机用邮箱软件测试,只需做如下操作:
技术分享图片
将高级设置中的选项勾选即可验证

第六步:
----以下是配置squirrelmail收发邮件内容
需要搭建好LAMP环境
--------安装LAMP---------
yum install -y \
httpd \
mariadb-server mariadb \
php \
php-mysql \
php-gd \
libjpeg* \
php-ldap \
php-odbc \
php-pear \
php-xml \
php-xmlrpc \
php-mhash 注: 安装相关软件包,其中\表示强制换行操作

vi /etc/httpd/conf/httpd.conf //编辑配置文件
需要修改的内容:
ServerName www.aa.com ///服务器名称
DirectoryIndex index.html index.php ///支持静态与动态网页

vi /etc/php.ini //编辑此配置文件
date.timezone = PRC //设置时区

提醒:系统中的防火墙与安全Linux要确认关闭,否则影响实验
systemctl stop firewalld.service
setenforce 0

systemctl start httpd.service 网页系统启动
systemctl start mariadb.service 数据库系统启动

netstat -anpt | grep 80
netstat -anpt | grep 3306 //端口在监听,说明服务器启动正常

技术分享图片
技术分享图片
※mysql_secure_installation 进行安全校验,也可不设置

接下来
vi /var/www/html/index.php 编辑数据库文件
在里面写入脚本如下:
<?php
phpinfo();
?>

用真机浏览器测试:
http://192.168.80.18 将出现如下页面,说明设置成功

技术分享图片

※进入数据库,建立授权账号
mysql -u root -p
进数据库时设置一下密码:123456
CREATE DATABASE bcd; //建立数据库名字bcd
GRANT all ON bcd.* TO ‘mail‘@‘%‘ IDENTIFIED BY ‘123456‘;
flush privileges; //刷新一下权限

下面测试数据库工作是否正常
vi /var/www/html/index.php //编辑配置文件,该文件为数据库工作目录
删除以前内容,写入如下内容:
<?php
$link=mysql_connect(‘192.168.80.18‘,‘mail‘,‘123456‘); //说明地址与密码
if($link) echo "<h1>Success!!</h1>"; //如果连接成功则会显示Success!!
else echo "Fail!!"; //如果连接失败则显示Fail!!
mysql_close();
?>
保存退出
测试:
技术分享图片
连接成功!

到下面网址下载小松鼠包与汉化语言包
http://www.squirrelmail.org/download.php
1、squirrelmail-webmail-1.4.22.tar.gz
2、all_locales-1.4.18-20090526.tar.gz

将安装包上传到Linux系统中进行解压
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 //-C表示将语言包解压到后续包中

cp -rv squirrelmail-webmail-1.4.22 /var/www/html/mail //将解压完成的包拷贝到/var/www/html/mail(网页工作目录)

cd /var/www/html/mail // cd到php工作目录下
mkdir attach //建立附件文件目录
chown -R apache:apache attach/ data/ //修改权限

cd config //到squirrelmail配置文件下
cp config_default.php config.php // 拷贝模板
vi config.php //开始编辑
修改内容如下:
$domain = ‘aa.com‘; //域名
$imap_server_type = ‘dovecot‘; //imap服务类型为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‘; //中文字符编码

用真机浏览器登陆测试:
http://192.168.80.181/mail
出现登录界面,如图:
技术分享图片
输入账户登陆:
显示如下:

技术分享图片
成功进入并且可正常操作使用,服务器工作正常。

第七步:
※以下设置邮件组
vi /etc/aliases 编辑配置文件
增加组名:student:jack,tom
newaliases //生成hash数据库文件
systemctl restart postfix //重启邮件服务器br/>测试向[email protected]发信的时候jack,tom都会收到。
测试如下:
※用tom向组邮箱发送组邮件
技术分享图片
检查收件情况:

技术分享图片
技术分享图片
测试结果符合要求

※以下设置邮件大小
vi /etc/postfix/main.cf //编辑配置文件
手动写入:
message_size_limit = 5120000 //单位是Byte
保存后退出!
systemctl restart postfix //重启邮件服务器
通过增加大附件测试效果
技术分享图片

技术分享图片

※以下通过配置用户磁盘配额实现限制用户邮箱空间
邮件存放目录在home下,挂载于/dev/sda5盘上
技术分享图片
[[email protected] ~]# umount /home
[[email protected] ~]# mount -o usrquota,grpquota /dev/sda5
[[email protected] ~]# vi /etc/fstab
最后一行加上:
技术分享图片
技术分享图片
开启磁盘配额:
edquota -u jack
配额硬性为20M 如图:
技术分享图片
用户系统中检测磁盘配额是否生效:
技术分享图片
超出配额,已生效。

用客户端软件测试:
发送大小为6.6M的邮件,已成功发送两个(已取消单个邮件不得大于5M的配置)
技术分享图片
第三份发送失败
技术分享图片
查看目录剩余空间,限额20M的情况下,已不足6.6M的空间,故第三份发送必然失败
技术分享图片

所以对jack用户做的磁盘配额生效


以上是关于Linux系统,Centos7版本下搭建postfix服务器及其相关配置应用的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统:centos7下搭建Rocketmq4.3中间件,配置监控台

Linux系统:centos7下搭建ZooKeeper3.4中间件,常用命令总结

Linux(Centos7)下搭建svn服务器本文为记录,防止丢失!

lamp :在Linux 下搭建apacheMysqlphp

centos7.2下搭建CDH5.8.3

STF平台探索