借助ModSpamhaus进行保护

某些IP地址已知受到了危及,已知发送垃圾邮件或被用于DDOS攻击及其他恶意活动。Spamhaus项目是核查IP地址声誉的最佳公共来源。人们通常认为Spamhaus是一个与邮件服务器有关的项目,但由于需要类似的Web服务器保护机制,结果促使有人为Apache开发了ModSpamhaus,这个扩展模块让系统管理员可以阻止有人通过声名狼藉的IP地址进行访问。

想安装ModSpamhaus,先下载最新的安装程序包(http://sourceforge.net/projects/mod-spamhaus/files/latest/download),对它进行抽取。找到src目录中的文件mod_spamhaus.c,执行命令apxs -i -a -c mod_spamhaus.c,手动创建这个Apache模块。变量告诉apxs将该模块安装到默认的模块目录usr/lib/httpd/modules/中,使用LoadModule命令把它装入到Apache来激活它,并通过C源文件来进行编译。

接下来,创建ModSpamhaus的配置文件/etc/httpd/conf.d/spamhaus.conf。填入下列配置选项:

MS_METHODS POST,PUT,OPTIONS,CONNECT

MS_WhiteList /etc/spamhaus_whitelisted

MS_CacheSize 1000

就大多数架构而言,这个普通的配置可以被接受。MS_METHODS选项定义了应该检查哪些HTTP方法:POST、PUT、OPTIONS和CONNECT。如果你在防范DDOS攻击或你的Web表单使用GET方法,还要添加GET。选项MS_WhiteList让你可以用加入白名单的IP地址来指定文件;也就是说,不管声誉好坏,这些地址都将被允许访问。MS_CacheSize指定了关于多少个IP地址应该缓存起来的信息。遭到比较严重的DDOS攻击时,你可以加大这个数,阻止数量更多的重复性的恶意IP地址。

使用ModSpamhaus可能会导致你的网站性能下降,如果你启用它来检查GET等更常使用的HTTP方法,更是如此。为了解决这个问题,你可以安装自己的rbldnsd(DNS守护程序,适合运行基于DNS的阻止列表),并使用ModSpamhaus选项MS_DNS来指定其地址。拥有自己的rbldnsd让你可以使用本地数据库、定期拷贝远程数据库,从而优化性能。

所有上述模块仅仅是数百个Apache扩展模块中的少数几个,代表了旨在改善Apache Web服务器功能的模块。

小知识:APache eXtenSion工具

不是所有的Apache模块都是以预编译程序包的形式出现的。当你遇到不是预编译程序包的模块时,可以借助由CentOS程序包httpd-devel提供的APache eXtenSion(apxs)工具,从源文件来安装它。Apxs通过三种类型的文件:C语言源文件(.c)、对象文件(.o)和库归档文件(.a),创建Apache模块,作为动态共享对象(DSO)。DSO文件通过mod_so模块,在运行过程中装入到Apache。通过运行apachectl -l,核实一下你的Apache是不是安装了mod_so,寻找输出当中的mod_so.c。


相关内容