当前位置:文档之家› postfix邮件服务器配置文档

postfix邮件服务器配置文档

postfix邮件服务器配置文档
postfix邮件服务器配置文档

一、一、 postfix postfix 概述概述

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

1.1 postfix 的特点

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 程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。

1.2 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.2 postfix 的安全性

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

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

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

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

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

二、二、 postfix postfix 对邮件的处理过程对邮件的处理过程

2.1 接收邮件的过程

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

1.对于来自于本地的邮件:sendmail 进程负责接收来自本地的邮件放在

maildrop 队列中,然后pickup 进程对maildrop 中的邮件进行完整性检测。maildrop 目录的权限必须设置为某一用户不能删除其他用户的邮件。

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

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

4. 由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 是用于UUCP 协议的投递代理。

三、三、 postfix postfix 的安装过程的安装过程

3.1源代码包的安装

1. 获取postfix的源代码包

从postfix官方站点https://www.doczj.com/doc/698868752.html,取得postfix的源代码包

postfix-19991231-pl08.tar.gz。将其拷贝到/tmp

2.解开源代码包,将生成/tmp/ postfix-19991231-pl08目录。

tar xvzf postfix-19991231-pl08.tar.gz

3.编译源代码包

cd /tmp/ postfix-19991231-pl08

make

4.建立一个新用户“postfix”,该用户必须具有唯一的用户id和组id 号,同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用的用户宿主目录。我们可以先用adduser postfix 添加用户再编辑/etc/passwd文件中的相关条目如下所示:

postfix:*:12345:12345:postfix:/no/where:/no/shell

5.确定/etc/aliases文件中包含如下的条目:

postfix: root

6. 以root用户登录,在/tmp/ postfix-19991231-pl08目录下执行命令:./INSTALL.sh

7. 启动postfix

# postfix start

8.关于maildrop目录权限的说明:

postfix可以使用一个所有用户都可写的(也即目录权限为1773)的maildrop

目录来让本地用户提交邮件。这种方法避免了使用set-uid 或 set-gid 软件,并且在邮件系统不可用时,用户仍然可以提交邮件。其他用户没有访问该目录中的队列文件的权限。接收来自网络的邮件时postfix不使用maildrop目录。但是,由于该目录的权限是733,其他用户可以建立一个硬连接到该目录中的文件从而导致该邮件被投递多次或无法删除,也就是说这将导致安全性问题。如果你想要使用这种方式来让用户提交邮件,就要在INSTALL.sh 脚本问你是否需要set-gid 时回答no。

如果你的系统有多个用户的话,最好取消以上的方式而采用利用set-gid 用户权限提交邮件的方式。这时,我们首先需要建立一个组id唯一的组"maildrop" 并且确定该组中没有用户成员。然后在INSTALL.sh 问你是否需要set-gid 时指定"maildrop"。

提示:在安装postfix之前,请删除已经安装的sendmail。

3.2 rpm包的安装

1. 获取postfix的rpm软件包。

我们可以从http://www.alltrading.es/postfix/RPMS/i386/ 获得postfix的rpm软件包。当前的最新版本是postfix-20000531-2.i386.rpm。

2. 备份你的/etc/aliases和/etc/aliases.db,因为postfix要使用该别名数据库。

3. 用以下命令查看系统是否安装了sendmail:

[root@mail /root]# rpm -qa |grep sendmail

sendmail-doc-8.9.3-15

sendmail-8.9.3-15

sendmail-cf-8.9.3-15

4. 用以下命令强行卸载sendmail:

[root@mail /root]# rpm -e sendmail sendmail-cf sendmail-doc

--nodeps

5. 用以下命令杀死运行中的sendmail进程:

[root@mail /root]# killall sendmail

6. 安装postfix:

[root@mail /root]# rpm -Uvh postfix-20000531-2.i386.rpm

postfix ##################################################

postfix-script: warning: creating missing Postfix pid directory postfix-script: warning: creating missing Postfix incoming directory

postfix-script: warning: creating missing Postfix active directory

postfix-script: warning: creating missing Postfix bounce directory

postfix-script: warning: creating missing Postfix defer directory

postfix-script: warning: creating missing Postfix deferred directory

postfix-script: warning: creating missing Postfix saved directory

postfix-script: warning: creating missing Postfix corrupt directory

postfix-script: warning: creating missing Postfix public directory

postfix-script: warning: creating missing Postfix private directory

[root@mail /root]#

7. 启动postfix

[root@mail /root]# /etc/rc.d/init.d/postfix start

3.3 配置系统每次启动时自动启动postfix

1.如果你安装的是postfix的源代码包,可以在/etc/rc.d/rc.local文件

中加入如下的语句让系统每次启动时自动启动postfix:

if [ -f /usr/libexec/postfix ]; then

/usr/libexec/postfix start

fi

2.如果你安装的是postfix的rpm包,可以通过setup命令来设置在系统启动时启动postfix。

四、四、 postfix postfix 的配置详解的配置详解

4.1 postfix 的配置文件结构

postfix 的配置文件位于/etc/postfix 下,安装完postfix 以后,我们可以通过ls 命令查看postfix 的配置文件:

[root@mail postfix]# ls

install.cf main.cf master.cf postfix-script

这四个文件就是postfix 最基本的配置文件,它们的区别在于: mail.cf:是postfix 主要的配置文件。

Install.cf:包含安装过程中安装程序产生的postfix 初始化设置。 master.cf:是postfix 的master 进程的配置文件,该文件中的每一行都是用来配置postfix 的组件进程的运行方式。

postfix-script:包装了一些postfix 命令,以便我们在linux 环境中安全地执行这些postfix 命令。

4.2 postfix 的基本配置

postfix 大约有100个配置参数,这些参数都可以通过main.cf 指定。配置的格式是这样的,用等号连接参数和参数的值。如:

myhostname = https://www.doczj.com/doc/698868752.html,

等号的左边是参数的名称,等号的右边是参数的值; 当然,我们也可以在参数的前面加上$来引用该参数,如:

myorigin = $myhostname

虽然postfix 有100个左右的参数,但是postfix 为大多数的参数都设置了缺省值,所以在让postfix 正常为你服务之前,你只需要配置为数不多的几个参数。下面我们一起来看一看这些基本的postfix 参数。需要注意的是,一旦你更改了main.cf 文件的内容,则必须运行postfix reload 命令使其生效。

1. myorigin

myorigin 参数指明发件人所在的域名。如果你的用户的邮件地址为

user@https://www.doczj.com/doc/698868752.html,,则该参数指定@后面的域名。缺省地,postfix 使用本地主机名作为myorigin,但是建议你最好使用你的域名,因为这样更具有可读性。比如:安装postfix 的主机为https://www.doczj.com/doc/698868752.html, 则我们可以这样指定myorigin: myorigin = https://www.doczj.com/doc/698868752.html,

当然我们也可以引用其他参数,如:

myorigin = $mydomain

2. mydestination

mydestination 参数指定postfix 接收邮件时收件人的域名,换句话说,也就

是你的postfix 系统要接收什么样的邮件。比如:你的用户的邮件地址为user@https://www.doczj.com/doc/698868752.html,, 也就是你的域为https://www.doczj.com/doc/698868752.html,, 则你就需要接收所有收件人为user_name@https://www.doczj.com/doc/698868752.html, 的邮件。与myorigin 一样,缺省地,postfix 使用本地主机名作为mydestination。如:

mydestination = $mydomain

mydestination = https://www.doczj.com/doc/698868752.html,

3. notify_classes

在postfix系统中,必须指定一个postfix系统管理员的别名指向一个用户,只有这样,在用户遇到问题时才有报告的对象,postfix也才能将系统的问题报告给管理员。notify_classes参数就是用来指定向postfix管理员报告错误时的信息级别。共有以下几种级别:

bounce:将不可以投递的邮件的拷贝发送给postfix管理员。出于个人隐私的缘故,该邮件的拷贝不包含信头。

2bounce:将两次不可投递的邮件拷贝发送给postfix管理员。

delay:将邮件的投递延迟信息发送给管理员,仅仅包含信头。

policy:将由于UCE规则限制而被拒绝的用户请求发送给postfix管理员,包含整个SMTP会话的内容。

protocol:将协议的错误信息或用户企图执行不支持的命令的记录发送给postfix管理员。同样包含整个SMTP会话的内容。

resource:将由于资源错误而不可投递的错误信息发送给postfix管理员,比如:队列文件写错误等等。

software:将由于软件错误而导致不可投递的错误信息发送给postfix管理员。

缺省值为:

notify_classes = resource, software

4.myhostname

myhostname 参数指定运行postfix邮件系统的主机的主机名。缺省地,该值被设定为本地机器名。你也可以指定该值,需要注意的是,要指定完整的主机名。如:

myhostname = https://www.doczj.com/doc/698868752.html,

5.mydomain

mydomain参数指定你的域名,缺省地,postfix将myhostname的第一部分删除而作为mydomain的值。你也可以自己指定该值,如:

