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/>测试向student@yyf.com发信的时候jack,tom都会收到。

测试如下:

※用tom向组邮箱发送组邮件

检查收件情况:

测试结果符合要求

※以下设置邮件大小

vi /etc/postfix/main.cf //编辑配置文件

手动写入:

message_size_limit = 5120000 //单位是Byte

保存后退出!

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

通过增加大附件测试效果

※以下通过配置用户磁盘配额实现限制用户邮箱空间
邮件存放目录在home下,挂载于/dev/sda5盘上

[root@yyf ~]# umount /home
[root@yyf ~]# mount -o usrquota,grpquota /dev/sda5
[root@yyf ~]# vi /etc/fstab

最后一行加上:

开启磁盘配额:

edquota -u jack

配额硬性为20M 如图:

用户系统中检测磁盘配额是否生效:

超出配额,已生效。
用客户端软件测试:

发送大小为6.6M的邮件,已成功发送两个(已取消单个邮件不得大于5M的配置)

第三份发送失败

查看目录剩余空间,限额20M的情况下,已不足6.6M的空间,故第三份发送必然失败

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

标签:PostfixCentosLinux 发布于:2019-10-29 23:39:05