实验报告

一、 实验名称:邮件服务器的搭建和相关使用功能的配置 二、 实验环境与要求: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 "Success!!"; //如果连接成功则会显示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 //重启邮件服务器 测试向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用户做的磁盘配额生效