mydomain = https://www.doczj.com/doc/698868752.html,

6.mynetworks

mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问。你可以用标准的A、B、C类网络地址,也可以用CIDR(无类域间路由)地址来表示,如:

192.168.1.0/24

192.168.1.0/26

7.inet_interfaces

inet_interfaces 参数指定postfix系统监听的网络接口。缺省地,postfix监听

所有的网络接口。如果你的postfix运行在一个虚拟的ip地址上,则必须指定其监听的地址。如:

inet_interfaces = all

inet_interface = 192.168.1.1

4.3 postfix的UCE(unsolicited commercial email)控制

所谓UCE控制就是指控制postfix接收或转发来自于什么地方的邮件。

缺省地,postfix转发符合以下条件的邮件:

* 来自客户端ip地址符合$mynetworks的邮件。

* 来自客户端主机名符合$relay_domains及其子域的邮件。

* 目的地为$relay_domains及其子域的邮件。

缺省地,postfix接受符合以下条件的邮件:

* 目的地为$inet_interfaces的邮件。

* 目的地为$mydestination的邮件。

* 目的地为$virtual_maps的邮件。

但是我们也可以通过下面的规则来实现更强大的控制功能。

1. 信头过滤

通过header_checks参数限制接收邮件的信头的格式,如果符合指定的格式,则拒绝接收该邮件。可以指定一个或多个查询列表,如果新邮件的信头符合列表中的某一项则拒绝该接收邮件。如:

header_checks = regexp:/etc/postfix/header_checks

header_checks = pcre:/etc/postfix/header_checks

缺省地,postfix不进行信头过滤。

2.客户端主机名/地址限制

通过smtpd_client_restrictions参数限制可以向postfix发起SMTP 连接的客户端的主机名或ip地址。可以指定一个或多个参数值,中间用逗号隔开。限制规则是按照查询的顺序进行的,第一条符合条件的规则被执行。可用的规则有:

reject_unknown_client:如果客户端的ip地址在DNS中没有PTR记录则拒绝转发该客户端的连接请求。可以用unknown_client_reject_code参数指定返回给客户机的错误代码(缺省为450)。如果你有用户没有作DNS记录则不要启用该选项。

permit_mynetworks:如果客户端的ip地址符合$mynetworks参数定义的范围则接受该客户端的连接请求,并转发该邮件。

check_client_access maptype:mapname:根据客户端的主机名、父域名、ip地址或属于的网络搜索access数据库。如果搜索的结果为REJECT 或者 "[45]XX text" 则拒绝该客户端的连接请求;如果搜索的结果为OK、RELAY 或

数字则接受该客户端的连接请求,并转发该邮件。。可以用

access_map_reject_code参数指定返回给客户机的错误代码(缺省为554)。

reject_maps_rbl:如果客户端的网络地址符合$maps_rbl_domains参数的

值则拒绝该客户端的连接请求。可以用maps_rbl_reject_code参数指定返回给客户机的错误代码(缺省为554)。

示例:

smtpd_client_restrictions = hash:/etc/postfix/access,

reject_maps_rbl

smtpd_client_restrictions = permit_mynetworks,

reject_unknown_client

该参数的缺省值为:

smtpd_client_restrictions =

也即接收来自任何客户端的SMTP连接。

3. 是否请求HELO命令

可以通过smtpd_helo_required参数指定客户端在SMTP会话的开始是否发 送一个HELO命令。你可以指定该参数的值为yes或no。缺省值为:

smtpd_helo_required = no

4. HELO主机名限制

可以通过smtpd_helo_restrictions参数指定客户端在执行HELO命令时发送

给postfix的主机名。缺省地,postfix接收客户端发送的任意形式的主机名。可以指定一个或多个参数值,中间用逗号隔开。限制规则是按照查询的顺序进行的,第一条符合条件的规则被执行。可用的规则有:

reject_invalid_hostname:如果HELO命令所带的主机名参数不符合语法规范则拒绝客户机的连接请求。可以用invalid_hostname_reject_code参数指定返回给客户机的错误代码(缺省为501)。

permit_naked_ip_address:RFC要求客户端的HELO命令包含的ip地址放

在方括号内,你可以用permit_naked_ip_address参数取消该限制。因为有的mail客户端不遵守该RFC的规定。

reject_unknown_hostname:如果客户端执行HELO命令时的主机名在DNS

中没有相应的A 或 MX 记录则拒绝该客户端的连接请求。可以用

invalid_hostname_reject_code参数指定返回给客户机的错误代码(缺省为450)。

reject_non_fqdn_hostname:如果客户端执行HELO命令时的主机名不是RFC 规定的完整的域名则拒绝客户端的连接请求。可以用

invalid_hostname_reject_code参数指定返回给客户机的错误代码(缺省为504)。

check_helo_access maptype:mapname:根据客户端HELO的主机名、父域名搜索access数据库。如果搜索的结果为REJECT 或者 "[45]XX text" 则拒绝该客户端的连接请求;如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。可以用access_map_reject_code参数指定返回给客户机的错误代码(缺省为554)。

示例:

smtpd_helo_restrictions = permit_mynetworks,

reject_invalid_hostname

5. RFC 821信头限制

RFC 821对邮件的信头做了严格的规定,但是广泛使用的sendmail并不支 持该规定,所以对于该参数我们只能说不,即:

strict_rfc821_envelopes = no

6. 通过发件人地址进行限制

可以用smtpd_sender_restrictions参数通过发件人在执行MAIL FROM命令时提供的地址进行限制。可以指定一个或多个参数值,中间用逗号隔开。限制规则是按照查询的顺序进行的,第一条符合条件的规则被执行。可用的规则有:

reject_unknown_sender_domain:如果MAIL FROM命令提供的主机名在DNS 中没有相应的A 或 MX 记录则拒绝该客户端的连接请求。可以用

unknown_address_reject_code参数指定返回给客户机的错误代码(缺省为450)。

check_sender_access maptype:mapname:根据MAIL FROM命令提供的主机名、父域搜索access数据库。如果搜索的结果为REJECT 或者 "[45]XX text" 则拒绝该客户端的连接请求;如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。可以用access_map_reject_code参数指定返回给客户机的错误代码(缺省为554)。可以通过该参数过滤来自某些不受欢迎的发件人的邮件。

reject_non_fqdn_sender:如果MAIL FROM命令提供的主机名不是RFC规定的完整的域名则拒绝客户端的连接请求。可以用non_fqdn_reject_code 参数指定返回给客户机的错误代码(缺省为504)。

缺省地,postfix接受来自任何发件人的邮件。

示例:

smtpd_sender_restrictions = hash:/etc/postfix/access,

reject_unknown_sender_domain

7. 通过收件人地址进行过滤

可以用smtpd_recipient_restrictions参数通过发件人在执行RCPT TO命

时提供的地址进行限制。缺省值为:

smtpd_recipient_restrictions = permit_mynetworks,

check_relay_domains

可以指定一个或多个参数值,中间用逗号隔开。限制规则是按照查询的顺序

进行的,第一条符合条件的规则被执行。可用的规则有:

check_relay_domains:如果符合以下的条件,则接受SMTP连接请求,否则拒绝该连接,可以用relay_domains_reject_code 参数指定返回给客户机的错误代码(缺省为504)。

* 客户端主机名符合$relay_domains及其子域

* 目的地为$inet_interfaces、$mydestination或$virtual_maps

permit_auth_destination:不管客户端的主机名,只要符合以下的条件,就

接受SMTP连接请求:

* 解析后的目标地址符合$relay_domains及其子域

* 解析后的目标地址符合$inet_interfaces、$mydestination或

$virtual_maps

reject_unauth_destination:不管客户端的主机名,只要符合以下的条件,就拒绝该客户端SMTP连接请求:

* 解析后的目标地址符合$relay_domains及其子域

* 解析后的目标地址符合$inet_interfaces、$mydestination或

$virtual_maps

check_recipient_access:根据解析后的目标地址、父域搜索access数据库。如果搜索的结果为REJECT 或者 "[45]XX text" 则拒绝该客户端的连接请求;如果搜索的结果为OK、RELAY 或数字则接受该客户端的连接请求。可以用access_map_reject_code参数指定返回给客户机的错误代码(缺省为554)。

reject_unknown_recipient_domain:如果收件人的邮件地址在DNS中没有相应的A 或 MX 记录则拒绝该客户端的连接请求。可以用

unknown_address_reject_code参数指定返回给客户机的错误代码(缺省为450)。

reject_non_fqdn_recipient:如果发件人在执行RCPT TO命令时提供的地址

不是完整的域名则拒绝其SMTP连接请求。可以用The

non_fqdn_reject_code参数指定返回给客户机的错误代码(缺省为504)。

4.4 posftfix的性能控制

之所以对postfix的性能进行控制,是为了在遇到邮件风暴时保证postfix 可以正常运行。通常,我们可以通过对下列postfix参数的配置来调节postfix

