Centos 7.1 快速搭建postfix邮件系统

Centos 7.1 搭建postfix 邮件系统

学习一个服务的流程;

                 1、此服务器的概述:名字,功能,特点,端口号

                 2、安装

                 3、配置文件的位置

                 4、服务启动关闭脚本,查看端口

                 5、此服务的使用方法

                 6、修改配置文件,实战举例

                 7、服务的安全

                 8、排错(从下到上,从内到外)

                 9、模拟错误<对服务的原理要精通>

背景介绍;

RHEL5默认,地位已失

      地位失守原因:

 第一个重要的缺点是它的安全性较差,这是因为当其作者Eric Allman最初开始写作这个软件的时候,Internet的用户还很少,因而安全性并不没有得到大家的重视。

由于邮件系统需要处理的是外部发送来的各种各样的信息,甚至包含一些恶意数据,然而sendmail在大多数系统中都是以root身份运行,一旦出现问题,就会对系统安全造成严重影响。在这种情况下,要防止出现安全问题,仅仅依赖程序本身是不可取的,应该从系统结构出发,使程序拥有的特殊权限限制到最小。

第二个,使用Sendmail还会遇到的另一个问题是它的设置相当复杂,对于使用缺省设置来收发电子邮件,问题并不存在。当管理员打算进行一些特殊设置,以便利用Sendmail提供的复杂邮件处理能力时,就不得不面对复杂的宏和正则表达式。

 

Qmail可以替代Sendmail

Qmail,为了解决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则采用postfix

MDA:邮件递送代理(Mail Delivery Agent)


名称


全名


基于协议


作用


常见软件


MUA


Mail User Agent 用户邮件代理


替用户收发邮件的


Outlook  Foxmail Thunderbird mutt


MTA


Mail Transfer Agent 邮件传输代理


SMTP


服务器中接受邮件


Sendmail qmail   postfix(IBM)   exchange


MDA


Mail Deliver Agent 邮件投递代理


把SMTP收到的邮件投递的用户邮箱


Procmail   maildrop


MRA


Mail Retrival Agent邮件检索代理


POP3/IMAP


帮用户去邮箱取邮件


dovecot  courier-imap cyrus-imap

工作原理图

搭建postfx服务端

[[email protected] ~]# hostname
postfix-server
[[email protected] ~]# rpm -qa |grep sendmail
[[email protected] ~]# yum remove sendmail -y

[[email protected] ~]# alternatives --config mta

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

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

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

[[email protected] ~] alternatives --display mta  #查看所有详细的版本

[[email protected] ~] #yuminstall postfix –y  # postfix服务的主程序包,服务器端必须安装该

[[email protected] ~] #yuminstall dovecot –y  #接收邮件软件包。 安装在服务端用于测试收邮件。 安装客端用于收邮件。

[[email protected] ~] #vim  /etc/postfix/main.cf 

[[email protected] ~] # vim/var/log/maillog

[[email protected] ~]#service postfix start

[[email protected] ~]#lsof -i :25

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:

           发送:

            [[email protected] ~]# mail -s ‘Postfix‘[email protected] < /etc/passwd                  

               -s:指定邮件主题名

接收:

                 mail

      windows:

           通过浏览器访问或 foxmail

案例一;

配置postfix邮件服务器,实现邮件发送功能。实现给邮箱:[email protected] 发送邮件。

1)修改主机名和对应关系:

[[email protected]~]# hostname

xuegod63.cn


[[email protected] ~]# 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服务配置文件

[[email protected] ~]#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-server

inet_interfaces= all  #对外提供MTA服务设置为监听所有网卡,默认只监听本地

#inet_interfaces= localhost  #注释掉,这个是只监听本地的

mydestination= $myhostname, localhost.$mydomain, localhost, $mydomain

mynetworks_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服务;

[[email protected] ~]#servicepostfix restart

1)测试给[email protected]发送邮件:


[[email protected] ~]# mail -s ‘Postfix‘[email protected]< /etc/postfix/main.cf

由于要经过很多域名解析发送中转,所以会有些延迟

-s:邮件主题

#

[[email protected] ~] #mail

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是否被拉入黑名单

用别的地方的一台机器,一样的配置文件,可以发送

[[email protected]~]# mail -s ‘Postfix‘ [email protected] </etc/postfix/main.cf

