©启明星辰1996-2018版权所有1启明星辰网络空间安全学院1Apache加固liang_huixue@venustech.com.cn2018启明星辰培训认证部梁会雪©启明星辰1996-2018版权所有启明星辰网络空间安全学院©启明星辰1996-2018版权所有2启明星辰网络空间安全学院2目录/Contents010203Apache安全概述Apache安全加固总结©启明星辰1996-2018版权所有3启明星辰网络空间安全学院3©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院Apache安全概述开源web容器Apache常见安全问题Apache解析漏洞©启明星辰1996-2018版权所有4启明星辰网络空间安全学院4©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院Apache安全概述Linux系统开启Apache服务Apache在centos7中是ApacheHTTPserver,所以想安装Apache其实是要安装httpd。查看安装与否:httpd–V启动apache服务:servicehttpdstartsystemctlstarthttpd.service查看端口是否开启:netstat–an|grep80关闭Apache服务:servicehttpdstopsystemctlstarthttpd.service查看端口是否关闭:netstat–an|grep80©启明星辰1996-2018版权所有5启明星辰网络空间安全学院5目录/Contents010203Apache安全概述Apache安全加固总结©启明星辰1996-2018版权所有6启明星辰网络空间安全学院602Apache安全加固2.1补丁安装2.2删除无用文件2.3子进程用户设置2.4隐藏版本信息2.5禁止目录遍历2.6禁止WEB目录外的文件访问2.7监听地址2.8禁用CGI2.9禁用SSI2.10日志审核2.11自定义错误信息2.12关闭TRACE2.13关键文件权限2.14禁用非法HTTP方法2.15SESSION时间设置2.16连接数设置2.17上传目录设置2.18保护敏感目录2.19限制IP访问©启明星辰1996-2018版权所有7启明星辰网络空间安全学院7©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.1补丁安装获取最新版Apache软件包,升级安装查看apache版本在下载最新版Apache源码包,编译安装©启明星辰1996-2018版权所有8启明星辰网络空间安全学院8©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.2删除无用文件有选择性的删除删除不使用的默认安装的CGI脚本#rm–rf/var/*寻找文件:find/-name“cgi-bin”©启明星辰1996-2018版权所有9启明星辰网络空间安全学院9©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.3子进程用户设置如果没有设置用户和组,则新建用户,并在Apache配置文件中指定(1)创建Apache组:groupaddApache(2)创建Apache用户并加入Apache组:useraddApache–gApache(3)将下面两行加入Apache配置文件httpd.conf中(/etc/httpd/conf/httpd.conf)UserApacheGroupApache©启明星辰1996-2018版权所有10启明星辰网络空间安全学院10©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.4隐藏版本信息修改Apache配置文件httpd.confServerSignatureOff#关闭服务器生成页面的页脚中版本信息ServerTokensProd#关闭服务器应答头中的版本信息修改配置前:修改配置后:©启明星辰1996-2018版权所有11启明星辰网络空间安全学院11©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院配置文件中解释:OrderDeny,Allow先检查禁止设置,没有禁止的全部允许。OrderAllow,DenyDenyfromAll无条件禁止访问OrderDeny,AllowDenyfromip1,ip2禁止部分内容的访问,其他的全部开放OrderAllow,DenyAllowfromallDenyfromip1,ip2禁止部分内容的访问,其他的全部开放©启明星辰1996-2018版权所有12启明星辰网络空间安全学院12©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.5禁止目录遍历修改Apache配置文件httpd.conf,在“Indexes”前面添加减号,禁止找不到默认主页列出目录下文件Directory/var/注释:添加“-”的意思是禁止目录遍历,“+”的意思是允许目录遍历。©启明星辰1996-2018版权所有13启明星辰网络空间安全学院13©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.6禁止WEB目录外的文件访问1、参考配置操作编辑httpd.conf配置文件,“vi/etc/httpd/conf/httpd.conf”Directory/OrderDeny,AllowDenyfromall/Directory2、补充操作说明设置可访问目录,Directory/webOrderAllow,DenyAllowfromall/Directory其中/web为网站根目录。©启明星辰1996-2018版权所有14启明星辰网络空间安全学院14©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.7监听地址修改Apache配置文件httpd.conf,设置只监听1.1.1.1地址的80端口Listen1.1.1.1:80©启明星辰1996-2018版权所有15启明星辰网络空间安全学院15©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.8禁用CGI修改Apache配置文件httpd.conf,把相关配置和模块都注释掉#LoadModulecgi_modulemodules/mod_cgi.so#ScriptAlias/cgi-bin//var/©启明星辰1996-2018版权所有16启明星辰网络空间安全学院16©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.9禁用SSISSI:HTML静态页面中使用的指令,当页面在服务端执行的时候可以被服务端解析。修改Apache配置文件httpd.conf,把相关模块注释掉,在“Includes”前面添加减号#LoadModuleinclude_modulemodules/mod_include.soDirectory/var/©启明星辰1996-2018版权所有17启明星辰网络空间安全学院17©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.10日志审核修改Apache配置文件httpd.conf,正确设置错误日志和访问日志后,重新启动ApacheIfModulelog_config_moduleLogFormat%h%l%u%t\%r\%s%b\%{Referer}i\\%{User-Agent}i\combined#默认已定义好的日志格式,combined是日志格式名LogFormat%h%l%u%t\%r\%s%bcommon#默认已定义好的日志格式,common是日志格式名/IfModule操作:把内容复制到a.txt中,放在linux系统桌面Vim编辑器编辑httpd.conf:vimhttpd.conf在末行输入“:r!~/Desktop/a.txt”©启明星辰1996-2018版权所有18启明星辰网络空间安全学院18©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.11自定义错误信息修改Apache配置文件httpd.conf,自定义错误信息,可以设置返回指定字符串,文件或重定向地址,如下:ErrorDocument500Theservermadeabooboo.ErrorDocument404/missing.htmlErrorDocument402常见错误代码:403禁止访问;404找不到页面;500是服务器内部错误©启明星辰1996-2018版权所有19启明星辰网络空间安全学院19©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.12关闭TRACE防止TRACE方法被访问者恶意利用修改Apache配置文件httpd.conf,添加“TraceEnableOff”注:适用于Apache2.0以上版本测试:未关闭之前:telnetIP80有显示关闭之后:telnetIP80无显示©启明星辰1996-2018版权所有20启明星辰网络空间安全学院20©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.13关键文件权限使用命令“chmod600/etc/httpd/conf/httpd.conf”设置配置文件为属主可读写,其他用户无权限使用命令“chmod644/var/log/httpd/*.log”设置日志文件为属主可读写,其他用户只读权限©启明星辰1996-2018版权所有21启明星辰网络空间安全学院21©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.14禁用非法HTTP方法编辑httpd.conf文件,只允许get、post方法LimitExceptGETPOSTDenyfromall/LimitExcept©启明星辰1996-2018版权所有22启明星辰网络空间安全学院22©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.15SESSION时间设置编辑httpd.conf配置文件,Timeout10#客户端与服务器端建立连接前的时间间隔KeepAliveOnKeepAliveTimeout15#限制每个session的保持时间是15秒注:此处为一建议值,具体的设定需要根据现实情况。©启明星辰1996-2018版权所有23启明星辰网络空间安全学院23©启明星辰1996-2015版权所有启明星辰集团网络空间安全学院2.16连接数设置使用httpd-l检查Apache的工作模式,如列出prefork.c,则进行下列操作:修改httpd.conf文件找到IfModuleprefork.cStartServers8MinSpareServers5MaxSpareServers20MaxClients150MaxRequestsPerChild1000/IfModule修改MaxClients150为需要的连接数,如150ServerLimit1500//连接数大于256需设置此项MaxClients1500然后保存退出©启明星辰1996-2018版权