外贸企业电子邮局规划、建设和运维研究

时间:2022-04-27 09:08:05

外贸企业电子邮局规划、建设和运维研究

【摘要】本文对外贸企业的电子邮局规划、建设和运维过程进行了介绍,对保障企业邮局安全和高效运转的要素进行了论述。

【关键词】企业电子邮局;sendmail;dovecot;greylist反垃圾邮件

一、引言

随着互联网技术日新月异的发展,首先是基于互联网的通信手段也层出不穷,然而从便捷性和法律有效性综合来看,电子邮件仍然是企业商务沟通的首选的重要通信手段。其次,虽然从市场上提供的企业邮箱服务已经很成熟,但是,企业从畅通性、信息安全和自身管理需求来说,仍然有必要自建企业电子邮件服务器。当然,建设企业电子邮局不是安装一个服务器就万事大吉了,必须在规划、建设和运维各阶段采用一系列手段来保证邮局的高效和可靠运转。

笔者所处的企业是一个以外贸为主的贸易物流央企,业务遍及全球70多个国家和地区,可以说电子邮件是企业最重要的业务通信手段。外贸企业对电子邮件的需求是:

稳定、可靠,随时随地可用。

发出邮件畅通无阻,邮件要能通往世界各地。

海纳百川,各种各样的客户、供应商和合作伙伴发来的邮件均可收到。

能有效阻截垃圾邮件,提高员工的邮件处理效率。

能够顺利处理各种突发问题。

在企业邮局10多年的应用过程中,也遇到了不同的挑战,在这些挑战的处理过程中,逐渐完善了企业邮局的建设。保障了企业业务的开展。本文总结了这些规划、系统安装和日常运营的经验进行总结,供自建企业邮局的管理人员参考,目的使读者能从中吸收有用部分,大家都能建设一个既能免受垃圾邮件之苦,又能不被参与发送垃圾邮件的企业邮局。为中国的互联网环境的改善贡献一份力量。

二、企业邮局的规划

企业邮局的规划很重要,主要取决于企业的需求、应用模式、用户的规模和项目预算等。

1.平台的选择

LINUX平台属于一个开放的平台,一般认为安全性较高,另外平台还有对硬件资源消耗小的特点。随着WINDOWS平台安全性的增强,硬件性能的突飞猛进,采用windows平台的企业也在增加,由于可以和企业内部的活动目录(Active Directory)集成,也就意味着企业只要单点维护即可,对于已经部署了活动目录、员工数量较多的企业,方便性不言而喻,另外,EXCHANGE SERVER和outlook客服端的配合具有先天优势。

对于笔者来说,由于企业邮局建于2001年,当时WINDOWS2000的安全性确实口碑不好,因此,选用了REDHAT LINUX+SENDMAIL平台。

2.接入线路的选择

在国内,由于电信线路和网通线路之间的连接问题,南方采用电信线路,北方采用网通线路才能保证企业用户有良好的收发邮件体验。我选用了BGP双线路连接,目的是可以改善国内各地供应商和外地出差的移动办公用户的体验。

3.IP地址的选择

由于国内有相当一部分的IP地址被国际反垃圾邮件组织加入RBL(Realtime Blackhole List)实时黑名单,国外很多电子邮局都是采用RBL实时黑名单来阻止垃圾邮件,因此,对于经常要跟国外发送邮件的外贸企业,挑选一个“干净”的IP地址非常重要,同时还要确认这个IP处在相对可靠的网段(你的ISP对这个网段有管理手段),以防由于你的邻居的问题,把你的IP地址也加入了实时黑名单(有些反垃圾邮件组织往往以网段的方式增加黑名单)。只有这样,才能避免发出邮件被当作是垃圾邮件拒绝接收。

查询IP地址是否在RBL实时黑名单中的一般可以到http:///或http://查询。

为了保证发件正常,还需要请ISP对所选择的IP地址提供反向解析服务,有些国外邮件服务器会拒绝接收没有反向解析的IP地址(例如AOL)。

4.防垃圾邮件系统选择

(1)RBL黑名单