的性能,这些参数都是通过mail.cf配置文件进行配置的,修改以后不要忘了运行postfix reload命令来使配置生效。

1. 进程数限制

可以通过default_process_limit 参数来控制postfix系统同时可以运行

的最

大进程数目。缺省值是50个。

2. 对同一目标主机的并发连接限制

当向同一目标主机发出SMTP连接时,postfix初始化发出两个SMTP连接,如果投递成功则增加并发的SMTP连接数目,遇到拥塞时又减少并发连接的数目。postfix中通过以下的参数对同一目标主机的并发连接进行控制: * initial_destination_concurrency:控制对同一目标主机的初始化并发连接数目。缺省值为2。

* default_destination_concurrency_limit:控制初始化连接后对同一目标主机的最大并发连接数目。缺省值为10。

* local_destination_concurrency_limit:控制对同一本地收件人的最大同时投递的邮件数目。缺省值为2,因为对本地同一收件人投递邮件时投递工作只能一个接一个的进行,所以设得在大也没用。

3. 对同一封邮件的收件人数目限制

通过default_destination_recipient_limit参数来控制postfix的投递代理(如

smtp进程)可以将同一封邮件发送给多少个收件人。缺省值为50。也可以用明确指出该投递代理的参数来覆盖该缺省值。如用smtpd_recipient_limit

来指定smtp投递代理可以将同一封邮件发送给多少个收件人,该参数的缺省值为1000。

4. 推迟投递控制

通过defer_transports参数,我们可以推迟投递该参数指定的邮件直到postfix明确的提出投递要求。下面我们看一个例子:

有一个小型的局域网,用户都将邮件发送给局域网内部的一台postfix

邮件服务器,然后通过在该服务器上拨号将邮件发送出去。这时我们可以这样指定该参数的值:

defer_transports = smtp

该语句表示postfix推迟投递所有的邮件直到执行sendmail -q命令,这样 我们就可以在ppp的脚本中加上sendmail -q,以便在拨号成功后让postfix 开始投递邮件。

5. 关于延迟邮件的再投递控制

可以通过以下的几个参数实现对延迟邮件的再投递控制:

queue_run_delay:设置队列管理进行扫描deferred邮件队列的频率,缺省值为1000秒。

maximal_queue_lifetime:设置postfix在放弃投递而返回不可投递信息前,被延迟邮件再deferred邮件队列中的生存时间。

minimal_backoff_time:当一封邮件投递失败后,邮件队列将在一段时间内忽视该邮件的存在,也就是我们前面讲的时间邮票。该参数就是用来设置最小的时间邮票。缺省值为1000秒。

maximal_backoff_time:设置最大的时间邮票。

6. 对拒绝服务攻击的处理

postfix对每一个SMTP会话都设置一个错误计数器,当该客户端的请求未 被接受或违反那UCE规则时,该计数器就增1。随着计数器的增加,postfix 将采取不同的措施来防止恶意用户的拒绝服务攻击。

smtpd_error_sleep_time:当该错误计数器的值还很小时,postfix将暂停 smtpd_error_sleep_time指定的时间,然后向客户端报告一个错误。该参

数的缺省值为5秒。

smtpd_soft_error_limit:当错误计数器的值超过该参数指定的值时,postfix在响应该客户端请求前将沉睡一段时间。缺省值为10。

smtpd_hard_error_limit:当错误计数器的值超过该参数指定的值时,postfix

中断同该客户端的连接。缺省值为100。

4.5 postfix对使用资源的控制

通过特定的postfix配置参数,我们可以实现postfix运行时对所消耗的资源的灵活控制。可以通过以下几个方面来控制postfix消耗的资源:

1. 限制内存中的对象的大小

要控制对内存资源的消耗,必须控制内存中对象的大小。可以用以下的参数来进行对象大小的控制:

line_length_limit:控制读入数据时每一行的大小,如果太长则强行将其分割成更短的行,太长的行在投递时再重组。缺省值为2048 bytes。

header_size_limit:限制信头长度。缺省值为102400bytes。

message_size_limit:限制postfix队列文件的大小。缺省值为10240000 bytes。

queue_minfree:邮件队列中可用的空间大小。缺省为无限制。建议该值最好时message_size_limit的数倍以便于处理大邮件。

bounce_size_limit:限制某一邮件不可投递时,返回给发件人不可投递报告的大小,缺省值为50000 bytes。

2. 限制内存中对象的数目

qmgr_message_recipient_limit:设置内存中收件人地址的最大数目。缺省值为10000。

qmgr_message_active_limit:设置active邮件队列中邮件数目的最大值。缺省值为1000。

duplicate_filter_limit:设置需要local和cleanup后台程序记住的收件人地址的最大数目。缺省值为1000。

3.限制等待一个外部命令完成的时间

command_time_limit:设置local程序等待一个外部命令完成的时间。缺省值为1000秒。

4. 限制文件锁定的操作时间

deliver_lock_attempts:设置锁定一个文件的最大尝试次数。缺省值为5次。

deliver_lock_delay:设置如果锁定一个文件失败后再次尝试的等待时间,缺省值为1秒。

5. 控制错误恢复

在某些情况下(如高负载),postfix的某个进程可能会死掉,这时master 进

程会试图重新启动该进程,我们可以通过下面的参数来控制这种行为: fork_attempts:试图重启动一个进程的最大尝试次数。缺省值为5次。

fork_delay:每两次尝试之间的等待时间,缺省值为1秒。

transport_retry_time:队列管理进程每两次尝试连接一个不正常的投递代理进程之间的等待时间。缺省为60秒。

4.6 postfix中的地址操作

1. 将地址改写为标准格式

在cleanup进程进行表查询之前,它首选请求trivial-rewrite进程将新 邮件地址改写成标准的user@fully.qualified.domain格式。改写的目的是为了减少查询表中的条目,从而提供查询的效率。trivial-rewrite进程可以实现以下的地址改写:

* 将包含源路由信息的地址如@hosta,@hostb:user@site写成user@site,因为postfix不支持包含源路由信息的地址格式。

* 将形如user%domain的地址改写成user@domain的形式。该特性可通过allow_percent_hack参数进行控制,其缺省值为yes。

* 将只包含user的地址改写成user@$myorigin。该特性可通过

append_at_myorigin参数进行控制,其缺省值为yes。最好不要改动其缺省值,因为大多数的postfix进程更擅长处理地址形如user@$myorigin的邮件。

* 将形如user@host的地址改写成user@host.$mydomain。该特性可通过append_dot_mydomain参数进行控制,其缺省值为yes。

* 将形如user@site.的地址改写成 user@site,也即除去了最后的点号。

2. 规范地址映射

在cleanup进程将一封新邮件存入incoming邮件队列之前,cleanup进程 将根据查询规范表来进行地址改写,从而使之更具可读性。主要是替换形如https://www.doczj.com/doc/698868752.html,stname 风格的地址以及清除无效的域。缺省postfix是不进行规范地址改写的,你可以通过指定canonical_maps参数的值来使其生效。如: canonical_maps = hash:/etc/postfix/canonical

也可以分别为收件人和发件人地址分别指定不同的改写规范,这时参数sender_canonical_maps和recipient_canonical_maps的优先级比

canonical_maps 高。如:

sender_canonical_maps = hash:/etc/postfix/sender_canonical

recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

3. 地址欺骗

就是将形如user@host.domain 的地址改写成user@domain 或

user@other.domain,

好像是从其他的邮件服务器发出的一样。缺省该功能是被禁止的,可以用参数masquerade_domains 使其生效,如:

masquerade_domains = $mydomain

也可以通过masquerade_exceptions 参数对特定的用户不进行地址欺骗,如:

masquerade_exceptions = root

注意:地址欺骗只对发件人地址有作用。

4. 虚拟地址映射

在运用了规范地址映射和地址欺骗之后,cleanup 将使用虚拟表映射将邮件 重定向到所有的收件人。注意,该操作仅仅作用于信头上的收件人地址。这样,我们就可以将发送到虚拟域的邮件投递到真实用户的邮箱。系统的别名数据库同样可以起到相同的作用。缺省该功能是被禁止的,可以用参数virtual_maps 使其生效,如:

virtual_maps = hash:/etc/postfix/virtual

5. Relocated 数据库查询

Relocated 表格提供如何将邮件发送给在系统中没有帐号的用户。缺省该功能是被禁止的,可以用参数relocated_maps 使其生效,如:

relocated_maps = hash:/etc/postfix/relocated

6. 别名数据库查询

当邮件在本地投递时,local 投递代理进程会在别名数据库(linux 下为 /etc/aliases)中查询收件人的别名。该操作不会作用于邮件信头中的地址。可以用alias_maps 指定使用的别名数据库。缺省地,该功能是有效的,如: alias_maps = hash:/etc/aliases

可以通过alias_database 参数控制别名数据库的路径,如:

alias_database = hash:/etc/aliases

五、五、 postfix postfix 的配置实的配置实例例

5.1为拨号用户配置postfix