1.我们怎样才能让我们的邮件服务器给别人发送邮件不显示垃圾邮件?

需要为邮件服务器添加DNS解析

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

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

需求:

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

别名功能

1)添加测试用户:

[[email protected] ~]# groupadd HA

[[email protected] ~]# useradd alice

[[email protected] ~]#  echo "123456" | passwd --stdinalice

[[email protected] ~]# useradd bob

[[email protected]~]#  echo "123456" | passwd --stdin bob

[[email protected]~]# vim /etc/aliases

HA:             alice,bob

[[email protected] ~]# service postfixrestart

3)发送测试邮件:

[[email protected] ~]# mail HA

Subject: Test 

This is a Test-mail

lllloo

kllll

lll

EOT   按ctrl-D结束输入

4) 切换用户查看:


[[email protected] ~]# su - alice

[[email protected] ~]$ mail

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

  • 修改dovecot配置文件:

[[email protected] ~]# vim /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp  #启用,lmtp被淘汰的地步。可能不被支持,不用就删掉

login_trusted_networks = 192.168.1.0/24   //指定允许登录的网段地址

  或login_trusted_networks = 0.0.0.0  设置为四个零,允许所有网络

[[email protected] ~]# grep -v ‘^#‘ /etc/dovecot/dovecot.conf |grep-v ‘^$‘ |grep -v ‘#‘

protocols= imap pop3 lmtp

login_trusted_networks= 192.168.1.0/24

dict {

}

!includeconf.d/*.conf

  • 设置邮件存放目录:

[[email protected]~]# vim/etc/dovecot/conf.d/10-mail.conf

mail_location = mbox:~/mail:INBOX=/var/mail/%u  #指定邮件的位置

  • 重启dovecot服务

[[email protected] ~]# service dovecot restart

  • 修改创建用户模板文件,使用户创建时自动生成mail存放目录

[[email protected] ~]# vim /etc/skel/.bash_profile

if[ ! -d ~/mail/.imap/INBOX ] ; then

        mkdir -p ~/mail/.imap/INBOX

fi 

[[email protected] ~]# source .bash_profile

5)测试:

      先创建用户

            [[email protected]~]# useradd alice

            [[email protected]~]# echo alice:123456 |chpasswd

       [[email protected]~]# useradd bob

           [[email protected] ~]# echobob:123456 |chpasswd 

 

测试发邮件

测试发邮件:

mail发邮件三种用法

1:以文件中的内容为邮件内容发信

[[email protected] ~]# su - alice

[[email protected] ~]$ mail -s‘Posfix1‘ [email protected] < /etc/hosts

       2:手动输入内容作为发送内容

      [[email protected] ~]$ echo"2222222222" | mail -s ‘Postfix2‘ [email protected]

       3:手动输入一串作为发送内容

[[email protected]~]$ mail -s ‘Postfix3‘ [email protected]

yyyuuu

hhhhhkkk

jjjnnnn

EOT

      通过mail命令查看邮件:

[[email protected]~]# su - bob

[[email protected]~]$ mail

&      #mail命令的提示符为 &

& 1    # 输入数字1,查看第一封邮件

& h    #查看邮件列表

& l     #查看所有支持的命令

& d 2  #删除第二个邮件; d 2-4  删除第2-4的邮件

& ?   #查看 所有用法。

时间: 2024-08-07 17:00:34

Centos 7.1 快速搭建postfix邮件系统的相关文章

centos 使用sshfs快速搭建文件共享服务

centos 使用sshfs快速搭建文件共享服务 看了很多教程都写的不够完整所以自己根据实际操作找遇到的坑共享一下给大家 共享文件服务器必须打开ssh服务器 实例:IP192.168.7.50 yum -y install epel-release # 安装epel 源码 yum -y install fuse-sshfs # 安装sshfs  sshfs -o allow_other,nonempty [email protected]:/opt/ /opt/http 指定密钥文件 sshfs

Redhat6.5中搭建Postfix邮件系统

一.电子邮件系统基础Internet网络中的电子邮件系统并不是一个孤立的体系,除了需要DNS服务器提供邮件域的解析,通过Web服务器提供邮箱操作界面以外,邮件收取.传递等功能也是由不同的组件来提供的.1.在实现电子邮件收发的完整系统中,根据各组件所处的位置.承担的功能不同,可以分为不同的角色①MTA:邮件传输代理,一般被称为邮件服务器软件,负责接收客户端软件发送的邮件,并将邮件传输给其他的MTA程序,是电子邮件系统中的核心部分.②MUA:邮件用户代理,一般被称为邮件客户端软件,为用户提供发送.接

搭建Postfix邮件系统

搭建Postfix邮件系统 SMTP简单邮件传输协议         25端口 POP邮局协议               110端口 IMAP互联网消息访问协议       143端口 主配置文件 访问端口和访问主机地址 日志文件位置等 区域配置文件   定义域名空间, 设置正向解析或者反向解析 区域数据配置文件  负责解析地址 环境部署:本次实验由 DNS.postfix.dovecot服务共同搭建 主机IP :192.168.100 一.安装DNS域名解析服务,指定邮件交换记录. 1. 安

Linux(Centos)快速搭建SVN

前言 项目中源码或者文档需要进行管理与版本记录,历数此类工具VSS.CVS.SVN.GIT等等,有非常多的版本控制系统.SVN现在还是很常见,把笔记总结搬上博客,SVN这个再不放以后估计只能写GIT的搭建了. 一.SVN简介 SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的. S

Centos系统下Lamp环境的快速搭建(超详细,转)

lamp的搭建对于初学者是一件很头疼的事情,所以借此机会把自己当初快速搭建linux+apche+mysql+php的方法分享大家希望能到你. 工具/原料 虚拟机及Centos操作系统 Linux基本命令的使用 方法/步骤 首先为了搭建一个稳定的lamp的练习环境,确保你的虚拟机可以连网,这里我们使用的yum安装,它可以帮助我们解决软件自己的依赖关系.我还在后面加了postgresql数据库如果不需要的话可以去掉和postgresql的参数.命令如下 yum -y install httpd m

CentOS 7快速搭建Nodejs开发环境

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.学习Nodejs首先需要会安装环境.这里我介绍如何在CentOS7快速搭建Nodejs开发环境. 工具/原料 CentOS 7 Nodejs 通过NVM安装 1 NVM(Node version manager)顾名思义,就是Node.js的版本管理软件,可以轻松的在Node.js各个版本间切换,项目源码在GitHub: 如果你想长期做 node

在Lamp平台上基于postfix+mysql+dovecot+sasl+courier-authlib+extmail+extman搭建企业级邮件系统

邮件系统的简介: 一封邮件的传输流程类似如下: 发件人:MUA --发送--> MTA --> 若干个MTA... --> MTA --> MDA <--MRA <--收取<-- MUA:收件人 1,发件人调用MUA编辑要发送的邮件. 2,MUA把邮件借助STMP协议发生给发送方的邮件服务器(MTA),MUA充当STMP的客户端,而发送方的邮件服务器(MTA)充当STMP的服务器端. 3,发送方邮件服务器(MTA)接收MUA发来的邮件后,就把邮件临时存放在邮件发送

centos下Extmail的搭建

1 Extmail概述 ExtMail Solution 是一个基于优秀开源软件的电子邮件系统解决方案,核心部件包括了Postfix.Amavisd-new.ClamAV.ExtMail.ExtMan.Courier系列软件.是一个功能相对比较齐全的免费电子邮件系统. 而其中Extmail 是一个以perl语言编写,面向大容量/ISP级应用,免费的高性能Webmail软件,主要包括ExtMail.Extman两个部分的程序套件.ExtMail套件用于提供从浏览器中登录.使用邮件系统的Web操作界

postfix邮件系统集群

postfix邮件系统集群部署文档 QQ 332609422 V1.0 目录 前言 一. 网络拓扑及系统原理 二. IP及主机名规划 三. 部署步骤 前言 编写本文档的目的是为了记录把公司邮箱服务器的双机热备形式迁移到LVS负载均衡的邮件系统集群形式.记录的主要内容是整个过程中用到的拓扑,具体的机器名称,IP规划,相关服务等内容. 一.网络拓扑及系统原理 用户访问邮箱时,访问的域名为mail.zhsye.com,访问邮箱的服务,主要是3个端口,分别是80,25,110 .LVS主机提供负载均衡服