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 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS 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 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS 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.org
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html
SuexecUserGroup 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重新整理。
转载需注明出处。