Linux邮件服务器搭建实验

前言

本文重点在于后面的搭建过程,前面会简单介绍邮件服务原理与工作流程,如果有什么错误或遗漏的地方,欢迎大家指正批评,谢谢。

基本理论说明

电子邮件服务器是处理邮件交换的软硬件设施的总称,包括电子邮件程序、电子邮箱等。它是为用户提供基于 E-mail 服务的电子邮件系统,人们通过访问服务器实现邮件的交换。同时邮件具有法律效益,可以提供证明,即时通讯软件则无法做到这一点,有些公司为了信息安全,会在内部搭建邮件服务。

常见的邮件服务器

Sendmail、Qmail、Postfix、Zmailer、Exchange(MS)、Notes/Domino(IBM)
、Coremail、U-Mail、盈世。

邮件服务器组成

电子邮件系统有很多部分组成,下面简单介绍其中四种。

MUA(邮件用户代理)

指的就是如Foxmail,outlook,等邮件客户端程序。

MTA (邮件传输代理)

MTA(Mail Transfer Agent),MTA就是“邮件传输代理”的意思,MTA是用在邮件主机上的软件,它也是主要的邮件服务器。MTA主要功能如下,接收外部主机寄来的信件,帮用户发(寄出)信,MTA会将信件送给目的地的MTA而不是目的地的MUA。常见MTA软件Postfix、Coremail、Sendmail等。
MDA(邮件分发代理)

MDA(Mail Delivery Agent),“邮件分发代理”主要的功能就是将MTA接收的信件依照信件的流向(送到哪里)将该信件放置到本机账户下的邮件文件中(收件箱),或者再经 由MTA将信件送到下个MTA。如果信件的流向是到本机,这个邮件代理的功能就不只是将由MTA传来的邮件放置到每个用户的收件箱,它还可以具有邮件过滤 (filtering)与其他相关功能,常见MDA软件:maildrop
MRA(邮件获取代理)

MRA(Mail Retrieval Agent)替用户去获取自己的邮件 ,“邮件获取代理”提求了使MUA 可以远程获取电子邮件的效劳,如qpoper、cyrus-imap、courier-imap、dovecot 等,为了使得邮件存取格式兼容,正在MRA 顺序中经常都提求了邮件投递代理顺序MDA。MRA 运用的协议有POP3 和IMAP4 等。POP3 可以运用户从效劳器下载邮件并离线阅读。IMAP4 运用于那些没有外地信箱的用户,具有远程操作信箱的才干。IMAP4 容许多个客户机器同时访问一个信箱。

所用协议

发送协议 MUA 》 MTA

SMTP:简单邮件传输协议,TCP 25 端口,加密时使用 TCP 465 端口

接收协议 MUA 》 MRA

POP3:第三版邮局协议,TCP 110 端口,加密时使用 TCP 995 端口
IMAP4:第四版互联网消息访问协议,TCP 143端口,加密时使用 TCP 993 端口

实验步骤

实验目的:掌握基础邮件服务架构搭建。

实验准备:C6标准试验机一台(防火墙与selinux已关闭)

实验规划:192.168.10.14 (邮件服务器)

​ 192.168.10.15(访问测试)

实验相关安装包:邮件服务

ps:标准虚拟机安装见网络阶段Centos6安装指南

一、配置DNS服务

yum install -y bind

编辑主配置文件

vim /etc/named.conf

修改为接受所有地址访问

编辑区域文件

vim /etc/named.rfc1912.zones

配置正向解析与反向解析区域

zone "extmail.org." IN {type master;file "extmail.zheng";allow-update { none; };
};zone "10.168.192.in-addr.arpa" IN {type master;file "extmail.fan";allow-update { none; };
};

创建解析文件

cd /var/named/
cp -a named.localhost extmail.zheng
cp -a named.loopback extmail.fan

正向文件配置