假设有一个小公司使用拨号上网,公司通过ISP 的SMTP 服务器(假设其域名为https://www.doczj.com/doc/698868752.html,,ip 地址为201.110.1.100)发送邮件;公司内部的员工通过公司的SMTP 服务器(运行postfix)收发邮件,下面我们一起来配置公司内部的SMTP 服务器。

1. 因为没有自己的固定ip 和域名,所以必须指定ISP 的SMTP 服务器作 为邮件网关(智能主机)。可以用如下的参数指定:

relayhost = [201.110.1.100]

注意:relayhost的值可以是domain、host、host:port、[address]或[address:port]。

2. 当接收到新邮件时,postfix就会尝试投递该邮件。如果将该公司内部的

SMTP服务器设置为按需拨号,也就是一有程序请求外联就拨号,则会增加上网的费用。这时我们可以通过postfix的defer_transports参数推迟投递新邮件直到postfix提出明确的要求,如指定:

defer_transports = smtp

这时如果我们在ppp的脚本(如/etc/ppp/ip-up.local)加上如下命令,则postfix只在拨号成功后投递新邮件:

/usr/sbin/sendmail

3. 因为我们是将邮件转发到邮件网关(201.110.1.100)而不是自己进行投

递,所以我们没有必要使用DNS,因此我们通过如下的参数取消DNS查询:disable_dns_lookups = yes

4. 为了保证我们能收到回信,我们必须进行域伪装。

masquerade_domains = https://www.doczj.com/doc/698868752.html,

下面就是我们的配置文件mail.cf:

#指定邮件网关

relayhost = [201.110.1.100]

# 在拨号成功后才投递邮件

defer_transports = smtp

#取消DNS查询

disable_dns_lookups = yes

#一般常规配置

queue_directory = /var/spool/postfix

program_directory = /usr/libexec/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

mail_owner = postfix

default_privs = nobody

mail_spool_directory = /var/spool/mail

mailbox_command = /usr/bin/procmail

local_destination_concurrency_limit = 2

default_destination_concurrency_limit = 10

debug_peer_level = 2

debugger_command=PATH=/usr/bin:/usr/X11R6/bin,xxgdb$

daemon_directory/$ process_name $process_id & sleep 5

# 假设本地网络为192.168.1.1/24

mynetworks = 192.168.1.1/24

# host specific information

myhostname = https://www.doczj.com/doc/698868752.html,

mydomain = https://www.doczj.com/doc/698868752.html,

myorigin = $mydomain

where do we receive mail and who do we accept/receive mail for?

inet_interfaces = all

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

default_transport = smtp

masquerade_domains = https://www.doczj.com/doc/698868752.html,

需要注意的是:这里的$mydomain、$myorigin、$mydestination不能为https://www.doczj.com/doc/698868752.html,, 因为你如果设定为https://www.doczj.com/doc/698868752.html,,内部SMTP服务器就会认为你的邮件是转发给它的,故而在本地尝试投递邮件,结果只会返回“unknown user”的错误。其次,该配置只实现了将邮件通过SMTP发送到ISP的SMTP服务器的手段,缺乏从ISP的邮件服务器取信的方法,这一点就只能通过如outlook或foxmail等的mail客户端软件来实现了。

5.2为中小型企业用户配置postfix

假设有一家数千名员工的公司,该公司通过租用专线上网。现在公司决定 通过postfix来建立自己的邮件系统。在这里我们假设该公司的域为https://www.doczj.com/doc/698868752.html,, 邮件服务器的域名https://www.doczj.com/doc/698868752.html,,地址为202.200.180.2,DNS服

务器的域名为https://www.doczj.com/doc/698868752.html,,地址为202.200.180.1。

1. 配置DNS服务器,设置MX记录指向https://www.doczj.com/doc/698868752.html,。相关的配置文件 为/var/named/https://www.doczj.com/doc/698868752.html,(假设其zone文件就叫https://www.doczj.com/doc/698868752.html,, 有关DNS配置的内容请参看本书的相关章节)的内容如下:

@ IN SOA https://www.doczj.com/doc/698868752.html,. https://www.doczj.com/doc/698868752.html, (

2000011307 ; serial

28800 ; refresh, seconds

14400 ; retry, seconds

3600000 ; expire, seconds

86400 ; minimum, seconds

@ IN NS https://www.doczj.com/doc/698868752.html,.

@ IN A 202.200.180.1

@ IN MX 10 https://www.doczj.com/doc/698868752.html,.

localhost IN A 127.0.0.1

dns IN A 202.200.180.1

mail IN A 202.200.180.2

host1 IN A 202.200.180.3

host2 IN A 202.200.180.4

2. 配置postfix,其配置文件及相关的解释如下:

#设置一般的路径信息

queue_directory = /var/spool/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

mail_spool_directory = /var/spool/mail

#设置邮件及邮件队列的所有者为postfix

mail_owner = postfix

#设置邮件服务器的主机名

myhostname = https://www.doczj.com/doc/698868752.html,

#设置mydomain、myorigin和mydomain参数

mydomain = https://www.doczj.com/doc/698868752.html,

myorigin =$mydomain

mydestination = $mydomain

#设置postfix服务监听的端口

inet_interfaces = all

#设置本地收件人的用户名查询手段,缺省是查询/etc/passwd文件 #和别名数据库

local_recipient_maps = $alias_maps unix:passwd.byname

alias_maps = hash:/etc/aliases

alias_database = hash:/etc/aliases

#设置最终的本地投递代理程序,在这里我们使用流行的procmail mailbox_command = /usr/bin/procmail

#设置该值为$mydomain以便客户端的连接

relay_domains = $mydomain

mynetworks = 202.200.180.0/24

#设置向用户显示的主机名和版本信息

smtpd_banner = $myhostname ESMTP $mail_name

#对于并发进程的限制,保持系统缺省值就可以满足要求了。

local_destination_concurrency_limit = 2

default_destination_concurrency_limit = 10

#如果你不知道你在做什么,最好不要改变下面的设置

debug_peer_level = 2

debugger_command =

PATH=/usr/bin:/usr/X11R6/bin

xxgdb $daemon_directory/$process_name $process_id & sleep 5

3. 在RedHat中我们通常使用imap作为pop3服务器,可以通过rpm -q imap 命令查看系统有没有安装imap。如果没有安装则插入linux光盘,用rpm -ivh imap-4.5-4.rpm 进行安装。

4. 缺省地,pop3服务器是由inet 启动的,所以必须去掉/etc/inetd.conf 文

件中有关pop3的一行注释。如下所示:

pop-3 stream tcp nowait root /usr/sbin/ipop3d ipop3d

5. 重新启动inet服务器,启动postfix:

#/etc/rc.d/init.d/inet restart

#postfix start

5.3在防火墙内部配置postfix

假设一公司通过租用专线上网,公司内部使用192.168.0.0的私有ip, 然后通过防火墙(双宿主主机)的ip欺骗上网,公司的邮件服务器

(https://www.doczj.com/doc/698868752.html,)也在内部网中,也使用私有ip。我们假设在防火墙上进行了端口转发,可以将Internet对防火墙25端口的请求包转发到内部的邮件服务器上,并且运行DNS服务的防火墙的MX记录指向防火墙本身。

在这个例子中,我想着重说明的是有关映射文件的用法。main.cf配置文件和相关的解释如下所示:

#表明自己的身份

myhostname = https://www.doczj.com/doc/698868752.html,

mydomain = https://www.doczj.com/doc/698868752.html,

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

myorigin = $mydomain

#让postfix监听所有接口

inet_interfaces = all

#通过mynetworks参数接受内部网用户的SMTP连接请求

mynetworks = 192.168.0.0/8

#向postfix管理员报告的信息量

notify_classes = resource, software, bounce, policy

#如果客户端的ip地址符合$maps_rbl_domains参数中列出的则拒绝之

maps_rbl_domains = https://www.doczj.com/doc/698868752.html,, https://www.doczj.com/doc/698868752.html,

#对可以连接的客户端进行严格的限制

smtpd_client_restrictions =

#客户端ip符合$mynetworks定义的范围则接受连接 permit_mynetworks,

#根据access的查询结果判断客户端连接的合法性

check_client_access hash:/etc/postfix/access, #拒绝ip符合$maps_rbl_domains定义范围的连接

reject_maps_rbl,

#如果客户端在DNS中没有记录则拒绝连接,要慎用

reject_unknown_hostname

#通过发件人的地址进行限制

smtpd_sender_restrictions =

permit_mynetworks,

check_sender_access hash:/etc/postfix/access

#设置虚拟主机数据库,别忘了执行"postmap virtual"进行格式转换 virtual_maps = hash:/etc/postfix/virtual

#对无系统帐号的邮件进行转发设置,如离开公司的员工

relocated_maps = hash:/etc/postfix/relocated

#设置别名数据库

alias_maps = hash:/etc/postfix/aliases

# 我们使用smtp投递代理

default_transport = smtp

# 一些常规设置

mail_owner = postfix

default_privs = nobody

#设置路径信息

queue_directory = /var/spool/postfix

program_directory = /usr/libexec/postfix

command_directory = /usr/sbin

daemon_directory = /usr/libexec/postfix

mail_spool_directory = /var/spool/mail

mailbox_command = /usr/bin/procmail

#并发连接设置

local_destination_concurrency_limit = 2

default_destination_concurrency_limit = 10

构建postfix邮件服务器(五)extmail和extman的安装,实现web使用和管理邮件系统

构建postfix邮件服务器(五)extmail和extman的安装,实现web使用和管理邮件系统2010年3月17日稀饭发表评论阅读评论 一、准备 1.在https://www.doczj.com/doc/698868752.html, 中下载extmail-1. 2.tar.gz 和extman1.1 Extmail 用于从浏览器中登入、使用邮件系统 Extman 用于从浏览器中管邮件系统 2.由于安装extmail要用到以下三个包(到https://www.doczj.com/doc/698868752.html, 中搜索) 1)Unix-Syslog https://www.doczj.com/doc/698868752.html,/~mharnisch/Unix-Syslog-1.1/Syslog.pm 2)DBI https://www.doczj.com/doc/698868752.html,/~timb/DBI-1.609/ 3)DBD-mysql https://www.doczj.com/doc/698868752.html,/~capttofu/DBD-mysql-4.013/lib/DBD/mysql.pm 3.安装Extman web管理要用到以下四个软件包 1)GD https://www.doczj.com/doc/698868752.html,/~lds/GD-2.44/ 解决验证码 2)File-Tail https://www.doczj.com/doc/698868752.html,/~mgrabnar/File-Tail-0.99.3/ 支持图形日志 3)rrdtool-1.2.23-3..el5.i386.rpm 支持图形日志 4)rrdtool-perl-1.2.23-3.el5.i386.rpm 支持图形日志 二、按先后顺序安装以下软件 1.安装Unix-Syslog 1)解压tar zxvf Unix-Syslog-1.1.tar.gz 2)进入目录cd Unix-syslog-1.1 3)预配置perl Makefile.PL 4)编译,安装make ; make install

51CTO下载-RHEL+5[1].0+postfix+dovecot+openwebmail+邮件服务器

RHEL 5.0 postfix dovecot openwebmail 邮件服务器 一、先卸载sendmain [root@ser ~]# yum remove sendmail 二、安装postfix ,dovecot,cyrus-sasl [root@ser ~]# yum -y install postfix [root@ser ~]# yum -y install dovecot [root@ser ~]# yum -y install cyrus-sasl 四、修改postfix的配置文件 [root@ser ~]# vim /etc/postfix/main.cf myhostname = https://www.doczj.com/doc/698868752.html, mydomain = https://www.doczj.com/doc/698868752.html, myorigin = https://www.doczj.com/doc/698868752.html, inet_interfaces =all mynetworks = 192.168.1.0/24 relay_domains = https://www.doczj.com/doc/698868752.html,, $mydomain mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, mail.$mydomain, www.$mydomain , ftp.$mydomain 重启postfix 服务 [root@ser ~]# service postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ] [root@ser ~]# chkconfig postfix on [root@ser ~]# chkconfig dovecot on 修改dovecot的配置文件 vim /etc/dovecot.conf protocols = imap imaps pop3 pop3s listen = * 在iptables 里开放25,110,143端口 [root@ser ~]# vim /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT 重启iptables [root@ser ~]# service iptables restart Flushing firewall rules: [ OK ]

基于Linux的邮件服务器简介

本文由418133804贡献 pdf文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 第 21 期总第 151 期 2007 年 11 月 内蒙古科技与经济 Inner M ong olia Science T echnology & Economy No . 21, t he 151th issue Nov. 2007 基于 L inux 的邮件服务器简介 王晓荣, 关玉欣 ( 内蒙古工业大学信息工程学院, 内蒙古呼和浩特 010051) 摘要: 随着网络的产生和发展, 我们的生活变得更加快捷和方便。在网络为我们提供了许多其他媒体无法取代的服务, 诸如: 网上购物、电子贺卡等等, 而电子邮件服务是当今因特网提供的主要也是最流行的服务之一。本文基于此重点介绍了在 L inux 环境下, 电子邮件系统模型的三大基本模块。关键词: Linux; 邮件传递代理; 邮件存储和获取代理; 邮件客户代理中图分类号: T P368 5 文献标识码: A 文章编号: 1007 6921( 2007) 21 0381 01 在 Linux 下有许多软件包可以实现标准的邮件服务。Unix/ Linux 的电子邮件系统模型可分为邮件传递代理 MT A, 邮件存储和获取代理 M SA, 以及 M UA 三大模块。虽然也有一些特殊的邮件应用程序无法确切归入上述分类。下面我们就 Linux 邮件服务做一概述。 1 邮件传递代理 MT A 在 L inux 环境下的邮件传递代理包括 Send mail, 该系统几乎在任何 Linux 平台上都有相应的版本; 还有 D. J. Bernstein 的 Qmail 以及 Wiet se Venema 的 Post fix 系统。它们负责接收并传递邮件。这听起来很简单, 实际上设置可能相当复杂。在邮件策略管理时需要设置一系列的路由和伪装选项, 而许多功能是由语言编程实现的, 用以过滤或者修改中继消息的头信息。此外邮件路由和寻址邮件存储信箱的过程包含了复杂的与各种目录服务交互操作, 这些目录服务可能包含 DNS, 密码文件, NIS, LDAP 别名/ 数据库管理文件, 以及各种的通用数据库系统。如今的 M T A 还要实现反垃圾邮件功能, 控制邮件头的 to 和 f rom 地址格式, 达到允许或者限制特定域名或者地址范围目的, 以上主要是通过修改存取控制表和规则实现。这一过程通常包括查询资料表或者目录服务, 例如 Paul Vixie 的实时黑洞列表程序 RBL, 邮件滥用预防系统MAPS, 以及同类的 Dorkslayer/ ORBS 系统。M T A 一直在不断增强之中, 以实现加强的策略控制以及反病毒和反蠕虫等功能。在大多数情况下, 安装和设置 M T A 系统比较容易, 不过强大的功能的实现是以高度复杂性为代价的。如果你所在的机构选择定制的 M T A 来满足特定的路由, 体系, 安全性和反垃圾邮件等要求, 就需要更加复杂的设置选项, 配置包括设计并处理 M T A 和各种子系统如 L DAP、 DNS 服务器之间的复杂关系。 2 邮件存储和获取代理 M SA 一旦安装并设置完成了 M T A, 通常还需要对 M SA 系统进行同样的配置过程。如今大多数机构并不直接讲邮件传送到桌面客户系统, 而是将邮件存储到服务器, 让用户通过 POP 或者 IMAP 来读取各自的邮件。邮件存储的管理有许多协议, 但如今最常用的是 POP3 和 IMAP4。对于 MT A 来说, 由一些程序, 或者称之为Dae 来实现相应协议的服务。大多数 M SA 可以与通用的 MT A 交互, 此外这些系统还包含加锁或者其他安全机制, 使得多个 M SA 可以并行工作而不发生冲突。这意味着一些用户可以通过 POP 协议获取邮件而同时其余一些用户可以使用 IMAP 协议, 而另外一些用户可以登录系统, 使用本地 M UA。例如: pine, mut t 或 elm 处理邮件。单独用户也可以从一种存取协议切换到另一种, 而并不需要系统管理员的干预。聪明的用户甚至可以越过通常的 M SA/ MUA 服务, 而使用通常的 U NIX 命令如 cp、和 mv f tp 或者远程同步rsync 来随意处置他们的邮件。在一个已经安装了 L inux 系统机器上设置 pop 服务相当容易, 甚至不需要什么操作。通常 pop daemon 被禁止, 可以在/ et c/ inet d. conf 文件中去掉相应行的注释, 并重新启动 daemon 服务即可。 MAP 也是如此。P OP 通常将邮

LAMP+postfix+dovecot+mailman搭建邮件服务器及邮件列表

LAMP+postfix+dovecot+mailman搭建邮件服务器及邮件列表 声明:鉴于此前有其他用户未经本同意上传本人原创作品的情况,特在此声明,此文由libidli (百度ID)编写,任何人本人未经同意不得转载或上传 email:libidli@https://www.doczj.com/doc/698868752.html,

目录 一、邮件列表所需要的安装包 (3) 二、安装Apache (3) 三、安装MySQL (3) 四、安装PHP (4) 五、安装并配置postfix (5) 六、安装并配置Dovecot (7) 七、支持虚拟用户 (8) 八、安装extmail及extman (10) 九、病毒及垃圾邮件过滤 (13) 十、安装配置mailman (14) 十一、总结 (17) 十二、【参考文档】 (17) 十三、【附录一】cyrus-sasl2的安装 (17) 十四、【附录二】搭建所遇问题及解决方案 (18)

本文系统环境是rhel-server-5.5 一、邮件列表所需要的安装包 简单地说,搭邮件列表的前提是搭一个邮件服务器,能收发邮件才能实现一个邮件列表的功能;收信主要通过IMAP或POP3服务完成;发信主要通过SMTP服务完成;为了更好的实现操作及管理,所以还需要提供web邮件及管理服务;另外为了保证邮件的安全可靠,还需要提供一些发信认证、垃圾邮件扫描、病毒扫描的服务;以上这些服务 安装基础设施LAMP 二、安装Apache #tar –zxf httpd-2.2.21.tar.gz #cd /usr/local/src/httpd-2.2.21 #./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite #make #make install 三、安装MySQL #useradd –M –s /sbin/nologin mysql mysql需要一个独立的账户执行系统有可能自带mysql,建立先将其卸载掉 #tar zxf mysql-5.5.17.tar.gz #cd /usr/local/src/ mysql-5.5.17 #./configure --prefix=/usr/local/mysql #make #make install 以上完成后,配置MySQL #cd mysql-5.5.17 #cp support-files/https://www.doczj.com/doc/698868752.html,f /etc/https://www.doczj.com/doc/698868752.html,f 复制主配置文件

Outlook 邮件服务器设置

一、新增账号 1、打开Outlook Express,如下图1所示,在“工具”菜单中,选择“帐号”单击。 图1 2、出现如下图2所示窗口,单击“邮件”。 图2 3、出现如下图3窗口,单击“添加--〉邮件”。

图3 4、出现如下图 4所示"Internet 连接向导”窗口,填写用户姓名,单击“下一步”。 图4 5、出现如下图5所示窗口,填写用户电子邮件地址,单击“下一步”。 sc02@https://www.doczj.com/doc/698868752.html,

sc02@https://www.doczj.com/doc/698868752.html, 图5 6、出现如下图6所示窗口,选择邮件接收服务器类型,填写接收邮件服务器和发送邮件服务器地址. 发件(pop3)服务器(192.168.1.116)、接收(smtp)服务器的地址(192.168.1.116). 然后单击“下一步”。 192.168.1.116 192.168.1.116 图 6 7、出现如下图7所示的窗口,填写“帐户名”和“密码”,选择“记住密码”,单击“下一步”。

sc0200@https://www.doczj.com/doc/698868752.html, ********** 图7 8、出现如下图8所示窗口,单击“完成”。 9、然后在“工具”菜单中,选择“帐号”单击。如下图9所示

图9 10 、出现如下图10所示窗口,单击“邮件”。 图10 11、出现如下图11所示窗口,选择您的账户,单击“属性”。 192.168.1.116……

192.168.1.116 图11 12、出现如下图12所示窗口,选择“服务器”。 192.168.1.116 192.168.1.116 生产部-贾红萍 Sc02@https://www.doczj.com/doc/698868752.html, 图12 13、出现如下图13所示的窗口,请把“我的服务器需要身份验证”选上,然后单击“确定”,完成所有设置操作。

安装及配置Postfix邮件服务器

安装、配置Postfix邮件服务器 一、编译、安装 注:只要按照此安装及配置步骤进行,均可成功实现安装、配置postfix。文中“』”表示空格 1、关闭sendmail service』sendmail』stop 2、添加用户组和用户 groupadd』–g』1200』postdrop groupadd』–g』1000』postfix useradd』–M』–u』1000』–g』postfix』–G』postdrop –s/sbin/nologin』postfix 3、编译安装 1)进入源码包所在目录 如:cd』/home/hello/ 2)列补丁(可省略) l(小写的“L”) 3)解压补丁包(可省略) gunzip』postfix----vda-ng.patch.gz 4)解压源码包 tar』zxvf』postfix-2.6.2.tar.gz』–C』/usr/src/ cd』/usr/src/』postfix-2.6.2 注:–C』/usr/src/ 是指把解压后当然源码包存放在/usr/src/目录下; cd』/usr/src/』postfix-2.6.2 是指进入源码包目录。 5)打补丁(可省略) Patch』–p1』<』/home/hello/----补丁存放当然位置 6)编译 make 如果此时出現缺少db*-devel错误: install the appropriate db*-devel package first make: ***[makefiles] error 解决办法:

