快捷搜索:   nginx

Apache防止攻击

 为了防止恶意用户对Apache进行攻击,我们需要安装mod_security这个安全模块

mod_security 1.9.x模块的下载与安装 下载地址:http://www.modsecurity.org/download/index.html 建议使用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 “!image/(jpeg|bmp|gif)” # #伪装服务器标识 SecServerSignature “Microsoft-IIS/6.0″ 保存后重启apache即可!     为了防止Web服务器被DDoS攻击,我们需要安装mod_evasive这个防DDoS的模块 mod_evasive 1.10.x防DDoS模块的下载与安装 下载地址:http://www.zdziarski.com/projects/mod_evasive/ 解压后进入解压目录,执行 /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  #受到攻击时Apache运行用户执行的系统命令 #DOSSystemCommand “su - someuser -c ‘/sbin/… %s …’” #攻击日志存放目录,BSD上默认是 /tmp #DOSLogDir “/var/lock/mod_evasive”


<IfModule mod_security.c>  SecFilterEngine On  SecFilterCheckURLEncoding On  SecFilterDefaultAction "deny,log,status:500"  #SecFilterForceByteRange 32 126  #SecFilterScanPOST On  SecAuditLog logs/audit_log  ###  SecFilter "\.\./"  #####  SecFilter /etc/*passwd  SecFilter /bin/*sh
#for css attack  SecFilter "<( | )*script"  SecFilter "<(.| )+>"  #for sql attack  SecFilter "delete[ ]+from"  SecFilter "insert[ ]+into"  SecFilter "select.+from"  SecFilter "union[ ]+from"  SecFilter "drop[ ]"  </IfModule>
顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论