红联Linux门户
Linux帮助

RHEL6服务器配置Mail服务

发布时间:2015-05-11 22:34:51来源:linux网站作者:sbwolftotem

Mail服务器配置
linux服务器中配置邮件服务器的软件大概有这三种:sendmail/postfix/qmail
以下利用postfix进行搭建邮件服务器


一:相关知识
MUA mail user agent 邮件用户代理 用于客户端发送邮件和阅读邮件
MTA mail tranfer agent 邮件传输代理 服务端软件,相当于是一个邮局,接收MUA发送过来的邮件,如果不是本地邮件,则发送给下一个MTA。
MDA mail delivery agent 邮件投递代理 将MTA所接收到的邮件,依照邮件的目的地将此邮件放到本机账号

--------------SMTP 允许中继----------
MTA 网易---------- MTA 新浪
| ----------------------------------------- |
|-------------------------------------------|
|SMTP -----------------------------------| MDA POP3
|-------------------------------------------|
abc@126.com----------------------efg@sina.com
协议:
发信人:zhangsan@126.com
收信人: lisi@sina.com

发信:
SMTP simple mail transfer protocol 简单邮件传输协议 端口号:TCP 25
smtps= smtp+ ssl/tls 端口:465

收信:
POP3 post office protocol 邮局协议 ,连接到MTA,读取或者下载邮件 端口号:110
pop3s=pop3+ssl/tls 端口:995

IMAP internet message access protocal 网络报文访问协议 能在下载邮件前先下载邮件头信息,以供用户选择性的下载 端口号:143
imap3s=imap3+ssl/tls 端口:993


二:涉及软件
(1)postfix
(2)povecot
#yum install postfix povecot -y
#/etc/init.d/postfix start -------启动

#netstat -ntlup |grep :25 -------查看启动端口

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 13999/master
tcp 0 0 ::1:25 :::* LISTEN 13999/master

或者
# lsof -i:25
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 2993 root 12u IPv4 14370 0t0 TCP *:smtp (LISTEN)
master 2993 root 13u IPv6 14372 0t0 TCP *:smtp (LISTEN)


三:发送邮件
(1)

# mail -s 'hello' root@36.web.com --s参数是定义主题
1111111111111111 --邮件正文
. --点号表示结束
Cc: --抄送,这里我直接回车表示结束

(2)
# mail a --也是调用mail命令
Subject: hello a
i am root
.
Cc: b

(3)查看邮件
#cat /var/spool/mail/root
#cat /var/mail/root

(4)
# mail -s 'hello2' root@36.web.com < /etc/fstab
--把/etc/fstab的内容做为邮件的正文来发

(5)
# telnet 127.0.0.1 25 --对25端口也就是smtp协议进行验证
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 li.cluster.com ESMTP Sendmail 8.13.8/8.13.8; Fri, 3 Sep 2010 10:31:00 +0800
helo abc --介绍,打招呼(可以不用打招呼直接到mail from)
250 li.cluster.com Hello localhost.localdomain [127.0.0.1], pleased to meet you
mail from:abc@qq.com --定义发送者,在这里随便定义
250 2.1.0 abc@qq.com... Sender ok
rcpt to:root@rootbug.com --定义接收者,在这里是本机的root用户
250 2.1.5 root@rootbug.com... Recipient ok
data --表示后面写的是邮件内容
354 Enter mail, end with "." on a line by itself
test mail from qq.com --邮件正文
. --点号表示内容结束
250 2.0.0 o832V0tl004576 Message accepted for delivery
quit --quit退出
221 2.0.0 li.cluster.com closing connection

(6)通过mutt发送邮件
#yum install mutt -y
# mutt user1@rootbug.com --使用root用户给user1用户发送邮件,并且有发送附件等功能
#su - user1 --切换用户去查看邮件

(7)还可以安装其他的软件进行收发邮件,这里就不一一列举。


四:配合DNS进行搭建邮件服务器
linux客户端 DNS服务器 postfix服务器+dovecot服务器
10.10.10.35--------10.10.10.15--------10.10.10.15
|
|
|
客户端 windows xp
10.10.10.27
前期准备:
1,主机名和IP
2,时间同步
3,关闭iptables,selinux
4, 配置好yum

第一大步:配置DNS服务器和邮件交换记录
(1)先在15上把主机名和域定义好
#hostname mail.rootbug.com
#vim /etc/hosts
10.10.10.15 mail.rootbug.com
#vim /etc/sysconfig/network
HOSTNAME=mail.rootbug.com

(2)下面在10.10.10.15上做DNS
# yum install bind*

# vim /etc/named.conf
options {
listen-on port 53 { any; }; --改为any
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; }; --改为any
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
---------------------------------------------------------------------

# vim cat /etc/named.rfc1912.zones
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};

zone "cluster.com" IN { --加上这一段,我的邮件域为cluster.com,跟主机名mail.rootbug.com不一样,方便理解和区分
type master;
file "data/master.cluster.com.zone";
};