到光盘下去把db*-devel文件查找出来或把整个linux包,拷贝到相应位置,然后用如下命令进行安装 rpm』–ivh』-force-debian』–nodeps』/home/hello/db*-devel.rpm 7)安装 make』install 到此postfix安装完成,postfix在/usr/src/postfix-2.6.2中 二、配置postfix 1、postfix必须有DNS支撑 启动dns service named restart 测试DNS是否正确 nslook 退出用exit 2、进入postfix工作目录 cd』/etc/postfix/ 3、得到有效的配置项 postconf』–n >』main.cf- 把主配置文件改名 mv』main.cf』main.cf.bak 为得到的配置文件改名 mv』main.cf-』main.cf 查看一下 vi main.cf 4、添加如下行: Inet_interfaces=127.0.0.1,192.168.1.1 myhostname=https://www.doczj.com/doc/698868752.html, mydomain=https://www.doczj.com/doc/698868752.html, myorigin=$mydomain mydestination=$mydomain,$myhostnam home_mailbox=Maildir/ //邮件存放位置 5、启动服务 postfix start 查看是否服务启动

在linux下配置sendmail邮件服务器

在linux下配置sendmail邮件服务器其实很简单具体: 1cd /etc/xinetd.d 2ls查看有没有ipop3和imap协议 3编辑vi /etc/xinetd.d/ipop3 把里面的disable=yes改为disable=no 4编辑vi /etc/xined.d/imap 把里面的disable=yes改为diable=no 5测试一下pop3和imap telnet localhost 110(pop3邮局协议的端口)telnet localhost 143(imap端口) 退出的时候都用ctl+]然后回车在输入quit即可(测试后要记得重启xinetd服务)6编辑vi /etc/mail/sendmail.mc 7把里面的dnl TRUST_AUTH_MECH(.........)和dnl define(`confAUTH_MECHANISMS`,.........)前面的dnl去了 8在添加两条DAEMON_OPTIONS(`port=25,name=MTA`)dnl和DAEMON_OPTIONS(`port=587,name=MSA,m=Ea`)dnl 9在DAEMON_OPTIONS(`port=smtp,Addr=127.0.0.1,name=smTA`)dnl和DAEMON_OPTIONS(`accept_Unres,Olvale_domains`)dnl前面加上dnl 10测试一下MTA telnet localhost 25回车输入ehlo test回车看见AUTH=..250说明成功退出和上面的一样 11做输入重定向m4 /etc/mail/sendmail.mc>/etc/mail/sendmail.cf 12重启sendmail服务service sendmail restart 13编辑vi/etc/mail/access把允许转发的用户的IP或域名添加上去比如允许192.168.10.10的计算机通过 编辑vi /etc/mail/access在里面加上192.168.10.10 RELAY 或是OK(允许转发与通过) 14编辑vi /etc/mail/local-host-names把邮件服务器使用的域名给添加上去 15在做DNS的时候要在正向解析上添加一个IN MX 5(参数是设优先级的) 16重器一下sendmail服务

