Linux中防御垃圾邮件的方法

  一、环境说明

  单位的服务器使用RedHat Linux 9.0,邮件服务器使用Sendmail 8.12.8;这台服务器放在内网,通过一台Win2000的服务器作网关,连到Internet;网关软件使用的是WinRoute Pro 4.2.5。

  二、主要修改措施

  1.关闭Sendmail的Relay功能

  所谓Relay就是指别人能用这台SMTP邮件服务器,给任何人发信,这样别有用心的垃圾发送者可以使用笔者单位的这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是单位的服务器。所以必须关闭Open Relay,其方法就是到Linux服务器的/etc/mail目录,编辑access文件,去掉“*relay”之类的设置,一般只留“localhost relay”和“127.0.0.1 relay”两条即可。

  注意:修改access文件后还要用命令makemap hash access.db

  2.打开Sendmail的SMTP认证功能

  关掉了Relay功能,单位的老师就不能使用OE之类的软件发信了不要紧,只要对Sendmail配置好SMTP认证功能,再在OE中打开SMTP认证,就可以在任何地方使用单位的SMTP服务器了。

  在RedHat Linux 9.0中配置SMTP认证非常方便,首先用命令rpm -qa|grep sasl检查有没有安装cyrus-sasl软件包(一般默认安装已经包括了)。如果没有安装的话,用命令rpm -ivh cyrus-sasl.rpm安装所有软件包,接着打开/etc/mail/sendmail.mc文件,把如下三行:

  dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldnl define(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1,Name=MTA') 改为TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnldefine(`confAUTH_MECHANISMS',`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnlDAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0,Name=MTA')

  3.在Sendmail中添加RBL功能

  RBL(Realtime Blackhole List)是实时黑名单。国外有一些机构提供RBL服务,它们把收集到的专发垃圾邮件的IP地址加入他们的黑名单,我们只要在Sendmail中加入RBL认证功能,就会使我们的邮件服务器在每次收信时都自动到RBL服务器上去查实,如果信件来源于黑名单,则Sendmail会拒收邮件,从而使单位的用户少受垃圾邮件之苦。

  国外比较有名的RBL是http//www.ordb.org,他们的RBL可免费使用,去年国内的http//anti-spam.org.cn也提供类似的服务,但它必须先注册才能使用免费。

  在Sendmail中添加RBL认证,只要对sendmail.mc添加以下几句话(第一句表示加入了ORDB.ORG的RBL服务,第二句表示加入了ANTI-SPAM的RBL服务,注意第二条必须先去该网站注册后才能使用。如果还想加入其它的RBL认证,则将这样的话再多加几句即可,一般加入两个RBL认证也够了):

  ①FEATURE(`dnsbl',`relays.ordb.org',`″Email blocked using ORDB.org - see ″')

  ②FEATURE(`dnsbl', `cblplus.anti-spam.org.cn', `', `″451 Temporary lookup failurefor ″ $″ in cbl.anti-spam.org.cn″')

  最后执行m4 sendmail.mc>sendmail.cf和service sendmail restart两条命令,使有关Sendmail的修改生效。

  4.关闭Open Proxy

  单位的网关使用WinRoute软件,为了提高访问Internet的网速,开放了WinRoute的Proxy服务,但想不到的是大部分Proxy都是默认允许以HTTP Connect Method连接任意一个TCP端口,这样一来,当Proxy没有对使用者及相应的TCP端口做相应的限制时,很容易给垃圾邮件发送者可乘之机。他们只需要利用单位的Proxy来连接另外一台邮件服务器的25端口,并发送特定的SMTP指令就可以发送大量的垃圾邮件。

  不查不知道,一查吓一跳。单位服务器早在去年12月就由于Open Proxy而在国外的黑名单上了。更可气的是,由于开放了代理,我们的网关机CPU利用率一直在50%左右,原来笔者单位的网关一直在为别人义务干坏事。

  在WinRoute中关闭Open Proxy的方法也很简单,只要把连接外网网卡的Proxy端口关闭即可。

  具体操作如下:单击“Settings→Advanced→Packet Filter”,选择Incoming面板,找到接外网的网卡,单击Add按钮,会显示Add Item对话框,把Protocol选为TCP,Destination中的Port选=3128,Action中选Deny(如图1所示)。

  

  图 1

  5.关闭外部的25端口

  笔者查看Sendmail的LOG,结果没发现从单位中发出很多垃圾邮件,正在郁闷时,突然想起这段时间正在大闹Internet的网络天空“NetSky”和唯诺格“MyDoom”病毒,这两种病毒都会自动发出很多垃圾邮件,特别是网络天空,它自带SMTP服务功能。不需要利用单位的Sendmail,就直接可以发信。单位的Sendmail的LOG中当然也不会有记录了,于是马上到网关机WinRoute中对连接内网的网卡加上不能向外连接25号端号的限制,具体设置如图2所示。

  

  图 2

  注意:这个设置是加在内网网卡上的,而上面关闭Open Proxy的设置则是加在外网网卡上的。

  6.从黑名单上除名

  前段时间,由于自已的疏忽,使我单位的IP已经上了国外RBL的黑名单了。查询和删除RBL中的IP地址可以到http://openrbl.org/ 和http://ordb.org,另外国内的http://anti-spam.org.cn/cbl_minus/query.html也可查询。

(0)

相关推荐

  • Linux中防御垃圾邮件的方法

    一.环境说明 单位的服务器使用RedHat Linux 9.0,邮件服务器使用Sendmail 8.12.8;这台服务器放在内网,通过一台Win2000的服务器作网关,连到Internet;网关软件使用的是WinRoute Pro 4.2.5. 二.主要修改措施 1.关闭Sendmail的Relay功能 所谓Relay就是指别人能用这台SMTP邮件服务器,给任何人发信,这样别有用心的垃圾发送者可以使用笔者单位的这台邮件服务器大量发送垃圾邮件,而最后别人投诉的不是垃圾发送者,而是单位的服务器.所以

  • 如何优雅地删除 Linux 中的垃圾文件的方法

    不知道大家是否也跟我一样,是一只要把的自己电脑文件安排的条理有序,把没用的文件会及时删掉的程序猿呢?如果是的话,那么我们可以愉快地探讨下文章的内容.如果不是的话,你也可以留下来凑凑热闹嘛(>-<). 下面要介绍的是今天的主角-- tmpwatch ,它能帮助我们递归删除在给定时间内没有访问的文件和空目录. 当然,我们也可以使用 find 命令查找并删除超过 x 天未访问的文件,不过 tmpwatch 可以一步到位,何乐而不为? tmpwatch 默认根据文件或目录的访问时间(access ti

  • Delphi7中群发Email邮件的方法

    本文实例讲述了Delphi7中群发Email邮件的方法.分享给大家供大家参考.具体分析如下: 这段时间需要对所有参加考试的考生将考生信息及考试信息通过电子邮件群发,经过多次调试,算是成功了,发来给大家参考一下: 总的思路是: 1.安装局域网版的邮件服务器,并通过设置DNS使得给服务器能给网外用户发送电邮,这方面的软件比较多,例如WinWebMail就不错,可以从官网下载:   2.需要使用到的控件:Indy10.0.15,可以通过百度搜索下载:   3.设置需要发送的电子邮箱服务器及账号信息 复

  • Linux中gpio接口的使用方法示例

    前言 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0-MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一个框架处理gpio,能够使用统一的接口来操作gpio.在讲gpio核心(gpiolib.c)之前先来看看gpio是怎么使用的 使用gpio 使用gpio接口需要包含#include <linux/gpio.h> ,在驱动中使用延时函数

  • linux中配置pptp服务器配置的方法

    1.验证内核是否加载了MPPE模块: modprobe ppp-compress-18 && echo MPPE is ok 2.安装所需的软件包: yum -y install ppp wget ftp://rpmfind.net/linux/epel/7/x86_64/p/pptpd-1.4.0-2.el7.x86_64.rpm rpm -ivh pptpd-1.4.0-2.el7.x86_64.rpm 3.配置PPP和PPTP的配置文件: grep ^[^#] /etc/ppp/op

  • python脚本当作Linux中的服务启动实现方法

    脚本服务化目的: python 在 文本处理中有着广泛的应用,为了满足文本数据的获取,会每天运行一些爬虫抓取数据.但是网上买的服务器会不定时进行维护,服务器会被重启.这样我们的爬虫服务就无法运行.这个时候我们可以把python脚本服务化,服务器重启后,脚本就会自动运行.解决服务器维护后需要手动运行python脚本. 实现方法: 1,给编写好的python脚本开头加上 #!/usr/bin/python 2,启动shell 脚本 编写 vi pystock.sh #vim /etc/init.d/

  • Linux中解除端口占用的方法

    在本例中,假设8080端口被占用. 1.查看8080端口是否被占用 netstat -anp | grep 8080 输出结果:tcp 0 0 :::8080 :::* LISTEN 3000/java 由上可知8080端口已经被开启. 2.查看占用8080端口的进程: fuser -v -n tcp 8080 输出结果: USER        PID   ACCESS COMMAND   8080/tcp:         zhu        1154    F.... java 3.杀死

  • 在Linux中使用history命令的方法

    用强大的 history 命令使你的命令行提示符更有效率. 随着我在终端中花费越来越多的时间,我感觉就像在不断地寻找新的命令,以使我的日常任务更加高效.GNU 的 history 命令是一个真正改变我日常工作的命令. GNU history 命令保存了从该终端会话运行的所有其他命令的列表,然后允许你重放或者重用这些命令,而不用重新输入它们.如果你是一个老玩家,你知道 history 的力量,但对于我们这些半吊子或新手系统管理员来说, history 是一个立竿见影的生产力增益. 历史 101 要

  • java中javamail收发邮件实现方法

    概述 1.邮件相关的标准 厂商所提供的 JavaMail 服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括: SMTP(Simple Mail Transfer Protocol) :即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. POP3(Post Office Protocol – Version 3) :即邮局协议版本 3 ,用于接收电子邮件的标准协议. IMAP(Internet Mail Access Protocol) :即 In

  • Linux中screen命令及使用方法

    Screen简介 Screen是一款由GNU计划开发的用于命令行终端切换的自由软件.用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换.GNU Screen可以看作是窗口管理器的命令行界面版本.它提供了统一的管理多个会话的界面和相应的功能. 官方网址:http://www.gnu.org/software/screen/ GUN Screen: 在Screen环境下,所有的会话都独立的运行,并拥有各自的编号.输入.输出和窗口缓存.用户可以通过快捷键在不同的窗口下切换,并可以自

随机推荐