您的位置:首页 > 理论基础 > 计算机网络

高可用性在企业网络中的应用

2012-09-09 18:23 363 查看
Centos 7.1 搭建postfix 邮件系统

学习一个服务的流程;
1、此服务器的概述:名字,功能,特点,端口号 2、安装 3、配置文件的位置 4、服务启动关闭脚本,查看端口 5、此服务的使用方法 6、修改配置文件,实战举例 7、服务的安全 8、排错(从下到上,从内到外) 9、模拟错误<对服务的原理要精通>

背景介绍; RHEL5默认,地位已失地位失守原因: 第一个重要的缺点是它的安全性较差,这是因为当其作者Eric Allman最初开始写作这个软件的时候,Internet的用户还很少,因而安全性并不没有得到大家的重视。由于邮件系统需要处理的是外部发送来的各种各样的信息,甚至包含一些恶意数据,然而sendmail在大多数系统中都是以root身份运行,一旦出现问题,就会对系统安全造成严重影响。在这种情况下,要防止出现安全问题,仅仅依赖程序本身是不可取的,应该从系统结构出发,使程序拥有的特殊权限限制到最小。第二个,使用Sendmail还会遇到的另一个问题是它的设置相当复杂,对于使用缺省设置来收发电子邮件,问题并不存在。当管理员打算进行一些特殊设置,以便利用Sendmail提供的复杂邮件处理能力时,就不得不面对复杂的宏和正则表达式。Qmail可以替代SendmailQmail,为了解决sendmail的安全问题,整个系统结构需要重新设计。基本的原则是将系统划分为不同的模块,有负责接收外部邮件的,有管理缓冲目录中待发送的邮件队列的,有将邮件发送到远程服务器或本地用户的。Qmail就是按照这个原则进行的设计,它由多个不同功能的小程序组成,只有必要的程序才是setuid程序(即以root用户权限执行),这样就减少了安全隐患,并且由于这些程序都比较简单一些,因此就可以达到较高的安全性。Qmail已经许多年没有更新了,用户已经习惯于通过第三方的插件及补丁来使qmail增加新的功能.
postfix 介绍:
另一种替换软件:Postfix 可以替代sendmail
postfix
同样也是采用了模块化的方式,但与Qmail不同的是,Postfix使用了一个主控进程进行监控。Postfix在很多方面都考虑到了安全问题,它甚至不向root分发电子邮件,以避免以root身份读写文件或启动外部程序。考虑到它的作者Wietse Venema曾编写了著名的安全软件TcpWrapper,Postfix的安全性是非常值得信赖的。
Postfix的性能也非常不错,甚至在Qmail作者自己进行的测试中也表明,Postfix的性能和Qmail基本相当。postfix在性能上大约比sendmail快三倍

官网:http://www.postfix.org/logo

作者:Wietse Venema作者介绍:http://www.porcupine.org/wietse/

前面我们说的都是邮件发送服务器接下来我们看看邮件接收服务器
Dovecot: 邮件接收服务器:Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。POP / IMAP4 是 MUA 从邮件服务器中读取邮件时使用的协议。POP3 是从邮件服务器中下载邮件存起来,IMAP 则是将邮件留在服务器端直接对邮件进行管理、操作。比POP3更先进。由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。IMAP4是TCP/IP协议族中的一员,现在的版本是“IMAP第四版第一次修订版”。一个完整的邮件服务器由以下内容构成:postfix(作为发送邮件服务器)+dovecot(作为接收邮件服务器)+mysql(作为数据库)
25 端口:SMTP协议。 发送邮件
是本地邮件传输协议,与SMTP类似,但不支持邮件队列(queue),主要应用于非广域网的邮件网关。
110端口:POP3协议
是本地邮件传输协议,与SMTP类似,但不支持邮件队列(queue),主要应用于非广域网的邮件网关。

143:IMAP

IMAP: (InternetMail Access Protocol Internet邮件访问协议) 。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如Outlook)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。两者之前的区别
POP3协议允许电子邮件客户端下载服务器上的邮件,但是在客户端的操作(如移动邮件、标记已读等),不会反馈到服务器上,比如通过客户端收取了邮箱中的3封邮件并移动到其他文件夹,邮箱服务器上的这些邮件是没有同时被移动的 。而IMAP提供webmail 与电子邮件客户端之间的双向通信,客户端的操作都会反馈到服务器上,对邮件进行的操作,服务器上的邮件也会做相应的动作。邮件功能组件MUA:邮件用户代理(Mail User Agent) 收邮件MTA:邮件传输代理(Mail Transfer Agent) 发邮件rhel5默认采用sendmail做为MTA,rhel6则采用postfixMDA:邮件递送代理(Mail Delivery Agent)