linux环境下postfix+dovecot+webmail安装配置详解

构建postfix邮件服务器(一) 1、编译安装Postfix [root@mail ~]# groupadd -g 1200 postdrop [root@mail ~]# groupadd -g 1000 postfix [root@mail ~]# useradd -M -s /sbin/nologin -u 1000 -g postfix -G postdrop postfix [root@mail ~]# tar zxf postfix-2.4.6.tar.gz [root@mail ~]# gunzip postfix-2.4.6-vda-ng.patch.gz [root@mail ~]# cd postfix-2.4.6 [root@mail postfix-2.4.6]# patch -p1 < ../postfix-2.4.6-vda-ng.patch patching file README_FILES/VDA_README patching file src/global/mail_params.h patching file src/util/file_limit.c patching file src/virtual/mailbox.c patching file src/virtual/maildir.c patching file src/virtual/virtual.c patching file src/virtual/virtual.h [root@mail postfix-2.4.6]# 预配置编译参数 [root@mail postfix-2.4.6]# make makefiles \ 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql \ -DUSE_SASL_AUTH \ -DUSE_CYRUS_SASL -I/usr/include/sasl' \ 'AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm \ -L/usr/lib/sasl2 -lsasl2 ' && make && make install //编译并进行安装 Postfix的配置文件 (Postfix系统最主要的配置文件包括:/etc/postfix/main.cf 和/etc/postfix/master.cf.前者是postfix服务的配置文件,后者是master程序的配置文件) [root@mail postfix-2.4.6]# postconf –n //-n 将只列出不同于默认值的配置参数command_directory = /usr/sbin config_directory = /etc/postfix daemon_directory = /usr/libexec/postfix debug_peer_level = 2 html_directory = no mail_owner = postfix mailq_path = /usr/bin/mailq manpage_directory = /usr/local/man newaliases_path = /usr/bin/newaliases queue_directory = /var/spool/postfix readme_directory = no sample_directory = /etc/postfix sendmail_path = /usr/sbin/sendmail