----------------------------------------------------------------------------------------------
# vim /var/named/data/master.cluster.com.zone

$TTL 3600
@ IN SOA rootbug. rootbug. (
2013101001
30
60
90
3600 )
IN NS 10.10.10.15.
IN MX 0 10.10.10.15. --加上这一句,MX是邮件交换记录,0代表优先级别,0-20,0代表优先级最高
dns IN A 10.10.10.15
mail IN A 10.10.10.15 --这个是邮件服务器的域名,因为我这里和DNS模拟做成同一台,所以IP相同

--------------------------------------------------------------------------------------------------------
#/etc/init.d/named restart

(3)在客户端上把DNS指向DNS服务器,然后进行验证
----下面的验证是linux上做的,但是在XP的cmd命令行模式也是一样的命令来验证
# nslookup mail.cluster.com
Server: 10.10.10.15
Address: 10.10.10.15#53

Name: mail.cluster.com
Address: 10.10.10.15

# nslookup --验证邮件交换记录
> set type=mx
> cluster.com --这里写域,不是域名
Server: 10.10.10.15
Address: 10.10.10.15#53

cluster.com mail exchanger = 0 10.10.10.15.

第二大步:在linux客户端安装邮件客户端软件claws-mail或者thunderbird windows客户端自带outlook,不用安装。
(1)安装图形邮件客户端claws-mail
# tar xvf libetpan-0.57.tar.gz -C /usr/src/ --------IMAP4和NNTP支持,要先装这个包才能编译claws-mail--------

#tar xvf claws-mail-3.5.0.tar.gz -C /usr/src/
#cd /usr/src/libetpan-0.57/
#./configure
#make
#make install

#cd /usr/src/claws-mail-3.5.0/
#./configure
#make
#make install

--安装完成后,使用claws-mail &命令来打开,如果报找不到libetpan.so.13这个库文件,则使用下面的命令做一个软链接

# ln -s /usr/local/lib/libetpan.so.13 /lib/libetpan.so.13
--注意:如果用的是rhel6的64位的话,则ln -s /usr/local/lib/libetpan.so.13 /lib64/libetpan.so.13

(2)你或者也可以用thunderbird
# tar xf thunderbird-zh-17.0.4.tar.bz2 -C /usr/local
# cd /usr/local/thunderbird/
# ./thunderbird --直接使用这个命令去打开

------打开时暴库不存在,用yum安装后再打开----
# yum install libxul.so

第三大步:配置postfix和dovecot
(1)配置postfix

#vim /etc/postfix/main.cf
myhostname = mail.rootbug.com --本机主机名
mydomain = cluster.com --本机域名,postfix会自动扣除第一点号前的部分作为域名。如果不是FQDN形式的主机名,就一定要手动配置你的域名
myorigin = $mydomain
inet_interfaces = all --监听所有
mydestination = $myhostname, localhost.$mydomain, localhost ,$mydomain
--加上$mydomain,则表示可以直接以域名来收邮件
mynetworks = 10.10.10.0/24, 127.0.0.0/8 --信任网络,在这里也可以不配,因为默认值为subnet,也就是本网段内的都是信任网络

-------------------------------------------------------------------------------------------------------

#/etc/init.d/postfix restart

# netstat -ntlup |grep :25 --验证端口
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3289/master
tcp 0 0 :::25 :::* LISTEN 3289/master

--------------------------------------------------------------------------------------------------------

(2)配置dovecot

# vim /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp --打开这行的注释,在20行
login_trusted_networks = 10.10.10.0/24 --打开并配置这一行,表示能够成功登录的信任网络,大概在38行

# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u --打开这行的注释,在25行

#/etc/init.d/dovecot restart
# netstat -ntlup |grep :110
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 4802/dovecot
tcp 0 0 :::110 :::* LISTEN 4802/dovecot

--------------------------------------------------------------------------------------------------------------

(3)假设公司这个邮件服务器有两个员工的账号,做为管理员在邮件服务器上创建这两个用户,并给密码(高级的做法,可以把账号做到数据库里来管理)

# useradd zhangsan
# useradd lisi
# echo 123 | passwd --stdin zhangsan
# echo 123 | passwd --stdin lisi

第四大步:
(1)配置两个客户端,只要是配置 thunderbird和 claws和outlook(配置过程省略)
(2)发邮件测试
利用图形邮件工具(thunderbird和 claws和outlook)进行收发邮件
zhangsan发一封邮件给lisi,一切OK。


RHEL6服务器搭建结合杀毒软件ClamAV的Mail服务器:http://www.linuxdiyf.com/linux/12016.html

如何设置Linux上SSH登录的Email提醒:http://www.linuxdiyf.com/linux/11734.html

RHEL5上安装Extmail邮件系统:http://www.linuxdiyf.com/linux/6630.html