名称全名基于协议作用常见软件
MUAMail User Agent 用户邮件代理替用户收发邮件的Outlook Foxmail Thunderbird mutt
MTAMail Transfer Agent 邮件传输代理SMTP服务器中接受邮件Sendmail qmail postfix(IBM) exchange
MDAMail Deliver Agent 邮件投递代理把SMTP收到的邮件投递的用户邮箱Procmail maildrop
MRAMail Retrival Agent邮件检索代理POP3/IMAP帮用户去邮箱取邮件dovecot courier-imap cyrus-imap
工作原理图





搭建postfx服务端

[root@post-test ~]# hostname
postfix-server
[root@postfix-server ~]# rpm -qa |grep sendmail
[root@postfix-server ~]# yum remove sendmail -y

[root@postfix-server ~]# alternatives --config mta

共有 1 个提供“mta”的程序。

选项 命令
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.postfix

按 Enter 保留当前选项[+],或者键入选项编号: # 如果有多个输入数字进行选择

[b][root@postfix-server ~] alternatives --display mta #查看所有详细的版本[/b][b][b][root@postfix-server ~] #[/b]yuminstall postfix –y # postfix服务的主程序包,服务器端必须安装该[/b][b][b][root@postfix-server ~] #[/b]yuminstall dovecot –y #接收邮件软件包。 安装在服务端用于测试收邮件。 安装客端用于收邮件。[/b]
[b][b][b][root@postfix-server ~] #vim /etc/postfix/main.cf
[/b][/b][/b]

[b][b][b][root@postfix-server ~] # vim/var/log/maillog[/b][/b][/b]

[b][b][b][root@postfix-server ~]#service postfix start[/b][/b][/b]

[b][b][b][b][root@postfix-server ~][/b][/b][/b]#lsof -i :25[/b]
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODENAME
master 2336 root 12u IPv4 13216 0t0 TCP localhost:smtp (LISTEN)
master 2336 root 13u IPv6 13218 0t0 TCP localhost:smtp (LISTEN)

服务的使用方法:
linux:
发送:
[root@postfix-server ~]# mail -s 'Postfix'1684067131@qq.com < /etc/passwd

-s:指定邮件主题名
接收:
mail
windows:
通过浏览器访问或 foxmail

案例一;

配置postfix邮件服务器,实现邮件发送功能。实现给邮箱:1684067131@qq.com 发送邮件。

1)修改主机名和对应关系:
[root@postfix-server~]# hostnamexuegod63.cn[root@postfix-server ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
postfix-server 172.16.1.201

2.修改postfix服务配置文件
[root@postfix-server ~]#vim /etc/postfix/main.cf
queue_directory= /var/spool/postfix #队列目录,也是运行的根目录mydomain =postfix-server#指定邮件域,接收用来识别的myhostname= postfix-server#发送邮件的主机名mynetworks= 192.168.1.0/24, 127.0.0.0/8 #指定允许使用的ip地址段myorigin =$mydomain #发信地址,此设置显示为@postfix-serverinet_interfaces= all #对外提供MTA服务设置为监听所有网卡,默认只监听本地#inet_interfaces= localhost #注释掉,这个是只监听本地的mydestination= $myhostname, localhost.$mydomain, localhost, $mydomainmynetworks_style= subnet #允许转发的来源网段,可选subnet子网,class网段,host本机local_recipient_maps = //209行,把前面的注释拿掉relay_domains= $mydestination #允许转发的目标域alias_maps= hash:/etc/aliases #对某个用户发,文件中的用户都可以收到邮件alias_database= hash:/etc/aliases smtpd_banner= $myhostname ESMTP "postfix mail server" #自定服务器信息3.启动postfix服务;
[b][root@postfix-server ~]#servicepostfix restart[/b]

1)测试给123456789@qq.com发送邮件:

