Exchange2000需要创建的3个SMTP服务实例
2008-04-06 13:12
204 查看
前一阵搞了邮件系统的安全加固,前面说的SA是一个方面,总觉得在SMTP上还有文章可做。
分析一下公司的系统环境,SMTP的访问大概分这么三类:
1、来自客户端的访问。
2、来自公司业务系统服务器的访问。
3、来自外部其它邮件服务器的访问。
首先说第一个来自客户端的访问,玩过Qmail的都知道,Qmail在没有安装SMTP验证包的时候可以冒名发邮件。就是我张三可以以李四的发件人姓名和发件人地址向王五发邮件,因为早期的很多邮件系统(现在也有很多)域内发送邮件是不需要SMTP发信认证的。
这就造成了一个很大的问题:内部邮件混乱。
同时,因为没有了SMTP发信认证,如果仍然使用SMTP标准端口25进行客户端连接,这样也被垃圾邮件发送者利用了。公司内部邮件往来要求及时性要高,一般投递延时不能超出10分钟。
第二个是来自公司业务系统服务器的访问,有很多服务程序可以结合邮件系统进行消息写作。比如ERP系统的报销审批通知,ASP应用程序的JMail等等。有很多程序是没有SMTP客户端验证功能,如果在服务器上启用了SMTP验证功能,邮件服务器会拒绝由业务系统发出的SMTP连接,导致此类信息无法发送。这类信息也是需要及时性相当高的。
第三个是来自外部其它域的邮件服务器的,这类邮件服务器有一个共同的特点:和我们的域名是不可能也是不能一模一样的。
综上,为保证邮件系统安全、有序、畅通总结出一下三点:
1、针对第一类访问,建立单独的SMTP服务实例,更改默认端口,并设置SMTP发信认证。
2、针对第二类访问,建立单独的SMTP服务实例,取消SMTP发信认证,在访问安全设置中加入特定业务系统的IP地址,保证安全。
3、针对第三类访问,建立单独的SMTP服务实例,取消SMTP发信认证,在规则过滤中加入拒绝发件人为本域后缀者的来信,这样来保证外部人员不会冒充内部人员向我们的内部人员发送邮件,要是不做防范的话,会被搞死……
服务实例建好了,还有两点要说明一下:
1、BadMail,就是系统坏信,建议把三个实例的坏信放在一个目录下,然后做一个计划任务,每5-30分钟进行一次坏信删除。
2、SMTP日志,这个的话,如果看了俺的那个关于用ODBC记录IIS日志的文章,这里也就不用说了,记在数据库里,方便查寻。SMTP日志记录的和IIS的大同小异,顺着做就好了。本文出自 “专注信息系统一体化建设” 博客,请务必保留此出处http://bingyi.blog.51cto.com/261731/70075
分析一下公司的系统环境,SMTP的访问大概分这么三类:
1、来自客户端的访问。
2、来自公司业务系统服务器的访问。
3、来自外部其它邮件服务器的访问。
首先说第一个来自客户端的访问,玩过Qmail的都知道,Qmail在没有安装SMTP验证包的时候可以冒名发邮件。就是我张三可以以李四的发件人姓名和发件人地址向王五发邮件,因为早期的很多邮件系统(现在也有很多)域内发送邮件是不需要SMTP发信认证的。
这就造成了一个很大的问题:内部邮件混乱。
同时,因为没有了SMTP发信认证,如果仍然使用SMTP标准端口25进行客户端连接,这样也被垃圾邮件发送者利用了。公司内部邮件往来要求及时性要高,一般投递延时不能超出10分钟。
第二个是来自公司业务系统服务器的访问,有很多服务程序可以结合邮件系统进行消息写作。比如ERP系统的报销审批通知,ASP应用程序的JMail等等。有很多程序是没有SMTP客户端验证功能,如果在服务器上启用了SMTP验证功能,邮件服务器会拒绝由业务系统发出的SMTP连接,导致此类信息无法发送。这类信息也是需要及时性相当高的。
第三个是来自外部其它域的邮件服务器的,这类邮件服务器有一个共同的特点:和我们的域名是不可能也是不能一模一样的。
综上,为保证邮件系统安全、有序、畅通总结出一下三点:
1、针对第一类访问,建立单独的SMTP服务实例,更改默认端口,并设置SMTP发信认证。
2、针对第二类访问,建立单独的SMTP服务实例,取消SMTP发信认证,在访问安全设置中加入特定业务系统的IP地址,保证安全。
3、针对第三类访问,建立单独的SMTP服务实例,取消SMTP发信认证,在规则过滤中加入拒绝发件人为本域后缀者的来信,这样来保证外部人员不会冒充内部人员向我们的内部人员发送邮件,要是不做防范的话,会被搞死……
服务实例建好了,还有两点要说明一下:
1、BadMail,就是系统坏信,建议把三个实例的坏信放在一个目录下,然后做一个计划任务,每5-30分钟进行一次坏信删除。
2、SMTP日志,这个的话,如果看了俺的那个关于用ODBC记录IIS日志的文章,这里也就不用说了,记在数据库里,方便查寻。SMTP日志记录的和IIS的大同小异,顺着做就好了。本文出自 “专注信息系统一体化建设” 博客,请务必保留此出处http://bingyi.blog.51cto.com/261731/70075
相关文章推荐
- WCF热门问题编程示例(2)多个实例调用一个WCF服务操作,需要等待服务响应吗
- 装了数据库之后用DBCA创建数据库实例以及安装Oracle10g服务里没有监听的解决方法
- 创建基于ASP.NET的SMTP邮件服务
- 为 IIS 创建证书需要安装证书服务吗?
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- 服务的扩展性(如何创建具有可扩展性的服务实例,缓存以及数据库)
- oracle 创建实例和监听服务
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- 创建基于ASP.NET的SMTP邮件服务
- Quartz.NET 2.0 学习笔记(5) :实例创建Windows服务实现任务调度
- iOS之推送通知-本地-服务器3.服务器端实现: 如果要编写内容提供者的推送服务程序,需要进行SSL认证编程,以及构建APNS数据包,数据包分为3个主要部分:Command(命令)、deviceTo
- c#创建windows服务入门教程实例
- Windows创建家庭组需要开启哪些服务和协议?
- C#创建windows服务搭配定时器Timer使用实例(用代码做,截图版)(从iteye搬到博客园)
- WCF服务创建实例说明
- 详解:数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工脚本创建oracle数据库
- 【脚本语言系列】关于Python邮件服务smtplib,你需要知道的事
- PostgreSQL在非默认的路径下创建表空间及数据库后,删除数据库目录后,还需要删除pg_tblspc下的链接文件,否则尝试启动其他实例时会报错
- 数据库名、实例名、ORACLE_SID、数据库域名、全局数据库名、服务名及手工创建数据库