为了防止恶意用户对Apache进行攻击,我们需要安装mod_security这个安全模块。 mod_security 1.9.x模块的下载与安装 下载地址:https://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:https://www.sina.com SecFilter wget redirect:https://www.sina.com \#检测POST数据,注意,请甚用这个开关,可能会导致一些post页面无法访问。详细的信息,请察看www.modsecurity.org 的文档,其中有详细的post编码要求。 \#SecFilterScanPOST Off \#缺省的动作 SecFilterDefaultAction “deny,log,status:406″ \#重新定向用户 \#SecFilter xxx redirect:https://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:https://www.google.com” SecFilterSelective REQUEST_URI “.asp” “redirect:https://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模块的下载与安装 下载地址:https://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”