采用RBL实时黑名单是一种很有效的阻截垃圾邮件的方式,其原理是邮件服务器在每次收信时都自动到RBL服务器上去查发件服务器的IP地址,如果IP地址在黑名单上,则拒收该邮件,从而有效阻截垃圾邮件,这也是在国外通行的一种方式。但是采用这种方式需要考虑的是:由于国内有很多IP地址都被列入黑名单之内,这也就意味着部分国内客户或合作伙伴的来信将被拒收。

(2)Spam Assassin

Spam Assassin也是常被企业邮局采用,Spam Assassin是一种使用大量的不同类型的预设规则来检查每一封收信的反垃圾邮件系统,检查的内容包括邮件的标题、正文和发件人。并依据每一个规则的权重来记总分。当总分超过预先设定的标准值的时候即判定为SPAM(垃圾邮件)。笔者也曾经部署过这个系统,Spam Assassin唯一的问题是少数情况下会误判,用户还需要扫描垃圾邮件,从一堆垃圾邮件中捡回有用的邮件,系统的效能被大打折扣了。

(3)灰名单

灰名单是近来较为流行的一种反垃圾邮件系统,灰名单的原理是:对于一个不在系统黑、白名单上的陌生邮件,系统会先拒收并返回一个SMTP错误代码(4514.7.1),如果这封邮件在规定时间(例如5分钟)之后重发,系统就会接收这封邮件,并把对方的邮件地址加入系统的动态白名单中。灰名单基于这样一个事实,就是大多数的垃圾邮件服务器的邮件只管发送,不管是否发送成功,否则会严重减少他们总的业务量。而正常的邮件服务器会在规定的期限内以一定的时间间隔(一般30分钟)不停重试。笔者目前就是采用这个系统,既能够大大减少垃圾邮件的总量,又能防止有用的邮件被拒之门外。这种方式需要考虑的是如何减少收件的延迟,这点我会在后面章节介绍。

5.硬件的选择

linux平台对硬件的要求不高,主流的服务器性能基本够用,只要硬件运行稳定并规划好硬盘即可。

三、企业邮局的建设

1.操作系统的安装

操作系统的安装是比较简单,只要按照提示一步一步往下安装即可。但是为了保证系统的安全可靠,下面以RHEL6.1+sendmail为例介绍相关过程和需要注意以下几个方面:

(1)磁盘分区

除了/boot需要独立分区外,不建议就设置一个分区,建议至少把/var/spool和/home各设置一个单独的分区,以防分区被用户数据填满后造成系统崩溃的风险。

(2)软件包安装

软件包的安装原则是:不需要的软件包尽量不装,以防增加安全漏洞的风险。开发和编译工具也尽量装上。我们选择安装了以下程序:httpd,php,mysql,vsftp,sendmail,dovecot,bind.

(3)主机名称和网络配置

主机名称设置为:(域名,本文以xxxxx替代用户名和域名,用nnn.nnn.nnn.nnn替代IP地址)的形式,网卡配置为静态IP地址并直接设置为公网IP地址、网络掩码和默认网关等。

2.防护墙设置和其他安全设置

(1)默认情况下,系统只开放了22端口,输入命令vi/etc/sysconfig/iptables打开防火墙配置文件并开放21,22,25,53,80, 110,443,993,995端口,下面是iptables文件开发25端口示例:

-A INPUT-m state--state NEW-m tcp-p tcp--dport 25-j ACCEPT

(2)为了系统安全,首先要给root用户设置一个较为复杂的密码,为了防止远程暴力破解root密码,需要禁止root的ssh登录,输入以下命令vi/etc/ssh/sshd_config修改下面的配置选项:

PermitRootLogin no(默认是yes)

3.MTA配置

(1)默认MTA选择

RHEL6.1的MTA默认采用postfix,输入命令alternatives--config mta后系统会输出以下信息:

There are 2 programs which pro-vide’mta’.

Selection Command

----------------------------------

1 /usr/sbin/sendmail.postfix

*+ 2 /usr/sbin/sendmail.sendmail

Enter to keep the current selection [+],or type selection number:

输入2选择用sendmail收发邮件。

(2)主机名称和邮局名称设置

输入vi/etc/hosts检查服务器名称,应该有以下内容:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

nnn.nnn.nnn.nnn (你的域名,前面是你的公网IP地址)

输入vi/etc/mail/local-host-names增加邮局名称,修改如下:

# local-host-names-include all aliases for your machine here.

(你的域名)

(3)配置sendmail

输入vi/etc/mail/sendmail.mc修改以下内容:

DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA')dnl

LOCAL_DOMAIN(`localhost.local-domain')dnl

为:

DAEMON_OPTIONS(`Port=smtp,Addr=0.0. 0.0,Name=MTA')dnl

LOCAL_DOMAIN(`')dnl

启用发件验证选项(去掉前面的dnl)

TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

DAEMON_OPTIONS(`Port=submission,Name=MSA,M=Ea')dnl

关闭以下选项(前面加dnl)

dnl FEATURE(`accept_unresolvable_domains')dnl

配置后保存,并运行/etc/mail/make生成sendmail.cf,重启sendmail服务配置即生效。

4.DOVECOT配置

输入vi/etc/dovecot/dovecot.conf启用以下选项(删除前面的#):

protocols=imap pop3 lmtp

输入vi/etc/dovecot/conf.d/10-mail.conf增加以下两行:

mail_location=mbox:~/mail:INBOX=/var/mail/%u

mbox_write_locks=fcntl

重启dovecot服务生效,系统已经可以收发邮件了。

5.GREYLIST安装和配置

(1)libmilter安装

默认安装情况下,sendmail未安装libmiter,需要自己安装,从安装光盘拷贝sendmail.8.14.4.tar.gz到/root,并在root目录下运行:

tar–zxf sendmail.8.14.4.tar.gz

cd sendmail-8.14.4/libmilter

sh./Build install

(2)依赖软件包安装

在安装光盘上通过rpm方式安装以下软件包:flex,bison,libcurl

(3)下载并安装milter-greylist

在root目录下运行wget ftp://ftp.espci.fr/pub/milter-greylist/milter-greylist-4.4.3.tgz下载milter-greylist,解压后安装。

(4)配置sendmail支持greylist,编辑/etc/mail/sendmail.mc,增加以下内容:

INPUT_MAIL_FILTER(`greylist’, `S=local:/var/milter-greylist/milter-greylist.sock’)

define(`confMILTER_MACROS_CONNECT’,`j,{if_addr}’)

define(`confMILTER_MACROS_HELO’,`{verify},{cert_subject}’)

define(`confMILTER_MACROS_ENVFROM’,`i,{auth_authen}’)

define(`confMILTER_MACROS_ENVRCPT’,`{greylist}’)

配置后保存,并运行/etc/mail/make生成sendmail.cf

(5)配置greylist使用灰名单功能

编辑/etc/mail/greylist.conf,修改以下选项为:

list"my network"addr{127.0.0.1/8 124.172.245.0/24}(增加自己所在的公网网段)

racl whitelist list"my network"(来自本邮局的邮件列入白名单)

racl greylist default delay 5m autowhite 3d(默认启用灰名单并修改最小重发时间间隔为5分钟)

#racl whitelist default(关闭默认白名单)

(6)配置后运行下面命令启动milter-greylist服务

milter-greylist -u smmsp -p /var/milter-greylist/milter-greylist.sock

重启sendmail服务配置即生效,可以输入tail -f /var/log/maillog就可以看到如下消息就说明greylist已经在工作了:

Jun 19 10:10:25 www sendmail[2420]: r5J2AN9c002420: Milter: to=, reject=451 4.7.1 Greylisting in action, please come back later

(7)配置greylist使用DNSRBL功能

Greylist也支持DNSRBL功能,编辑/etc/mail/greylist.conf,将下面三行修改如下(去掉前面的#):

dnsrbl "CBL" 127.0.0.4

racl blacklist urlcheck "userpref" $usrRBL "CBL" dnsrbl "CBL" \

msg "Sender IP caught in CBL blacklist"

重启milter-greylist服务,系统就可以支持阻截spamhaus黑名单上的邮件。为了防止阻截有用的邮件,笔者并未在服务器上启用该功能。有兴趣的读者可以试试。我们相信随着中国网络环境的改善,有一天我们也可以放心使用这个功能。

6.WEBMAIL安装和配置

企业用户一般都会通过邮件客户端如outlook或foxmail等收发邮件,但在一些特殊情况下,还是需要使用webmail的方式来处理邮件,比如临时使用借用的电脑或公用电脑来处理邮件,或者自行通过远程登录来管理服务器上的邮件(如删除超大的邮件等)。因此有必要安装WEBMAIL。这里选用squirrelmail。

使用webmail必须先设置好httpd和PHP服务,设置过程并不复杂,请参考有关文档。

(1)下载并安装squirrelmail

从http:///download.php下载squirrelmail-webmail-1.4.22.tar.gz并解压到/usr/share/squirrelmail,切换到这个目录,运行:

chown -R nobody:nobody data

mkdir attach

chgrp -R nobody attach

chmod 730 attach

(2)配置squirrelmail

cd /usr/share/squirrelmail /config

cp config_default.php config.php

./conf.pl

选择1(Organization Preferences)设置自己的单位信息

选择2(Server Settings)设置域名并选择Sendmail

选择10(Languages)设置Default Language为zh_CN,Default Charset为gb2312

设置后按S保存并按Q退出。

运行下面命令创建一个符号连接:

Ln–s/usr/share/squirrelmail/var/www/html/mail

用户在客户机器上就可以通过/mail的方式登录并处理用户在服务器上的邮件。

四、企业邮局的运营

1.用户管理

(1)用户增加一般采用下面命令来增加用户:

useradd–g dept1–s/usr/bin/passwd ricky.tang

passwd ricky.tang

(2)用户修改一般使用以下命令(ricky.tang更名为ricky.tan):

usermod–l ricky.tan rick.tang

(3)用户的删除使用下面命令:

userdel ricky.tan

对于企业来说,首先需要制定用户邮箱的命名规则和管理办法等规章制度,才能从制度上保证系统的规范运营。其次,还需要制定一些技术策略保障系统的安全。笔者采用了以下一些措施:

只保留root用户有超级管理员权限,并限制不允许通过ssh方式登录。

限制用户的shell,只有管理员账号才分配使用bash,ftp用户使用nologin,一般普通用户分配passwd,这样用户可以自己使用putty等工具登录修改密码。

2.日志审核与异常情况处理

(1)使用logwatch

经常查看系统日志是了解系统运行情况的有效手段,也是管理员每天的功课之一。为了方便管理员查看日志,可以通过logwatch每天发送邮件给管理员。可以通过rpm方式安装logwatch,安装后检查cron.daily下面增加了一个启动脚本0logwatch。logwatch默认把邮件发送给root,只要设置管理员接收root用户的邮件就可以了。编辑/etc/aliases并在下面行上增加:

(3)用户反馈问题处理

作为管理员,经常会收到用户反馈的问题,这种情况最好请用户发退信或消息截屏来分析。

1)多数情况下,退信错误都是邮箱地址输入错误:

550 5.1.1 ... User unknown

这个请用户更正邮箱地址就可以了。

2)对于出现spam错误,错误信息一般如下:

553 Mail blocked. Please see

如果出现上述情况,说明IP地址已经被国际反垃圾邮件组织列入黑名单。首先要做的是彻底检查并解决服务器自身乱发垃圾邮件的问题,然后,请ISP协助向对应网站发起申诉,把IP地址从黑名单上删除。

3.白名单维护

灰名单虽然可以阻截垃圾邮件,但是也会对部分正常邮件造成延迟,解决这个问题的办法是启用白名单,可以采用以下两种方式:

(1)域名白名单定义

对于经常与本企业往来的可信邮局,可以直接把域名添加到白名单中。编辑/etc/mail/greylist.conf,添加如下内容(注意每个域名前后面要分别加*和\):

可以是邮件地址或IP地址,动作可以选择退回REJECT或丢弃DISCARD,每次添加后注意重启sendmail服务,系统会自动生成access.db并生效。

5.平台升级

为了保障系统的安全,需要定期通过yum升级相关程序包,如果操作系统已经运行超过5年,建议重新评估系统安全问题并考虑更换最新稳定版本。

参考文献

[1]SENDMAIL README[M].SENDMAIL RELEASE 8,Sendmail,Inc.

[2]milter-greylist installation notes[M].v 1.66.Emmanuel Dreyfus,2009.

[3]Installing SquirrelMail[M].Paul Lesniewski,2011.

上一篇:巴包之争 8期 下一篇:煤矿自动化新技术的价值及其应用