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