[root@xuegod63 ~]# mail -s 'Postfix'123456789@qq.com< /etc/postfix/main.cf由于要经过很多域名解析发送中转,所以会有些延迟-s:邮件主题#[b][b][root@postfix-server ~][/b] #mail[/b]HeirloomMail version 12.4 7/29/08. Type ? forhelp."/var/spool/mail/root":12 messages 1 new 2 unread>N 12 Mail Delivery System Sun Nov 29 21:14 752/29445 "UndeliveredMail Returned to S"&没有发送出去,经验证是网络ip的问题http://www.anti-spam.org.cn/反垃圾邮件联盟,看看你的ip是否被拉入黑名单用别的地方的一台机器,一样的配置文件,可以发送

[root@postfix~]# mail -s 'Postfix' 123567890@qq.com </etc/postfix/main.cf

1.我们怎样才能让我们的邮件服务器给别人发送邮件不显示垃圾邮件?
需要为邮件服务器添加DNS解析虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录比如域名cnblogs.info,对应的DNS记录如下





例2:配置postfix给一个人发送邮件多个人可以收到

需求:
我们先创建2个用户,创建一个组HA,当我们给HA送邮件的时候,alice和bob两个用户可以收到邮件
别名功能

1)添加测试用户:
[root@postfix-server ~]# groupadd HA
[root@postfxi-server ~]# useradd alice
[root@postfix-server ~]# echo "123456" | passwd --stdinalice
[root@postfix-server ~]# useradd bob
[root@postfix-server~]# echo "123456" | passwd --stdin bob
[root@postfix-server~]# vim /etc/aliases
HA: alice,bob
[root@postfix-server ~]# service postfixrestart
3)发送测试邮件:
[root@postfix-server ~]# mail HA
Subject: Test
This is a Test-mail
lllloo
kllll
lll
EOT 按ctrl-D结束输入
4) 切换用户查看:

[root@postfix-server ~]# su - alice
[alice@postfix-server ~]$ mail

配置dovecot服务器,实现发邮件和接收邮件

修改dovecot配置文件:

[root@postfix-server ~]# vim /etc/dovecot/dovecot.confprotocols = imap pop3 lmtp #启用,lmtp被淘汰的地步。可能不被支持,不用就删掉login_trusted_networks = 192.168.1.0/24 //指定允许登录的网段地址 或login_trusted_networks = 0.0.0.0 设置为四个零,允许所有网络[b][root@postfix-server ~]# grep -v '^#' /etc/dovecot/dovecot.conf |grep-v '^$' |grep -v '#'[/b]protocols= imap pop3 lmtplogin_trusted_networks= 192.168.1.0/24dict {}!includeconf.d/*.conf

设置邮件存放目录:

[root@postfix-server~]# vim/etc/dovecot/conf.d/10-mail.confmail_location = mbox:~/mail:INBOX=/var/mail/%u #指定邮件的位置重启dovecot服务

[root@postfix ~]# service dovecot restart修改创建用户模板文件,使用户创建时自动生成mail存放目录

[root@postfix ~]# vim /etc/skel/.bash_profileif[ ! -d ~/mail/.imap/INBOX ] ; then mkdir -p ~/mail/.imap/INBOXfi [root@postfix-server ~]# source .bash_profile5)测试:先创建用户[root@postfix-server~]# useradd alice [root@postfix-server~]# echo alice:123456 |chpasswd [root@postfix-server~]# useradd bob [root@postfix ~]# echobob:123456 |chpasswd 测试发邮件
测试发邮件:mail发邮件三种用法1:以文件中的内容为邮件内容发信[root@postfix-server ~]# su - alice[alice@postfix-server ~]$ mail -s'Posfix1' bob@postfix-server < /etc/hosts 2:手动输入内容作为发送内容 [alice@postfix-server ~]$ echo"2222222222" | mail -s 'Postfix2' bob@postfix-server 3:手动输入一串作为发送内容[alice@postfix-server~]$ mail -s 'Postfix3' bob@postfix-serveryyyuuuhhhhhkkkjjjnnnnEOT通过mail命令查看邮件:
[root@postfix-server~]# su - bob[bob@postfix-serve~]$ mail& #mail命令的提示符为 &
& 1 # 输入数字1,查看第一封邮件
& h #查看邮件列表
& l #查看所有支持的命令
& d 2 #删除第二个邮件; d 2-4 删除第2-4的邮件
& ? #查看 所有用法。

本文出自 “渲染不变的昨天” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: