lyx

  • 嵌入式
  • 运维
  • 笔记
  • 关于
所有文章 友链 关于我

lyx

  • 嵌入式
  • 运维
  • 笔记
  • 关于

Postfix服务

2017-03-15

#YSU-Linux运维笔记模板V3.0

编辑软件:MarkdownPad2

撰写人员:Kali

撰写日期:2017年3月5日

联系作者:cyysu.github.io@gmail.com

友情提示:文章内容如有不对,欢迎指正。


1 开篇的话

1.1 学习方法

学习Linux服务的大体流程如下

    了解服务的作用:名称,功能,特点
    安装
    配置文件位置,端口
    服务启动关闭的脚本
    此服务的使用方法
    修改配置文件,实战举例
    排错(从下到上,从内到外)

2 Postfix服务

2.1 简介

postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。
在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封邮件。这真是一个让人吃惊的数字。
Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性

其它邮件服务器:
Sendmail、Qmail、Postfix
Sendmail的不足
 第一个重要的缺点是它的安全性较差,这是因为当其作者Eric Allman最初开始写作这个软件的时候,Internet的用户还很少,因而安全性并不没有得到大家的重视。
由于邮件系统需要处理的是外部发送来的各种各样的信息,甚至包含一些恶意数据,然而sendmail在大多数系统中都是以root身份运行,一旦出现问题,就会对系统安全造成严重影响。在这种情况下,要防止出现安全问题,仅仅依赖程序本身是不可取的,应该从系统结构出发,使程序拥有的特殊权限限制到最小。
第二个,使用Sendmail还会遇到的另一个问题是它的设置相当复杂,对于使用缺省设置来收发电子邮件,问题并不存在。当管理员打算进行一些特殊设置,以便利用Sendmail提供的复杂邮件处理能力时,就不得不面对复杂的宏和正则表达式。

Qmail可以替代Sendmail
Qmail,为了解决sendmail的安全问题,整个系统结构需要重新设计。基本的原则是将系统划分为不同的模块,有负责接收外部邮件的,有管理缓冲目录中待发送的邮件队列的,有将邮件发送到远程服务器或本地用户的。Qmail就是按照这个原则进行的设计,它由多个不同功能的小程序组成,只有必要的程序才是setuid程序(即以root用户权限执行),这样就减少了安全隐患,并且由于这些程序都比较简单一些,因此就可以达到较高的安全性。


今天的主角:
另一种替换软件:Postfix  可以替代sendmail
  Postfix同样也是采用了模块化的方式,但与Qmail不同的是,Postfix使用了一个主控进程进行监控。Postfix在很多方面都考虑到了安全问题,它甚至不向root分发电子邮件,以避免以root身份读写文件或启动外部程序。考虑到它的作者Wietse Venema曾编写了著名的安全软件TcpWrapper,Postfix的安全性是非常值得信赖的。
Postfix的性能也非常不错,甚至在Qmail作者自己进行的测试中也表明,Postfix的性能和Qmail基本相当。postfix在性能上大约比sendmail快三倍。