vim extmail.zheng
$TTL 1D
@       IN SOA  extmail.org. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      dns.extmail.org.MX  3   mail.extmail.org.
mail    A       192.168.10.14
dns     A       192.168.10.14

反向文件解析

vim extmail.fan
$TTL 1D
@       IN SOA  extmail.org. rname.invalid. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumNS      dns.extmail.org.MX   3  mail.extmail.org.
14      PTR     dns.extmail.org.
14      PTR     mail.extmail.org.

启动服务,设置为开机自启,测试DNS是否配置成功。

service named start
chkconfig named on
echo "DNS1=192.168.10.14" >> /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
nslookup

测试通过,正向解析与反向解析均设置成功。

二、配置MySQL服务

yum install mysql mysql-server mailx httpd -y

启动服务并设为开机自启

service mysqld start
chkconfig mysqld on

设置初始化密码

mysqladmin -uroot password 123

连接数据库测试

mysql -uroot -p123

数据库设置完毕。

三、配置Apache服务

yum -y install httpd lrzsz

创建邮件服务网页文件目录

mkdir /var/www/extsuite

准备extmail安装镜像(上方有下载链接),创建挂载目录,挂载安装镜像。

mkdir /mnt/iso
mount -o loop EXTMAIL.iso /mnt/iso/

将镜像内所有文件拷贝至root目录