在LINUX中部署sendmail 服务器(邮件服务器)

在LINUX中部署sendmail 服务器(邮件服务器) 出处 https://www.doczj.com/doc/698868752.html,/375221/92487 一. 邮件服务器,的一些基本常识。 1. POP 协议端口号为:110 用于接收邮件。 2. SMTP 协议端口号为:25 用于发送邮件。 3. 邮件传输的过程有两种情况。 1)一种是,邮件发送与接收者在同一域内。 2)一种是,邮件发送与接收者在不同域内,此时必须通过DNS服务器来转换。 二. 配置前的工作如下: 1. 确认服务是否安装。 rpm -qa sendmail 2. 调整状态。 1)自动启动:

2)手动调整: 3. 更改hosts文件。 /etc/hosts 格式:主机IP地址主机的DNS名主机的NETBIOS名

service network restart 4. 具体配置如下: 1)cd /etc/mail vi sendmail.cf (主配置文件) 2)cd /etc/mail vi local-host-names (指定主机名)

3)cd /etc/mail vi access (定义中继) makemap hash access.db

service dovecot restart 5)最后重启SENDMAIL服务。 service sendmail restart 6)DNS的配置。 在域的正向区域文件中加入MX记录。

service named restart 5. 测试: 在服务器上创建两个用户SSS和CCC用来做测试。 确保服务器与客户机能正常能信。 服务器IP: 192.168.0.7 客户机IP: 192.168.0.101

linux Postfix邮件服务器安装配置

:Postfix邮件服务器的安装与配置 一、先安装配置Apache、DNS 1.挂载光盘镜像; Mount /dev/cdrom /mnt Cd /mnt/Server 2.安装Apache rpm -ivh httpd-2.2.3-43.el5.i386.rpm apr-1.2.7-11.el5_3.1.i386.rpm apr-util-1.2.7-11.el5.i386.rpm postgresql-libs-8.1.18-2.el5_4.1.i386.rpm 查看有否安装: [root@localhost Server]# rpm -qa | grep http httpd-2.2.3-43.el5 启动Apache: Service httpd start 3.安装DNS 用rpm分别安装以下包: bind-9.3.6-4.P1.el5_4.2.i386.rpm bind-chroot-9.3.6-4.P1.el5_4.2.i386.rpm bind-devel-9.3.6-4.P1.el5_4.2.i386.rpm bind-libbind-devel-9.3.6-4.P1.el5_4.2.i386.rpm bind-libs-9.3.6-4.P1.el5_4.2.i386.rpm bind-sdb-9.3.6-4.P1.el5_4.2.i386.rpm bind-utils-9.3.6-4.P1.el5_4.2.i386.rpm DNS有两个配置文件: 主配置文件: /var/named/chroot/etc/named.conf 用来设置DNS全局命令的 DocumentRoot “/var/www/html”:定义网页文件存放的目录 数据库文件:https://www.doczj.com/doc/698868752.html,.zone 记录哪个域名IP是多少的。 装完后启动DNS Service named start 编辑DNS主配置文件(默认是空的)如下: 命令:vim /var/named/chroot/etc/named.conf

企业级邮件服务器解决方案

一、初始化系统环境 主机名: #vim /etc/sysconfig/network HOSTNAME=https://www.doczj.com/doc/698868752.html, #vim /etc/hosts 172.16.1.3 https://www.doczj.com/doc/698868752.html, #hostname https://www.doczj.com/doc/698868752.html, 安装包: Postfix Dovecot Mysql Postfixadmin Amavisd+spam Clamav 二、优化系统性能与安全升级 三、配置服务器 postfix: #rpm –ivh postfix-2.3.3-2.i386.rpm #postconf –m #cd /RHEL5u3/Server/ #rpm –ivh system-switch-mail-0.5.25-12.noarch.rpm #system-switch-mail 或者使用alternatives: #alternatives –display mta #alternatives –config mta dovecot: #cd /RHEL5u3/Server/ #rpm –ivh dovecot-1.0.7-7.el5.i386.rpm mysql: #cd /RHEL5u3/Server/ #rpm –ivh mysql-server-5.0.45-7.el5.i386.rpm #rpm –ivh mysql-5.0.45-7.el5.i386.rpm postfix admin: #cd /var/ftp/pub/MAIL/software/postfixadmin #tar zxf postfixadmin-2.1.0.gz –C /var/www/html/ #cd /var/www/html #mv postfixadmin-2.1.0 postfixadmin #cd postfixadmin #less DA TABASE_MYSQL.TXT #service mysqld start #mysql < DA TABASE_MYSQL.TXT # mv config.inc.php.sample config.inc.php #vim config.inc.php $CONF[…default_language?] = ?cn?;

IMAIL邮件服务器配置(完整)

IMAIL邮件服务器配置 一、实验目的 1、掌握利用Imail软件构建企业邮件服务器的方法。 2、理解电子邮件服务的体系结构与工作原理。 3、熟悉邮件用户代理程序的使用。 二、实验设备及环境 1、两台计算机。一台做服务器,系统平台为Window2000 server,另一台做客户机,系统平台为Window2000 Professional 或Windows XP。 2、Imail 8.22软件、Web中文模板。 三、实验步骤 1、检查实验环境。 确认服务器已安装DNS组件,且网络属性设置为:IP 192.168.1.2、子网掩码255.255.255.0、网关为空、DNS为192.168.1.1(在本机测试用)。 客户机网络属性设置为:IP 192.168.1.10、子网掩码255.255.255.0、网关为空、DNS为192.168.1.1。在客户机能ping 通192.168.1.2。 2、配置DNS服务。 创建https://www.doczj.com/doc/698868752.html,域,创建mail主机记录指向192.168.1.2。创建邮件交换记录。 在客户机ping https://www.doczj.com/doc/698868752.html,,看到DNS域名解释结果为192.168.1.2。 3、安装Imail。 1)设置邮箱域名 DNS设置了https://www.doczj.com/doc/698868752.html,指向192.168.1.2即可 2)选择服务 这里用到四个服务,一个POP3服务,一个是SMTP服务,一个是web service(用于网页访问),还有一个默认选上的IMAIL 队列管理服务。

4、配置IMail服务器。 按照上面的步骤一步一步来做,完成后,不需要做额外的配置就可以工作了,需要进一步设置,可以通过在如下面板设置。 5、创建用户user1和user2,并设置用户属性。 6、使用Outlook Express收发电子邮件。 添加两个账户user1@https://www.doczj.com/doc/698868752.html,和user2@https://www.doczj.com/doc/698868752.html,。用两个账户互发邮件,验证服务器和用户属性配置。 7、利用浏览器访问Mail服务器。 四、实验过程原始记录(数据、图表、计算等) 1、配置DNS服务

Linux1 邮件服务器 测试Sendmail

Linux1 邮件服务器测试Sendmail 配置好每一种服务器后总要检验一下服务器的运行状态,查看是否设置正确。检测服务器的运行可以通过进程检查、端口的测试及查看邮件日志等几种方式。不过,所有的测试都是在前面配置过程中系统没有报错的情况下进行的,如果有报错的说明服务器的基本配置存在错误,要从配置文件开始查看起。 1.进程检查 检验Sendmai服务器是否正常运行,首先要利用命令“ps –eaf |grep sendmail”查看Sendmai服务器是否有它自己的进程存在,如图9-43所示。 图9-43 进程检查 以smmsp运行的进程为Starting sm-client(启用Sendmail客户端)时产生的进程。如果有如上显示就表示进程启动正常。 2.端口的测试 由于sendmail服务器占用的是SMTP 25端口,所以要检测服务器是否正常运行,还应该使用“netstat -tlunp”命令查看SMTP的端口号是否打开,如图9-44所示。 图9-44 查看端口状态 输出中“tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN”信息,表示端口为所有网络接口打开,且处于正常的监听状态。 为了检测服务器的端口的可用性,使用telnet hostname port命令(port代表端口),登录到sendmail服务器所使用的25号端口。登录后,使用介绍SMTP和邮件接收协议时使用的命令,测试收发邮件,测试时使用的用户为本服务器的用户。由于sendmail默认的禁止转发功能会禁止邮件的转发,所以不能使用其它域的用户。3.查看sendmail服务日志 查看日志始终都是配置服务器的最好帮手,学会查看日志能节省许多时间。邮件服务器的日志保存在/var/log/目录中,可使用ls –la /var/log/mail*命令查看所有的

利用UbuntuExtMail30分钟配置好一个功能强大的邮件

