企业网络管理——Postfix邮件系统

2024-01-27 18:59

本文主要是介绍企业网络管理——Postfix邮件系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.简介

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

Postfix 是一种电子邮件服务器,它是由任职于IBM华生研究中心(T.J. Watson Research Center)的荷兰籍研究员Wietse Venema为了改良sendmail邮件服务器而产生的。最早在1990年代晚期出现,是一个开放源代码的软件。

特点介绍

1. postfix是免费的:postfix想要作用的范围是广大的Internet用户,试图影响大多数的Internet上的电子邮件系统,因此它是免费的。

2. 更快:postfix在性能上大约比sendmail快三倍。一部运行postfix的台式PC每天可以收发上百万封邮件。

3. 兼容性好:postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。

4. 更健壮:postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加。

5. 更灵活:postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。

6. 安全性postfix具有多层防御结构,可以有效地抵御恶意入侵者。如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。

结构

postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。某一个特定的进程可以为其他进程提供特定的服务。

大多数的postfix进程由一个进程统一进行管理,该进程负责在需要的时候调用其他进程,这个管理进程就是master进程。该进程也是一个后台程序。

这些postfix进程是可以配置的,我们可以配置每个进程运行的数目,可重用的次数,生存的时间等等。通过灵活的配置特性可以使整个系统的运行成本大大降低。

1.2.1 postfix的邮件队列(mail queues)

postfix有四种不同的邮件队列,并且由队列管理进程统一进行管理:

1. maildrop:本地邮件放置在maildrop中,同时也被拷贝到incoming中。

2. incoming:放置正在到达或队列管理进程尚未发现的邮件。

3. active:放置队列管理进程已经打开了并正准备投递的邮件,该队列有长度的限制。

4. deferred:放置不能被投递的邮件。

队列管理进程仅仅在内存中保留active队列,并且对该队列的长度进行限制,这样做的目的是为了避免进程运行内存超过系统的可用内存。

1.2.2 postfix对邮件风暴的处理

当有新的邮件到达时,postfix进行初始化,初始化时postfix同时只接受两个并发的连接请求。当邮件投递成功后,可以同时接受的并发连接的数目就会缓慢地增长至一个可以配置的值。当然,如果这时系统的消耗已到达系统不能承受的负载就会停止增长。还有一种情况时,如果postfix在处理邮件过程中遇到了问题,则该值会开始降低。

当接收到的新邮件的数量超过postfix的投递能力时,postfix会暂时停止投递deferred队列中的邮件而去处理新接收到的邮件。这是因为处理新邮件的延迟要小于处理deferred队列中的邮件。Postfix会在空闲时处理deferred中的邮件。

1.2.3 postfix对无法投递的邮件的处理

当一封邮件第一次不能成功投递时,postfix会给该邮件贴上一个将来的时间邮票。邮件队列管理程序会忽略贴有将来时间邮票的邮件。时间邮票到期时,postfix会尝试再对该邮件进行一次投递,如果这次投递再次失败,postfix就给该邮件贴上一个两倍于上次时[间邮票的时间邮票,等时间邮票到期时再次进行投递,依此类推。当然,经过一定次数的尝试之后,postfix会放弃]对该邮件的投递,返回一个错误信息给该邮件的发件人。

1.2.4 postfix对不可到达的目的地邮件的处理

postfix会在内存中保存一个有长度限制的当前不可到达的地址列表。这样就避免了对那些目的地为当前不可到达地址的邮件的投递尝试。从而大大提高了系统的性能。

1.2.5 postfix的安全性

postfix通过一系列的措施来提高系统的安全性,这些措施包括:

1. 动态分配内存,从而防止系统缓冲区溢出;

2. 把大邮件分割成几块进行处理,投递时再重组;

3. Postfix的各种进程不在其他用户进程的控制之下运行,而是运行在驻留主进程master的控制之下,与其他用户进程无父子关系,所以有很好的绝缘性。

4. Postfix的队列文件有其特殊的格式,只能被postfix本身识别;

处理过程

2.1 接收邮件的过程

当postfix接收到一封新邮件时,新邮件首选在incoming队列处停留,然后针对不同的情况进行不同的处理:

1.对于来自于本地的邮件:local进程负责接收来自本地的邮件放在maildrop队列中,然后pickup进程对maildrop中的邮件进行完整性检测。maildrop目录的权限必须设置为某一用户不能删除其他用户的邮件。

2.对于来自于网络的邮件:smtpd进程负责接收来自于网络的邮件,并且进行安全性检测。可以通过UCE(unsolicited commercial email)控制smtpd的行为。

3.由postfix进程产生的邮件:这是为了将不可投递的信息返回给发件人。这些邮件是由bounce后台程序产生的。

5. 由postfix自己产生的邮件:提示postmaster(也即postfix管理员)postfix运行过程中出现的问题。(如SMTP协议问题,违反UCE规则的记录等等。)