cd
cp -a /mnt/iso/* .

将文件解压至对应目录

tar -zxf extmail-1.2.tar.gz -C /var/www/extsuite/
tar -zxf extman-1.1.tar.gz -C /var/www/extsuite/

简化目录名称,方便访问。

cd /var/www/extsuite/
mv extmail-1.2 extmail
mv extman-1.1 extman

进行管理员配置,生成加密密码。

grub-md5-crypt

将管理员密码替换为生成的加密密码。

vim init.sql

将两个数据库文件还原至数据库

mysql -uroot -p < extmail.sql
mysql -uroot -p < init.sql

四、配置POSTFIX服务

拷贝模版文件至指定位置

cp mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf /etc/postfix/

配置指定用户

useradd -u 600 vmail
postconf -e inet_interfaces=all
postconf -e virtual_mailbox_base=/home/vmail
postconf -e virtual_uid_maps=static:600
postconf -e virtual_gid_maps=static:600

配置模版文件,启动服务。

postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf
postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf
postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
service postfix restart

进行邮件发送测试

echo "hello world" | mail -s test support@extmail.org

进入指定文件查看

cd /home/vmail/
cat extmail.org/postmaster/Maildir/new/*localdomain

成功接收到邮件

五、配置MRA服务

下载dovecot与mysql 结合使用工具

yum install dovecot dovecot-mysql -y

编辑dovecot磁盘路径相关配置

cd /etc/dovecot/conf.d/
vim 10-mail.conf
#修改24行
mail_location = maildir:/home/vmail/%d/%n/Maildir
#修改167行,指定运行用户uid
first_valid_uid = 600

保存退出

编辑dovecot用户验证相关配置信息

vim 10-auth.conf

取消120行注释,使其通过数据库进行认证。

保存退出,返回上级目录,复制dovecot与MySQL结合配置文件至当前目录。

cp /usr/share/doc/dovecot-2.0.9/example-config/dovecot-sql.conf.ext  .

编辑Dovecot与数据库连接相关配置

vim dovecot-sql.conf.ext:
#修改29行
driver = mysql
#修改63行
connect = host=localhost dbname=extmail user=extmail password=extmail
#取消73行注释
defaulf_pass_scheme = MD5
#修改102行
password_query = \SELECT username, domain, password \FROM mailbox WHERE username = '%u' AND domain = '%d'
#修改120行
user_query = SELECT maildir, 600 AS uid, 600 AS gid FROM mailbox WHERE username = '%u'

保存退出,重启服务开始测试。

/etc/init.d/dovecot start

下载测试软件并进行连接测试

yum -y install telnet
telnet localhost 110
user postmaster@extmail.org
pass extmail
list
retr 1

成功连接。

六、配置wed界面

编辑Apache主配置文件

vim /etc/httpd/conf/httpd.conf

配置虚拟主机,取消990行注释,在文件末尾添加以下信息。

<VirtualHost *:80>ServerName mail.extmail.orgDocumentRoot /var/www/extsuite/extmail/html/ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgiAlias /extmail /var/www/extsuite/extmail/htmlScriptAlias /extman/cgi /var/www/extsuite/extman/cgiAlias /extman /var/www/extsuite/extman/htmlSuexecUserGroup vmail vmail
</VirtualHost>

编辑设置邮件wed页面文件

cd /var/www/extsuite/extmail
chown vmail.vmail cgi/ -R
cp webmail.cf.default webmail.cf

编辑主配置文件,完成基本设置。

vim wedmail.cf
#修改127行:(当前邮件目录)
SYS_MAILDIR_BASE = /home/vmail
#修改136行:(当前数据库密码存储方式)
SYS_CRYPT_TYPE = plain
#修改139、140行:(数据库名与密码)
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail

编辑设置邮件wed页面管理员配置文件

cd /var/www/extsuite/extman
chown vmail.vmail cgi/ -R
cp webman.cf.default webman.cf

编辑邮件wed页面管理员配置文件,完成基本设置。

vim webman.cf
#修改12行:(当前邮件目录)
SYS_MAILDIR_BASE = /home/vmail
#修改18行:(缓存目录)
SYS_SESS_DIR = /tmp/
#修改27行:(随机认证码长度)
SYS_CAPTCHA_LEN = 4
#修改124行:(当前数据库密码存储方式)
SYS_CRYPT_TYPE = plain

七、访问测试。

1.邮件服务端设置

安装缺失依赖

cd
yum install *CGI  perl-GD gcc* -y
yum -y install perl-GD-2.44-3.el6.x86_64.rpm

安装日志创建组件

tar zxf Unix-Syslog-1.1.tar.gz
cd Unix-Syslog-1.1
perl Makefile.PL
make test
make install

创建存储目录

/var/www/extsuite/extman/daemon/cmdserver -d

重启Apache服务

service httpd restart

2.客户端配置

配置DNS,重启网卡。

echo "DNS1=192.168.10.14" >> /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart

进行解析测试

nslookup 192.168.10.14

成功解析,开启图形化界面,开始访问测试。

init 5

3.访问测试

打开浏览器,输入普通用户访问网址。

mail.extmail.org

输入测试账户与默认密码

测试账户
postmaster
默认密码
extmail

登陆成功

测试管理员登陆

mail.extmail.org/extman

输入设置好的密码

进行功能测试,进行邮件群发测试。

登陆测试用户,查看是否收到。

成功收到群发邮件,邮件服务搭建完毕。

本文于2020年10月31日由Vonmerlot重新整理。

转载需注明出处。

Linux邮件服务器搭建实验相关推荐

  1. Linux下简单的邮件服务器搭建

    Linux下简单的邮件服务器搭建 电子邮件服务简介 电子邮件是因特网上最为流行的应用之一,而邮件服务器是一种用来负责电子邮件收发管理的设备,它构成了电子邮件系统的核心. 电子邮件系统的组成  MUA( ...

  2. linux环境下企业基于域名访问的web于电子邮件服务器 论文,基于Linux平台的企业邮件服务器搭建...

    我失骄杨君失柳,杨柳轻飏直上重霄九.得道多助,失道寡助.身后有余忘缩手,眼前无路想回头.鸟宿池边树,僧敲月下门.想当年,金戈铁马,气吞万里如虎. 本文由418133804贡献 pdf文档可能在WAP端 ...

  3. linux系统搭建局域网邮件,Linux局域网邮件服务器搭建

    随着企业信息化的普及,国内大部分企事业单位都有属于自己的局域网邮件服务器,如何在Linux局域网内搭建邮件服务器,实现邮件的收发.我们就给大家介绍一下怎样用U-Mail邮件服务器软件来搭建局域网邮件服 ...

  4. linux邮件实验,linux邮件服务器实验报告

    <linux邮件服务器实验报告>由会员分享,可在线阅读,更多相关<linux邮件服务器实验报告(11页珍藏版)>请在人人文库网上搜索. 1.实 验 报 告专业: 计算机科学与技 ...

  5. Ubuntu+Sendmail+Dovecot+Openwebmail 邮件服务器搭建完全解决方案

    Linux下邮件系统的种类比较多, 但是相较于WIN系统下, 无论是sendmail, 还是qmail, postix来说, 配置过程都是极为艰难的,没错, 是艰难. 相信看到这一篇文章的童鞋早已经熟 ...

  6. 基于Linux的服务器搭建

    摘 要 Linux操作系统搭建服务器,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户.多任务.支持多线程和多CPU的操作系统.伴随着互联网的发展,Linux得到了 ...

  7. 2020-12-02 Centos8.2邮件服务器搭建攻略!一文吃透Postfix+Dovecot+MySQL!

    1.jpg 今天来聊聊Linux邮件服务器的搭建,本以为这不是一件很困难的事情,毕竟电子邮件这种高度成熟的技术应该有很容易部属吧,上手后才发现原来坑还真不少.本方案以主流的postfix + dova ...

  8. 【企业邮件服务器搭建过程】

    企业邮件服务器搭建 一.准备环境 二.DNS服务搭建 三.发送端配置 四.接收端配置 五.mail+web界面 一.准备环境 Centos7以上 yum -y install bind yum -y ...

  9. LAMP+Postfix+Dovecot+SquirrelMail邮件服务器搭建

    LAMP+Postfix+Dovecot+SquirrelMail邮件服务器搭建 前段时间介绍过了在RHEL5下如何搭建LAMP环境,今天来介绍如何在LAMP下搭建邮件服务器,这一篇是构建基于post ...

最新文章

  1. [投稿]通过Web界面在多台服务器上批量创建文件
  2. win7只能管理计算机软件吗,win7可以管理多少内存,win7内存优化软件
  3. Struts工作原理
  4. Powershell常用命令
  5. 易语言利用服务器更新,易语言使用FTP服务器更新软件案例
  6. python3之协程(3)---greenlet实现协程操作
  7. mysql 三种工作模式_mybatis三种批量插入方式对比【面试+工作】
  8. 【LeetCode笔记 - 每日一题】384. 打乱数组(Java、洗牌算法)
  9. java执行数据库命令行_java程序执行命令行,解锁数据库表
  10. Ubuntu IP设置为静态
  11. 2020年,RocketMQ面试题 -面试题驱动RocketMQ学习
  12. 关于新版本Firefox浏览器无法使用firebug与firepath问题的解决方案
  13. 正点原子STM32F103(精英版)------串行通信
  14. 深信服虚拟服务器大融合,从虚拟化向云计算转型 深信服选择了超融合
  15. 获取docker容器里面的root权限
  16. 四方、曾经魂牵梦萦的地方
  17. 机器学习之密度聚类算法
  18. Name Mangling
  19. EOS 安装本地环境,发币教程,本地节点
  20. matplotlib绘制两个图形及网格、透明度、图例、颜色等

热门文章

  1. 作为SLAM中最常用的闭环检测方法,视觉词袋模型技术详解来了
  2. 【GPLT】【2022天梯赛真题题解】
  3. 微商大佬爆料:工商部门严查微商和社交电商机构
  4. python提取html中的href标签,如何使用Python从HTML获取href链接?
  5. win10红警遇到的各种问题
  6. 信号完整性(SI)电源完整性(PI)学习笔记(二十)传输线的串扰(四)
  7. excel分列 excel按列分为多个工作簿或者excel文件
  8. 20210505 秀米导入已发布微信推送的所有内容
  9. (转)汇编bne的问题
  10. 购买 阿里云海外服务器 实例