利用Ubuntu ExtMail 30分钟配置好一个功能强 大的 利用Ubuntu ExtMail 30分钟配置好一个功能强大的服务器V1.1,以下文档通过19个大的步骤进行配置,配置成功! 由于网上Ubuntu ExtMail的步骤特别多,看了都头痛,在此特别给朋友们制作了一个简洁的安装文档,希望大家喜欢:) 环境: Ubuntu 8.04 TLS postfix 2.5.1 ExtMail 1.2 extman 1.1 1.安装依赖包 apt-get install mysql-client-5.0 mysql-server apache2 postfix postfix-mysql postfix-doc courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2-modules libsasl2-modules-sql sasl2-bin libpam-mysql openssl libapache2-mod-fastcgi libfcgi-perl build-essential libtool libnet-server-perl libnet-cidr-perl libberkeleydb-perl arc zoo lzop liblzo1 libstdc++5 libgd-gd2-perl libfile-tail-perl libdigest-sha1-perl libdigest-HMAC-perl libnet-ip-perl libnet-dns-perl libhtml-tagset-perl libhtml-parser-perl libio-stringy-perl libio-multiplex-perl libio-socket-ssl-perl libio-zlib-perl libnet-ssleay-perl libunix-syslog-perl libtimedate-perl libmailtools-perl libconvert-binhex-perl libconvert-tnef-perl libconvert-uulib-perl libcompress-zlib-perl libarchive-zip-perl libarchive-tar-perl perl-suid 你会被询问以下问题: Create directories for web-based administration? <– No General type of mail configuration: <– Internet Site System mail name: <– https://www.doczj.com/doc/698868752.html, 2.下载extmail-1.2和extman-1.1,并修改配置 下载地址:https://www.doczj.com/doc/698868752.html,/download tar xvzf extmail-1.2.tar.gz

最全的postfix配置参数

最全的postfix配置参数 2009-03-31 22:00 最完整的信息--postfix包随附的在线说明与配置文件样本,已经在你手上了。因此,本附录只能算是 postfix参数的“速查参考”。 对于每一个参数,我们都会列出其可能值或是设定值的类型,大部分类型的设定值都没有异议,只有一些类型的值需要解释: 逐项列出 参数需要一个或多个可能值。至于某特定参数可能需要哪些值,请参阅在线说明。 查询表 当参数指向查询表时,必须指出表的类型与名称,两者之间以一个冒号隔开,例如: transport_map = hash:/etc/postfix/transport 路径名称 一个文件的完整路径。 格式样板 某些参数的设定值,是由包含宏的字符串所组成,例如: smtpd_banner = $myhostname ESMTP $mail_name 宏(此例中的$myhostname与¥mail_name)是在运行时才展开的对应的参数值。至于哪些参数的样板可接受哪些宏,请参阅在线说明文件。 计时单位 postfix有许多涉及时间的参数,例如: queue_run_delay = 1000s 为了方便描述时间,postfix拟定了一组通用的计时单位简写,如果没注明计时单位,每个时间参数都有自己默认的计时单位。至于特定时间参数的默认计时单位是什么,请参阅在线说明。 单位简写 秒 s 分 m 时 h 日 d 周 w 所有参数都有一个默认值(虽然某些默认值得空白)。只有实际设定值不同于默认值得参数时,才需要被列在main.cf中。本篇附录虽然列出了参数得默认值,但是不保证新版本得postfix一定不会改变默认值。使用postconf命令得-d 选项,可以查出特定参数得默认值。 postconf -d alias_maps postfix参数速查参考 2bounce_noice_recipient 可能值:邮件地址默认值:postmaster “2bounce”是多钟可能得错误类型之一。每一类型错误,都可由你决定是否要发出通知函。2bounce_notice_recipient指定“2bounce”错误类型得通知对

浅析邮件服务器安全解决方案

-------------前言-------------- 随着计算机技术的迅速发展,邮件网络信息的安全问题的解决十分的重要。邮件服务器关系着人们信息交流的隐私安全。目前互连网上的邮件服务器所受攻击有两类:一类就是中继利用(Relay),即远程机器通过你的服务器来发信,这样任何人都可以利用你的服务器向任何地址发邮件,久而久之,你的机器不仅成为发送垃圾邮件的帮凶,也会使你的网络国际流量激增,同时将可能被网上的很多邮件服务器所拒绝。另一类攻击称为垃圾邮件(Spam),即人们常说的邮件炸弹,是指在很短时间内服务器可能接收大量无用的邮件,从而使邮件服务器不堪负载而出现瘫痪。这两种攻击都可能使邮件服务器无法正常工作。因此作为一个邮件服务器防止邮件攻击将不可缺少。所以如何保证邮件服务器的安全解决方案是当前的关键。 Internet是一个开放系统,透明度极高,既不安全,又不可信,使邮件服务器存在许多安全问题。如何保证数据传输的安全性和收发邮件人身份的真实性就成为推广解决的关键问题。邮件服务器的解决方案主要通过了解其性能、安全配置技巧、自身安全功能机等方面。采取一种预防、阻止邮件服务器出现坏的信息,从而使邮件服务器有一个简单实用的解决方案。

浅析邮件服务器安全解决方案 【摘要】该文论述和分析了邮件服务器自身安全功能及其安全方面的解决方案。在安全解决方面,重点介绍了Sendmail软件。通过对邮件服务器性能和安全配置技巧的论述,了解邮件服务器的工作原理。对动态中继验证控制,采取更先进的Sendmail进行处理。总结出邮件服务器的主要性能和安全解决方案,既保证数据安全,又提高邮件服务器的信息传输能力。从而使邮件服务器能够公平、合理、安全的在互联网上运行。 【关键词】邮件服务器;安全性;Sendmail软件;动态中继验证

Linux下的Postfix邮件服务器

Linux下的邮件服务器Postfix(一)在Linux下1、挂载光驱建立DNS服务器的MX记录:正向: 反向: 2、创建用户和密码: 看一下邮箱邮件默认保存在这里:

3、安装Postfix包,开启Postfix服务: 4、关闭sendmail服务: 5、编辑/etc/postfix/main.cf文件 找到这几项修改其余不改: myhostname = https://www.doczj.com/doc/698868752.html, 邮件主机的完整名称 mydomain = https://www.doczj.com/doc/698868752.html, 邮件主机域名 myorigin = $mydomain(表示所有)设置发件人邮件地址的网域名 inet_interfaces = all (表示监听所有端口)监听端口【把下面的inet_interfaces=localhost 注释掉】 mydestination = $myhostname, $mydomain(表示所有)指定接收邮件时收件人的域名mynetworks = 192.168.1.0/24, 127.0.0.0/8(192.168.1.0/24表示这个网段,127.0.0.0/8表示本 地)设置可以为其转发邮件的网络 relay_domains = $mydestination(表示所有)设置可以为其转发邮件的域名 6、重新启动服务: 7、验证:发信: #telnet https://www.doczj.com/doc/698868752.html, 25 telnet到邮件服务器的25号端口 helo https://www.doczj.com/doc/698868752.html, 用helo或ehlo介绍自己(可以不写) mail from:li@https://www.doczj.com/doc/698868752.html, 发信人地址 rcpt to:gen@https://www.doczj.com/doc/698868752.html, 收件人地址 data 表示开始输入邮件正文 Hello! 邮件正文 .新起一行以“.”表示正文结束 quit 退出telnet

开源邮件归档服务器MailArchiva

开源邮件归档服务器MailArchiva 2012-02-03 /分类: 邮件服务器/ 浏览次数: 1,479 / 6个评论发表评论 怎么突然想起弄mailarchiva了呢? 年前公司有个员工辞职,到最后一天的时候说无法收邮件了,结果一看,存foxmail 的那个盘不知道怎么被搞挂了,因为很多工程方面来往邮件和其他文件比较重要,只能格式化后用恢复工具来恢复数据,邮件基本找回来了,但七八十个邮件夹,几十G的邮件,花了一天才修复完。 前几天有个人说他们公司要求他用postfix来给exchange做邮件归档,他是想用outlook来接收存档,那得多烦人啊,记得以前弄GFI webmonitor的时候看到GFI 还有个邮件存档工具,不过是for exchange的,咱们没有exchange的呢?一时兴 起就查了一下相关的资料,就找到了mailarchiva,虽然开源版比企业版少了一些功能,不过咱们用用也足够了,网上搜索半天没有发现有用的关于mailarchiva配置和使用的中文资料,只能自己摸索了半天才大致明白,中途也出现了不少问题,记下来以飨后来者吧。 先到开源网站SF下载mailarchiva的安装文件, https://www.doczj.com/doc/698868752.html,/projects/openmailarchiva/files/mailarchiva/MailArchiva%20v1.9/,mailarchiva是基于JAVA开发的,所以可以跨平台,我这里要用来给hmailserver 做邮件存档,所以下载windows版本的,包有一百多兆,不过其中有两个JRE的包,一个32位一个64位,这两个倒占了大头。 下载后安装就不废话了,很简单,安装完成后会提示web控制台的默认登录用户名和密码都是admin,安装过程中会打开个网页提交个注册信息给mailarchiva官网,如果不想泄露自己的信息,就填假的或者不让它访问官网呗。 安装完成后桌面右下角会显示mailarchiva的服务控制台图标,可以双击打开它

相关主题
文本预览
相关文档 最新文档