关于linux下apache优化,自己在网上查了点资料,并实践了一下,感觉很好,特整理一下,供各位参考
 
为了防止恶意用户对 Apache 进行***,我们需要安装 mod_security 这个安全模块<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

mod_security 1.9.x 模块的下载与安装

建议使用 1.9.x ,因为 2.x 的配置指令与 1.x 完全不同,解压后进入解压目录,执行:

/home/apache/bin/apxs -cia mod_security.c

编译完成后, /home/apache/modules 下会生成一个 mod_security.so 文件

然后 kate /home/apache/conf/httpd.conf

加入以下选项(如果没有的话)

# 启用 mod_security 这个安全模块
LoadModule security_module modules/mod_security.so (
这一句通常会被自动加入 )

# 打开过滤引擎开关。如果是 Off ,那么下面这些都不起作用了。
SecFilterEngine On
#
把设置传递给字目录
SecFilterInheritance Off
#
检查 url 编码
SecFilterCheckURLEncoding On
#
检测内容长度以避免堆溢出***
#SecFilterForceByteRange 32 126
#
日志的文件和位置。一定要先建立好目录,否则 apache 重新启动的时候会报错。
SecAuditLog logs/audit_log
# debug
的设置
#SecFilterDebugLog logs/modsec_debug_log
#SecFilterDebugLevel 1
#
当匹配 chmod,wget 等命令的时候 , 重新定向到一个特殊的页面 , 让***者知难而退
SecFilter chmod redirect:http://www.sina.com
SecFilter wget redirect:http://www.sina.com
#
检测 POST 数据,注意,请甚用这个开关,可能会导致一些 post 页面无法访问。详细的信息,请察看 www.modsecurity.org的文档,其中有详细的post编码要求。
#SecFilterScanPOST Off
#
缺省的动作
SecFilterDefaultAction “deny,log,status:406″
#
重新定向用户
#SecFilter xxx redirect:http://www.sina.com
#
防止操作系统关键词***
SecFilter /etc/*passwd
SecFilter /bin/*sh
#
防止 double dot ***
SecFilter “\.\./”
#
防止跨站脚本 (CSS) ***
SecFilter “<( |\n)*script”
# Prevent XSS atacks (HTML/Javascript injection)
SecFilter “<(.|\n)+>”
#
防止 sql 注入式***
SecFilter “delete[[:space:]]+from”
SecFilter “insert[[:space:]]+into”
SecFilter “select.+from”
#
重定向 exe asp 请求
SecFilterSelective REQUEST_URI “\.exe” “redirect:http://www.google.com”
SecFilterSelective REQUEST_URI “\.asp” “redirect:http://www.google.com”
#
下面是限制了 upload.php 文件只能用来上传 jpeg.bmp gif 的图片
#
#SecFilterInheritance On
#SecFilterSelective POST_PAYLOAD “!p_w_picpath/(jpeg|bmp|gif)”
#
#
伪装服务器标识
SecServerSignature “Microsoft-IIS/6.0″

保存后重启 apache 即可!

 

 

 

为了防止 Web 服务器被 DDoS ***,我们需要安装 mod_evasive 这个防 DDoS 的模块
mod_evasive 1.10.x
DDoS 模块的下载与安装

解压后进入解压目录,执行
/home/apache/bin/apxs -cia mod_evasive20.c

编译完成后, /home/apache/modules 下会生成一个 mod_evasive20.so 文件

然后 kate /home/apache/conf/httpd.conf

加入以下选项(如果没有的话)

# 启用 mod_evasive for Apache 2.x DDoS 模块
LoadModule evasive20_module modules/mod_evasive20.so (
这一句通常会被自动加入 )

# 记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
DOSHashTableSize 3097
#
同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为***,同一时间的数值可以在 DosPageInterval 参数中设置。
DOSPageCount 3
#
同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在 DOSSiteInterval 中设置。
DOSSiteCount 40
#
设置 DOSPageCount 中时间长度标准,默认值为 1
DOSPageInterval 2
#DOSSiteInterval 2
设置 DOSSiteCount 中时间长度标准,默认值为 1
DOSSiteInterval 2
#
被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。
DOSBlockingPeriod 10
#
设置受到***时接收***信息提示的邮箱地址。
#DOSEmailNotify you@yourdomain.com
#
受到***时 Apache 运行用户执行的系统命令
#DOSSystemCommand “su - someuser -c ‘/sbin/… %s …’”
#
***日志存放目录, BSD 上默认是 /tmp
#DOSLogDir “/var/lock/mod_evasive”