关于cleanup后台程序的说明:cleanup是对新邮件进行处理的最后一道工序,它对新邮件进行以下的处理:添加信头中丢失的Form信息;为将地址重写成标准的user@fully.qualified.domain格式进行排列;从信头中抽出收件人的地址;将邮件投入incoming队列中,并请求邮件队列管理进程处理该邮件;请求trivial-rewrite进程将地址转换成标准的user@fully.qualified.domain格式。

2.2 投递邮件的过程

新邮件一旦到达incoming队列,下一步就是开始投递邮件,postfix投递邮件时的处理过程。相关的说明如下:

邮件队列管理进程是整个postfix邮件系统的心脏。它和local、smtp、pipe等投递代理相联系,将包含有队列文件路径信息、邮件发件人地址、邮件收件人地址的投递请求发送给投递代理。队列管理进程维护着一个deferred队列,那些无法投递的邮件被投递到该队列中。除此之外,队列管理进程还维护着一个active队列,该队列中的邮件数目是有限制的,这是为了防止在负载太大时内存溢出。邮件队列管理程序还负责将收件人地址在relocated表中列出的邮件返回给发件人,该表包含无效的收件人地址。

如果邮件队列管理进程请求,rewrite后台程序对收件人地址进行解析。但是缺省地,rewrite只对邮件收件人是本地的还是远程的进行区别。

如果邮件对你管理进程请求,bounce后台程序可以生成一个邮件不可投递的报告。

本地投递代理local进程可以理解类似UNIX风格的邮箱,sendmail风格的系统别名数据库和sendmail风格的.forward文件。可以同时运行多个local进程,但是对同一个用户的并发投递进程数目是有限制的。你可以配置local将邮件投递到用户的宿主目录,也可以配置local将邮件发送给一个外部命令,如流行的本地投递代理procmail。在流行的linux发行版本RedHat中,我们就使用procmail作为最终的本地投递代理。

远程投递代理SMTP进程根据收件人地址查询一个SMTP服务器列表,按照顺序连接每一个SMTP服务器,根据性能对该表进行排序。在系统负载太大时,可以有数个并发的SMTP进程同时运行。

pipe是postfix调用外部命令处理邮件的机制.

2.本章内容

Postfix邮件系统

1.电子邮件系统基础

(1)邮件系统角色、邮件协议

(2)常见的邮件服务器软件

2.Postfix邮件服务基础

(1)编译安装及服务控制

(2)主要目录和配置文件

3.邮件服务器基本构建

(1)配置SMTP发信服务

(2)配置POP/IMAP收信服务

(3)测试发信、收信功能

3.实验

1.准备工作

确认bind服务已安装好,设置本机为邮件服务器

主机:ns1.tyj.com,将它设为邮件服务器MX.

添加到正向(A记录)和反向(PTR)记录

关防火墙:systemctl stop firewalld

关SElinux:setenforce 0

若bind工作不正常,请 ll /var/named,找到系统文件named.localhost,参考其权限设置自己的区域文件。 即:chgrp named  /var/naemd/你的正向区域文件名        chgrp named  /var/naemd/你的反向区域文件名

2. 启动服务:systemctl start named 确认dns服务器是自己ip: cat /etc/resolv.conf    nameserver 自己虚拟机IP  确认正、反向域名可以解析    nslookup ns1.tyj.com    nslookup 192.168.0.108

 3.设置main.cf,并启动服务(先备份cp /etc/postfix/main.cf /etc/postfix/main.cf.bak)

 

4.添加邮箱账号    

useradd xiaoqi  

 useradd lisi    

passwd xiaoqi (密码为123456)    

passwd lisi (密码为123456)

安装telnet工具(将dns改为10.88.87.88)    

yum -y install telnet-server    

yum -y install telnet    

yum -y install xinetd (将dns改为虚拟机ip) 

 5.SMTP发送邮件测试3-2019-10.17

 

 

6.用mail或mailx命令发送邮件    

a.安装mailx组件  

yum -y install mailx      

b.将文本输出给邮件      

ls /cat/…  |  mail  lisi@tyj.com      

如ls |  mail  lisi@tyj.com      

c.查看账户邮件      

ls -lh /home/lisi/Maildir/new/      

cat /home/lisi/Maildir/new/…

7.查询是否已安装dovecot软件

rpm -q devocot  

官方站点:http://www.dovecot.org

安装devocot 运行用户

解包、配置、编译及安装 

yum –y install dovecot

 8.编辑配置文件,注意确认有如下红色部分,并启动服务

 

9.POP3接收邮件测试 

 

 10.设置物理机IP,添加了1个DNS地址,这个地址就是你的虚拟机IP

11.安装FOXMAIL 7.2邮件客户端并设置账号 

12.设置邮件服务器地址 

