借助ModSecurity确保绝对安全

ModSecurity是面向Apache的最受欢迎的安全模块。我们之前写过一篇文章,题为《借助ModSecurity保护和审查你的Web服务器》(http://olex.openlogic.com/wazi/2011/protect-and-audit-your-web-server-with-apaches-modsecurity/),对它已作了介绍,所以我们这里只表示它可以提供全面的Web流量检查、封阻和审查功能,让你可以保护Web服务器,远离已知和未知的安全漏洞,包括分布式拒绝服务(DDOS)攻击。

借助ModGeoIP检测访客的所在国家

ModGeoIP基于MaxMind的GeoIP数据和技术(http://www.maxmind.com/app/ip-location),它让你只要使用本地保存的GeoIP数据库,就可以确定访客的所在国家。一旦你知道了访客的所在国家,就能处理一些事务,比如把他重定向至某个特定的网页或者拒绝对方访问。

想安装ModGeoIP,你首先需要C库和程序包zlib-devel,这是前提条件。下载GeoIP C库的最新版本(http://www.maxmind.com/download/geoip/api/c/),对它进行抽取,然后执行通常的安装步骤,执行./configure && make && make install。

接下来,安装ModGeoIP本身。下载最新版本,对它进行抽取,然后执行apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c。apxs命令的变量意味着,把该模块安装到默认模块目录/usr/lib/httpd/modules/,借助LoadModule命令把它装入到Apache以此来激活它,使用/usr/local/lib里面的库,加入/usr/local/include目录,搜索库GeoIP,然后通过C源文件来进行编译。

一旦你重启Apache后,ModGeoIP模块应该列在命令apachectl -t -D DUMP_MODULES的输出中。想启用它,创建一个文件/etc/httpd/conf.d/geoip.conf,把在整个服务器范围内启用该模块的命令以及含有GeoIP数据库的二进制文件路径放到它里面:

GeoIPEnable On

GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat

随后,你可以开始根据Apache目录或虚拟主机配置来使用ModGeoIP,或者借助本地.htaccess文件。配置选项一样。比如说,如果你想拒绝来自美国境外的任何访客访问:

SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry

Deny from all

Allow from env=AllowCountry

想了解更多例子和信息,请参阅ModGeoIP的主页(http://www.maxmind.com/app/mod_geoip)。

借助ModStatus进行监控

你应该总是监控Apache或任何服务,以确保性能最佳。Apache的ModStatus模块为你提供了关于当前服务器运行状况的信息。

ModStatus默认情况下安装在CentOS中,但并未被启用。想启用它,打开Apache的主配置文件/etc/httpd/conf/httpd.conf,去掉下面代码的注释,把your_ip换成你的IP:

SetHandler server-status

Order deny,allow

Deny from all

Allow from your_ip

此外,去掉ExtendedStatus On的注释,那样你就能看到更多信息,比如当前请求访问的URL。重新装入Apache,试试访问http://yourserver/server-status,证实ModStatus在正常运行。在刚打开的页面上,你应该能够看到与Apacehe及其进程(分支进程或线程)和处理器使用情况有关的所有统计信息。

如果你在其URL:http://yourserver/server-status?auto的末尾加上?auto,ModStatus还能得出机器可读的输出。然后,其他程序就能阅读和分析输出。自动模式数据被Cacti用来以实用趋势绘制图形,以及被Nagios用来监控有无异常问题。


相关内容