Dovecot: 邮件接收服务器:
    Dovecot 是一个开源的 IMAP 和 POP3 邮件服务器,支持 Linux/Unix 系统。
    POP / IMAP4 是 MUA 从邮件服务器中读取邮件时使用的协议。
    POP3 是从邮件服务器中下载邮件存起来,IMAP 则是将邮件留在服务器端直接对邮件进行管理、操作。比POP3更先进。
    由 Timo Sirainen 开发,最初发布于 2002年7月。作者将安全性考虑在第一,所以 Dovecot 在安全性方面比较出众。
    IMAP4是TCP/IP协议族中的一员,现在的版本是“IMAP第四版第一次修订版”。
    一个完整的邮件服务器由以下内容构成:

    postfix(作为发送邮件服务器)+dovecot(作为接收邮件服务器)+mysql(作为数据库)

    可以通过foxmail或outlook客户端。也可以通过网页来收邮件。



    邮件服务协议和端口:

        25 端口:SMTP协议。
            SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
        作用:此协议主要用来发送或中转邮件。SMTP协议属于TCP/IP协议簇,

        邮件服务中:
            发送: 指的是同属于163邮件服务器两人相互发送邮件。
            中转: 使用163邮箱给QQ邮箱发送邮件。

        24端口:LMTP(Local Mail Transfer Protocol)[1],是本地邮件传输协议,与SMTP类似,但不支持邮件队列(queue),主要应用于非广域网的邮件网关。


        110端口:POP3协议
            POP3(Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收邮件的协议。
        还有POP2协议。


        143端口:IMAP
            IMAP: (Internet Mail Access Protocol Internet邮件访问协议) 。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端(例如Outlook)可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。

        当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。他们之间的区别如下:

pop3和IMAP的区别
邮件的工作流程

1:发件人写邮件,通过客户端连接邮件服务器,这个之间使用了 SMTP 协议链接!用
户就是 SMTP  客户端,发送服务器就是我们这儿的 SMTP 服务器!
2:SMTP  检查我们进入的邮件,将其放到邮件缓冲队列中,等待发送到接受服务器中, 这里要注意,postfix 在这里会检查我们是是否发给自己,若是发给自己的,那么就直接进入 了我们服务器自己的 mailbox!
3:发送服务器此时充当 SMTP 客户端,接受服务器充当 SMTP 服务端,建立 TCP 链接, 将邮件发送的接受服务器!
4:接受服务器收到邮件之后,把邮件里面的内容读取,如收件人信息   to:……
5:收件人打开客户端,使用 POP3 或者 IMAP 协议收取邮件并读取!

2.2 服务安装、启动和配置

服务安装

    在安装之前首先要检查一下系统是否已经安装了Sendmail。

        rpm -qa | grep sendmail     #查看是否安装 sendmail
        yum remove sendmail -y      #卸载 sendmail

    下面就开始安装服务
         yum install -y postfix dovecot



服务启动、端口检测和加入开机启动项

    service postfix restart
    chkconfig postfix  on
     netstat -antup | grep 25

服务配置

    /etc/postfix/main.cf     #主配置文件位置
    /var/log/maillog         #日志文件位置
    /var/spool/mail/         #邮件存放位置,对应有相应用户名

配置文件部分参数

    [root@xuegod63 ~]# cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
    [root@xuegod63 ~]# vim /etc/postfix/main.cf
    queue_directory = /var/spool/postfix   #队列目录
    command_directory = /usr/sbin     #命令位置目录
    mail_owner = postfix              #postfix运行身份
    myhostname = xuegod63.cn        #发送邮件时的名字,服务器名字
    mydomain = xuegod63.cn           #邮件域,用于接受的时候用
    myorigin = $mydomain             #我来自哪儿,别人收到的时候知道是我发送的
    inet_interfaces = localhost          #邮件接受监控的地址
    inet_protocols = all                #启用IPV4和IPV6
    mydestination = $myhostname, $mydomain, localhost          #服务器负责那些域
    mynetworks = 192.168.0.0/24, 127.0.0.0/8                 #指定允许使用的IP地址段
    alias_maps = hash:/etc/aliases                             #对某一个用户发,里面的人都可以收到邮件
    alias_database = hash:/etc/aliases
    #home_mailbox = Mailbox                                   #收件箱存放位置

3 精彩案例

3.1 配置postfix邮件服务器,实现邮件发送功能。

修改主机名和对应关系:
[root@xuegod63 postfix]# hostname
xuegod63.cn
[root@xuegod63 postfix]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63   xuegod63.cn
192.168.1.64   xuegod64.cn

vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=xuegod63.cn

[root@xuegod63 ~]# vim /etc/postfix/main.cf
需要启用和修改的项:
myhostname = xuegod63.cn  #指定邮件服务器名字,接收用来识别的,也就是一个标识
mydomain = xuegod63.cn   #邮件域
myorigin = $mydomain  #启用,去掉注释,发信地址,此设置显示为@xuegod63.cn
inet_interfaces = all  #对外提供MTA服务设置为监听所有网卡,默认只监听本地
#inet_interfaces = localhost  #这个注释起来,是默认值,只监控本地
mydestination = $myhostname, localhost.$mydomain, localhost  #此行不用改,但是要说明,这是代表邮件服务器负责的那些域
mynetworks_style = subnet #允许转发的来源网段,可选subnet子网,class网段,host本机
mynetworks = 192.168.0.0/24, 127.0.0.0/8 #用户允许的使用的IP地址段
relay_domains = $mydestination  #允许转发的目标域
local_recipient_maps =  #含有所有本地邮件地址的查询表.SMTP server借此拒收外界寄给不明用户的邮件,启用即可
alias_maps = hash:/etc/aliases  #对某个用户发,文件中的用户都可以收到邮件,别名组
alias_database = hash:/etc/aliases  #别名数据库
smtpd_banner = $myhostname ESMTP "Welcome XueGod63.cn STMP Server"  #自定义服务器信息

重启服务:
[root@xuegod63 ~]# service postfix start
[root@xuegod63 ~]# netstat -antup | grep 25


测试:

    mail -s 'Postfix1' 3402301871@qq.com < /etc/hosts
    tail -f /var/log/maillog
    在postfix的日志里:
    如果status=sent表示已经成功发送。removed表示从队列中删除发送的邮件
    如果status= deferred表示延期,需要重试,当重试到一定次数,还失败就抛弃
赏

谢谢你请我吃糖果

支付宝
微信
  • CentOS6.8
  • Postfix服务
  • oldLinux

扫一扫,分享到微信

微信分享二维码
DHCP服务
自动化部署
© 2017 lyx
Hexo Theme Yilia by Litten
  • 所有文章
  • 友链
  • 关于我

tag:

  • CentOS6.8
  • SSH服务
  • DHCP服务
  • 自动化部署
  • 互联网资源
  • IT
  • 运维
  • Linux
  • RSYNC服务
  • NTP服务
  • Postfix服务
  • DNS服务
  • NFS服务
  • Samba服务
  • FTP服务
  • Apache服务
  • CentOS7
  • Dokcer
  • Gitlab
  • 源码安装
  • Hadoop
  • 集群
  • Centos6.8
  • 文件共享
  • Haproxy
  • 存储系统
  • 高可用
  • 负载均衡
  • 编程
  • 程序员
  • LAMP
  • LNMP
  • WEB服务器
  • 博客
  • 编译
  • 内核
  • Linux命令
  • Linux基础
  • 笔记
  • 分布式系统
  • NFS
  • 认证服务
  • NIS
  • Nagios
  • 监控
  • 存储
  • RAID
  • WEB架构
  • 远程连接
  • SSH
  • Zabbix
  • 自动化
  • saltstack
  • cobbler
  • Centos7
  • ELKstack
  • Elasticsearch
  • Logstash
  • Heartbeat
  • MySQL
  • Nginx
  • puppet
  • markdown
  • 跨平台
  • Linux服务
  • 大学
  • 版权声明
  • STM32
  • 嵌入式
  • 邮件服务
  • 汉化
  • 网卡错误
  • 虚拟机
  • 分布式存储
  • Corosync
  • Pacemaker
  • DRBD
  • MooseFS

    缺失模块。
    1、在博客根目录(注意不是yilia根目录)执行以下命令:
    npm i hexo-generator-json-content --save

    2、在根目录_config.yml里添加配置:

      jsonContent:
        meta: false
        pages: false
        posts:
          title: true
          date: true
          path: true
          text: true
          raw: false
          content: false
          slug: false
          updated: false
          comments: false
          link: false
          permalink: false
          excerpt: false
          categories: false
          tags: true
    

  • 阿里云
  • 鸿鹄论坛
  • 百度云搜索
  • Github搜索
  • PDF转换软件
  • TI公司WEBENCH
  • powershell教程
  • 七牛云
  • 有道云笔记
  • HTML5
  • 小马运维博客
  • 运维知识体系架构图
  • 云栖社区
  • ChinaUnix
<br>热爱技术<br>热爱开源<br> 2017年<br>