LINUX邮件服务器搭建
1. 用以下命令查看系统是否安装了sendmail:
[root@mail /root]# rpm –qa |grep sendmail
sendmail-8110-8
2. 卸载sendmail:
[root@mail /root]# rpm -e sendmail –nodeps
3. 用以下命令杀死运行中的sendmail进程:
[root@mail /root]# killall sendmail
如果系统提示:
sendmail: no process killed
则说明当前系统中没有sendmail进程。
4. 安装postfix:
[root@mail /root]# rpm -ivh postfix-20010228release-2i386rpm
若已经安装,则此步可以省略。(注:安装时最好用rpm包,会自动创建postfix用户和postfix组)
5. 安装imap
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-47c2-12rpm
imap使pop3有效,即打开110端口。(注:安装时最好用rpm包)
若已经安装,则此步可以省略。
6. 检查系统中是否安装了cyrus-sasl
执行以下命令查看系统中是否安装了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,则说明已经安装了cyrus-sasl
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1524-17
cyrus-sasl-1524-17
否则,请用rpm –ivh 命令先安装所需sasl-cyrus包。
7.修改postfix用户
同时应该让该用户不能登录到系统,也即不为该用户指定可执行的登录外壳程序和可用
的用户宿主目录。
编辑/etc/passwd文件中的相关条目如下所示:
postfix:x:89:89::/no/where:/no/shell [编辑后,只修改蓝色部分就可以了]
即:修改用户的Home directory和Shell 参照 /etc/passwd文件
8.编辑postfix的主要配置文件/etc/postfix/maincf,根据需求只需修改以下几个参数:
1)mydomain
指明你的域名,在这里我们指定:
mydomain = xxcom
2)myorigin
myorigin参数指明发件人所在的域名。如果你的用户的邮件地址为user@domaincom,则该参数指定@后面的域名。在这里我们指定:
myorigin = $mydomain
3)inet_interfaces
inet_interfaces = all 监听所有端口
4)mydestination
mydestination参数指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix
系统要接收什么样的邮件。通常与myorigin一样:
mydestination = $mydomain
5)mynetworks_style
设置网络类型,我们指定:
mynetworks_style = subnet
6)ynetworks
定义可以使用的此smtp服务器发信的客户ip地址,因为公司的ip范围已知,所以我们
指定:
mynetworks = 19216810/24
注:此项可根据情况而定,主要是指定ip范围,假如公司的ip划分是按照网段来的,例如:101010~101019,101030~101039等等更细。根据需要,该项可以不设置。
7)SMTP的配置
为了告诉postfix采用sasl来进行SMTP的用户认证,我们必须在/etc/postfix/maincf文件的最后添加以下几行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
说明如下:
smtpd_sasl_auth_enable:告诉SMTP客户,该SMTP服务器需要进行用户认证。
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
仅仅中继通过SMTP认证的客户端邮件,以及接收本postfix为最后一站的邮件。
broken_sasl_auth_clients = yes
有一些Microsoft 的SMTP客户端,比如Outlook Express 4X采用的是非标准的SMTP认证协议,将该选项设置为yes可以解决这类不兼容问题。
smtpd_sasl_security_options = noanonymous
控制本地SMTP认证所采用的机制,这里是允许任何非匿名认证方法。
9.配置SASL
进入/usr/lib/sasl/目录,用touch新建这样一个文件:
[root@test sasl]# touch smtpdconf
在该文件中加入以下内容:
[root@test sasl]# more smtpdconf
pwcheck_method:pam
也就是指定通过PAM来进行用户认证。
10.配置PAM
进入/etc/pamd/目录,用touch新建这样一个文件:
[root@test pamd]# touch smtp
在该文件中加入如下内容:
[root@test pamd]# more smtp
#%PAM-10
auth required /lib/security/pam_stackso service=system-auth
account required /lib/security/pam_stackso service=system-auth
也即和/etc/pamd/pop文件的内容是一致的。
11.修改/etc/shadow文件权限
因为PAM最终要去读取/etc/shadow文件的内容来进行用户认证,但是/etc/shadow文件
权限是设置为只有root用户可以读写,而我们的postfix是运行在postfix用户权限之下,所以我们要合理的设置/etc/shadow文件权限,以便让pam可以读取其内容。
执行以下命令,让root组也可以读取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然后再将postfix用户加入root组,采用以下命令:
[root@test /etc]# usermod -G root postfix
12.编辑postfix的主要配置文件/etc/postfix/mastercf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
这里开始
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
这里结束
#628 inet n - n - - qmqpd
把我标的注释部分去掉即可。
13.配置pop3
RedHat70已经使用xinetd代替了以前的inetd,为了使pop3服务启动,我们编辑
/etc/xinetdd/ipop3文件,将其中的disable = yes改为disable = no 以便启动pop3
服务。
为了使改动生效,执行以下命令:
/etc/rcd/initd/xinetd reload
14.启动postfix
执行以下命令启动postfix:
/etc/rcd/initd/postfix start
这样,一个支持SMTP认证的postfix邮件服务器就配好了。
中继转发就是通过别人的邮件服务器(中继服务器)将你的邮件系统的邮件递送到目标地址。 Winmail 支持多中继全球收发保证,即使您服务器的IP 在对方的垃圾邮件黑名单中,邮件照发不误。 为什么要使用中继转发? 一般架设邮件系统并不需要使用中继转发, 在出现以下几种情况时可能需要使用中继转发: 1 服务器的IP 地址被海外反垃圾组织列入黑名单:局域网中某一电脑曾经中过蠕虫病毒,发送大量病毒/垃圾邮件,导致公司出口 IP 被列入;服务器的IP 前曾经被垃圾邮件制造者利用,被列入;对方管理员因为反垃圾屏蔽大部分中国地区的。 2 服务器的IP 地址是 ADSL 动态IP: IP 段为ADSL 动态池, 或者虽为固定,但在国际RBL 数据库中为动态,很多邮件服务器(例如: hotmail)拒绝接受使用动态IP 的邮件服务器的来信。 3 IP 未申请到反向解析:一些邮件服务器(例如: sina,aol)拒绝接受没有IP 反向解析邮件服务器的来信。 4 你的邮件服务器连接到国外的网络速度很慢,有时连不上的,可以选一台国外的中继服务器(推荐使用美国的,因为中国到美国的网速比较快)。 5 你的域名不是internet 上有效的,仅在内部使用,而又需要发信到外域,可以使用中继服务器将邮件递送到外域。当然外域的用户收到你的邮件后无法直接回复给你。 Winmail 中继功能有什么特点? 1 支持直接中继:所有的外发邮件都通过中继发出。
简介 %26#8226; 邮件中继问题的症状 %26#8226; NDR 包含错误代码 500、571 或 573 的可能原因 %26#8226; 出现事件 1701、1709、1710、4001 和 7004 的可能原因 %26#8226; 如果将您的 Exchange 计算机配置为可发送未经请求的商业电子邮件的开放邮件中继 %26#8226; 如果邮件中继源自未配置为开放邮件中继的 Exchange 计算机上的帐户 %26#8226; 如何为传入邮件和中继邮件设置 SMTP 域 %26#8226; Exchange 组织的本地域 %26#8226; Exchange 组织的非本地域 %26#8226; 可在您的 Exchange 组织和另一台 SMTP 服务器之间共享的域
%26#8226; 如何解决 NDR 包含错误代码 571 或 573 的问题 %26#8226; 方案 1:不允许经过身份验证的计算机中继邮件 %26#8226; 方案 2:对 SMTP 虚拟服务器的匿名访问被禁用 %26#8226; 方案 3:未正确配置 DNS 功能 %26#8226; 方案 4:没有与代理地址相匹配的收件人策略 %26#8226; 方案 5:目标服务器要求进行其他身份验证 %26#8226; 方案 6:ISA Server 2000 SMTP 发布规则未更新
%26#8226; 参考
本页 概要 简介 邮件中继问题的症状 NDR 包含错误代码 500、571 或 573 的可能原因 出现事件 1701、1709、1710、4001 和 7004 的可能原因 如果将您的 Exchange 计算机配置为可发送未经请求的商业电子邮件的开放邮件中继 如果邮件中继源自未配置为开放邮件中继的 Exchange 计算机上的帐户 如何为传入邮件和中继邮件设置 SMTP 域 Exchange 组织的本地域 Exchange 组织的非本地域 可在您的 Exchange 组织和另一台 SMTP 服务器之间共享的域 如何解决 NDR 包含错误代码 571 或 573 的问题 方案 1:不允许经过身份验证的计算机中继邮件 方案 2:对 SMTP 虚拟服务器的匿名访问被禁用 方案 3:未正确配置 DNS 功能 方案 4:没有与代理地址相匹配的收件人策略 方案 5:目标服务器要求进行其他身份验证 方案 6:ISA Server 2000 SMTP 发布规则未更新 参考 这篇文章中的信息适用于:
概要 可以将运行 Microsoft Exchange Server 2003 或 Microsoft Exchange 2000 Server 的计算机配置为邮件中继。因此,可通过 Exchange 计算机将发送到其他域或发自其他域的邮件转发到目标。但是,如果将 Exchange 计算机或 Exchange 计算机中的帐户配置为开放邮件中继,则可能会出现某些问题。此外,如果未正确配置邮件中继,也可能会出现某些问题。
可以使用配置为开放邮件中继的 Exchange 计算机发送未经请求的商业电子邮件(也称为垃圾邮件)。如果其他邮件服务器将您的 Exchange 计算机识别为未经请求的商业电子邮件服务器,则可能会将该计算机添加到禁止列表中。因此,在将邮件发送到其他域时可能会遇到问题。要解决此问题,必须将 Exchange 计算机重新配置为非开放邮件中继。然后,必须从禁止列表中删除 Exchange 计算机。
如果 Exchange 计算机不是一个开放邮件中继,则可以使用 Exchange 计算机中的帐户发送未经请求的商业电子邮件。因此,必须防止有人使用损坏的帐户。
本文介绍邮件中继问题的症状,并提供纠正 Exchange 计算机配置的步骤。 简介 本文介绍以下内容: %26#8226; 如何解决 Microsoft Exchange Server 2003 和 Microsoft Exchange 2000 Server 中的邮件中继问题。 %26#8226; 如何防止将 Exchange 计算机用作开放邮件中继。 %26#8226; 如何在 Exchange 中为传入邮件和中继邮件设置 SMTP 域。
Exchange 提供完整的简单邮件传输协议 (SMTP) 邮件服务。Exchange SMTP 服务器可用于接收邮件并将其中继到网络上的其他 Exchange 计算机或 Internet 上的其他 SMTP 服务器。邮件中继允许 Exchange 邮件客户端将邮件发送给其他组织中的用户。如果不允许邮件中继,则 Exchange 计算机只能接收和发送与自己位于相同邮件域中的用户的邮件。
如果允许中继邮件,则 Exchange 计算机可以对发送到自己所在域之外的邮件域中的邮件进行转发。此行为使得 Exchange 可以将邮件转发给任何内部或外部网络 SMTP 服务器。
如果 Internet 用户可以访问您的 Exchange 计算机,则一定要小心。因为不道德的用户会将您的 Exchange 计算机用作邮件中继。这些用户可将邮件转发到您的 Exchange SMTP 服务器,从而将未经请求的商业邮件(也称为垃圾邮件)分发到大量计算机中。这可能会对用于 Internet 连接的带宽产生不利影响,并会导致将您的 Exchange 计算机添加到开放邮件中继的“黑洞”列表中。如果您的 Exchange 计算机被添加到这样的列表中,其他邮件服务器就可能无法接收来自您所在域的邮件。
邮件中继问题的症状 如果遇到邮件中继问题,则可能会出现下列一个或多个症状: %26#8226; 收到包含错误代码 500、571 或 573 的未送达报告 (NDR)。 %26#8226; 无法将邮件发送到数量渐增的域中。 %26#8226; 未经请求的商业电子邮件出现在邮件队列中,并且您检测到 Exchange 计算机可发送未经请求的商业电子邮件。 %26#8226; 远程域会通知您,它收到来自您的 Exchange 计算机的未经请求的商业电子邮件。 %26#8226; 应用程序日志中记录了下列一个或多个事件:
类型: 警告 来源: MSExchangeTransport 类别: SMTP 协议 事件 ID: 1709 计算机: Computer_Name 描述: SMTP 客户端在试图发送邮件之前未进行身份验证。拒绝访问。数据: 0000: 05 00 07 80
类型: 警告 来源: MSExchangeTransport 类别: SMTP 协议 事件 ID: 1710 计算机: Computer_Name 描述: 已作为用户“NT AUTHORITY/ANONYMOUS LOGON”通过身份验证的 SMTP 客户端试图代理“Userone @ domainedu”进行发送。拒绝访问,原因是已通过身份验证的客户端不具有以此 SMTP 地址进行“代理发送”的权限。数据: 0000: 05 00 07 80
类型: 错误 来源: MSExchangeTransport 类别: SMTP 协议 事件 ID: 7004 日期: Date 时间: Time 用户: N/A 计算机: Computer_Name 描述: 事件 ID (7004)的描述(在资源(MSExchangeTransport)中)无法找到。本地计算机可能没有必要的注册信息或消息 DLL 文件来从远程计算机显示消息。您可能可以使用 /AUXSOURCE= 标识来检索此描述;查看帮助和支持以了解详细信息。下列信息是事件的一部分: 1, 1, from, helo, 571 from IP Address We do not relay from you,HELO Domain_Namecom 您将找到滞留在远程传递队列中的发往远程域的邮件,事件日志不会为您提供有关远程域名的任何详细信息。如果您远程登录到端口 25 上的远程域,将发现连接会立即断开,且上面的事件日志项中会显示相同的错误消息:571 from IP Address We do not relay from you
日期: Date 来源: MSExchangeTransport 时间: Time 类别: (3) 类型: 警告 事件 ID: 4001 用户: N/A 计算机: Computer_Name 描述: 无法将邮件传递到远程域“MailExampleCom”。错误消息为“出现 SMTP 协议错误”。, MAIL, 553 530 Mail from ip address refused, see http://mail-abuseorg/rbl+/lookupcgi ip address 数据: 0000: d7 02 04 c0
日期: Date 来源: MSExchangeTransport 时间: Time 类别: (3) 类型: 警告 事件 ID: 4001 用户: N/A 计算机: Computer_Name 描述: 无法将邮件传递到远程域“MailExampleCom”。错误消息为“出现 SMTP 协议错误”。, MAIL, 550 Mail from dial-up rejected; see http://mail-abuseorg/dul/enduserhtm or contact Example helpdesk at数据: 0000: d7 02 04 c0
日期: Date 来源: MSExchangeTransport 时间: Time 类别: (3) 类型: 警告 事件 ID: 4001 用户: N/A 计算机: Computer_Name 描述: 无法将邮件传递到远程域“MailExampleCom”。错误消息为“出现 SMTP 协议错误”。, MAIL, 550 571 Mail from Ip_Address refused by blackhole site dialupsmail-abuseorg 数据: 0000: d7 02 04 c0
日期: Date 来源: MSExchangeTransport 时间: Time 类别: (3) 类型: 警告 事件 ID: 4001 用户: N/A 计算机: Computer_Name 描述: 无法将邮件传递到远程域“MailExampleCom”。错误消息为“出现 SMTP 协议错误”。, RCPT, 554 Service unavailable; [Ip_Address] blocked using dialupsmail-abuseorg 数据: 0000: d7 02 04 c0
NDR 包含错误代码 500、571 或 573 的可能原因 如果满足下列条件,则可能会出现 500 或 571 错误代码: %26#8226; 您的 Exchange 计算机被列为可发送未经请求的商业电子邮件的消息服务器。
如果满足下列一个或多个条件,则可能会出现错误代码 571: %26#8226; 邮件发送者不具有完成传递所需的权限。 %26#8226; 试图使用另一台服务器中继邮件,但该服务器不允许您中继邮件。远程服务器返回 571 错误代码。 %26#8226; 没有为接收邮件的域配置收件人策略。 %26#8226; 收件人启用了邮箱传递限制。例如,收件人的邮箱传递限制配置为只接收来自指定列表的邮件。 %26#8226; 配置了通讯组列表以限制只能在经过身份验证的用户之间传递邮件。从匿名会话发送的邮件被拒绝。 %26#8226; 您的 Exchange 计算机位于未经请求的商业电子邮件列表中。您的 Exchange 计算机可能被列为开放中继。 %26#8226; 您的 Exchange 计算机的完全限定域名 (FQDN) 以“Local”结尾。 %26#8226; Microsoft Windows NT 40 或 Windows 2000 域名系统 (DNS) 服务器收到来自根提示或转发器的非授权响应。之后,Windows NT 40 或 Windows 2000 DNS 服务器将服务器故障发送回为某个域查询的邮件服务器,该域尚未配置为使用邮件交换 (MX) 记录。如果 Windows NT 40 或 Windows 2000 DNS 服务器从非授权资源收到授权区域起始 (SOA) 记录,则会出现此问题。较新的 BIND 版本会缓存空的授权响应。Windows DNS 服务器认为这些空的授权响应是一些参照。当 Windows DNS 服务器收到这些响应时,这些响应会被忽视。此外,客户端会收到服务器故障而不是 SOA 记录。 %26#8226; DS2MB 元数据库项被损坏。 %26#8226; 未选中 SMTP 虚拟服务器上的“不管上表中如何设置,所有通过身份验证的计算机都可以进行中继”复选框。 %26#8226; 对 SMTP 虚拟服务器的匿名访问被禁用。
如果满足下列条件之一,则可能会出现错误代码 573: %26#8226; 目标服务器不允许进行匿名身份验证。 %26#8226; 目标服务器找不到预定收件人。
如果满足下列条件之一,则可能会出现 571 或 573 错误代码: %26#8226; 未正确配置 DNS 功能。 %26#8226; 用户的电子邮件地址与任一现有收件人策略均不匹配。通常,代理地址应至少与一个收件人策略相匹配。 %26#8226; 使用的是 Microsoft ISA Server 2000 且满足下列条件之一: %26#8226; ISA 服务器的外部 IP 地址发生更改。 %26#8226; 更新了 SMTP 发布规则的 IP 地址,以反映 ISA 服务器的新外部 IP 地址。 %26#8226; 更新 SMTP 发布规则的 IP 地址后,没有重新启动 Isactrl 服务。
出现事件 1701、1709、1710、4001 和 7004 的可能原因 如果满足下列条件之一,则应用程序日志中会记录事件 1701、1709、1710、4001 或 7004: %26#8226; 如果包含错误代码 571 的 NDR 是由您的 Exchange 计算机生成的,则会出现事件 1709 和 1710。 %26#8226; 如果您的 Exchange 计算机收到包含错误代码 573 的 NDR,则会出现事件 1701。 %26#8226; 如果其他邮件服务器将您的 Exchange 计算机列为可发送未经请求的商业电子邮件的消息服务器,或者您的 Exchange 计算机是开放邮件中继,则会出现事件 7004 和 4001。
0条评论