13.发送邮件测试(用xiaoqi的账号给它自己发一封信 

 14.接收邮件测试

 

这篇关于企业网络管理——Postfix邮件系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/651193

相关文章

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

企业安全之WiFi篇

很多的公司都没有安全团队,只有运维来负责整个公司的安全,从而安全问题也大打折扣。我最近一直在给各个公司做安全检测,就把自己的心得写下来,有什么不足之处还望补充。 0×01  无线安全 很多的公司都有不怎么注重公司的无线电安全,有钱的公司买设备,没钱的公司搞人力。但是人的技术在好,没有设备的辅助,人力在牛逼也没有个卵用。一个好的路由器、交换机、IDS就像你装备了 无尽、狂徒、杀人书一

研究人员在RSA大会上演示利用恶意JPEG图片入侵企业内网

安全研究人员Marcus Murray在正在旧金山举行的RSA大会上公布了一种利用恶意JPEG图片入侵企业网络内部Windows服务器的新方法。  攻击流程及漏洞分析 最近,安全专家兼渗透测试员Marcus Murray发现了一种利用恶意JPEG图片来攻击Windows服务器的新方法,利用该方法还可以在目标网络中进行特权提升。几天前,在旧金山举行的RSA大会上,该Marcus现场展示了攻击流程,

企业大模型落地的“最后一公里”攻略

一、大模型落地的行业现状与前景 大模型在多个行业展现出强大的应用潜力。在金融行业,沉淀了大量高质量数据,各金融平台用户数以亿计,交易数据浩如烟海。利用大模型分析处理这些数据,金融机构可以预测用户行为偏好,更高效、准确评估客户风险,实时监测交易和市场波动,及时制定策略。IDC 调研显示,超半数的金融机构计划在 2023 年投资生成式人工智能技术。 在科技领域,商汤人工智能大装置为大模型企业提

MES系统如何支持企业进行数字化转型

MES系统(Manufacturing Execution System,制造执行系统)在企业数字化转型中扮演着至关重要的角色,它通过提供实时的生产数据、优化生产流程、提升质量管理水平、实现设备智能化管理以及促进企业内部协同和沟通等多种方式,支持企业实现全面的数字化转型。以下是MES系统如何支持企业进行数字化转型的详细分析:   一、提供实时生产数据与决策支持 MES系统能够实时采集生产过程

数字经济时代,零售企业如何实现以消费者为中心的数字化转型?

在数字经济时代,零售企业正面临着前所未有的挑战与机遇。随着消费者行为的数字化和多样化,传统的零售模式已难以满足市场需求。为了在激烈的市场竞争中立于不败之地,零售企业必须实现以消费者为中心的数字化转型。这一转型不仅仅是技术的升级,更是一场涉及企业战略、组织结构、运营模式和人才管理的深刻变革。本文将探讨零售企业在数字化转型过程中遇到的难点,并提出相应的解决策略,通过实际案例分析,展示如何通过综合措施进

真实案例分享:零售企业如何避免销售数据的无效分析?

在零售业务的数据分析中,无效分析不仅浪费时间和资源,还可能导致错误的决策。为了避免这种情况,企业必须采取策略来确保他们的数据分析工作能够产生实际的商业价值。本文将通过行业内真实的案例,探讨零售企业如何通过精心设计的数据策略和分析方法,借助商业智能BI工具,避免销售数据的无效分析,确保每一次分析都能为业务增长提供有力的支持。 文章中提到的BI数据分析工具分享给大家—— https://s.fan

亿发:中小型制造企业数字化转型典型场景、痛点、解决方案

随着全球制造业的不断发展,中小型制造企业正面临前所未有的挑战和机遇。数字化转型成为了企业提升竞争力、优化生产效率、应对市场变化的关键路径。然而,对于资源相对有限的中小型制造企业而言,数字化转型并非易事。他们在推进转型的过程中往往遇到许多典型场景和痛点。本文将分析这些场景及痛点,并给出针对性的解决方案,帮助中小制造企业成功迈向数字化。 场景一:生产计划与调度的复杂性 典型场景: 在生产过程

企业网银登录提示请确认您已插入工商银行U盾证书的解决方法

昨天受人之托帮小企业财务解决上网银的问题 因为不是专业做这个的,所以只能安装“常识”行事,但结果实在是令人意想不到。 排错的步骤: 同一台电脑上尝试不同浏览器,发现360浏览器的接受度相当普遍;给U盾换不同的连接线;在不同的电脑上安装银行的插件,再重复上面的步骤1和步骤2;最终的结果,在一台电脑上可以走到下一步,但时好时坏,无法解决问题;到知乎上找答案,在一篇说明里有提到定制的qq浏览器,最后

java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频)

这是什么系统? 获取资料方式在最下方 java计算机毕设课设—企业员工信息管理系统(附源码、文章、相关截图、部署视频) 企业员工信息管理系统旨在为公司提供高效的员工信息管理解决方案。该系统的核心功能涵盖密码修改、员工管理、部门管理、出勤管理、工资管理、请假审核等方面,帮助企业优化人力资源管理流程。系统结构如下: (1)前端(员工端): 1.密码修改:员工可以修改自己的密码,提升账户的安全