12、web 中间件加固-apache 加固
1.账号设置
1.1.防止 webshell 越权使用
修改 httpd.conf:/etc/httpd/conf/httpd.conf 或编译路径下 /conf/httpd.conf
检查程序启动账号和用户组
user apache或nobody
group apache或nobody
一般情况下默认用户符合安全要求
1.2.非超级用户权限禁止修改 apache 主目录
在 httpd.conf 文件中查找主目录位置:grep "ServerRoot" /etc/httpd/conf/httpd.conf
修改权限:
chmod -R 700 /etc/httpd/
chmod 644 /var/log/httpd/*.log
2.日志设置
2.1.修改日志级别,记录格式
修改 httpd.conf 文件
更改错误日志:
LogLevel notice(更多的记录信息,但会占用大量空间)
ErrorLog /logs/error_log(可根据磁盘规划更改)
更改访问日志
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Accept}i\"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /logs/access_log combined(可根据磁盘规划更改)
3.禁止访问外部文件
防止访问网站目录以外的文件
打开 httpd.conf 检查关键语法
<Directory /> AllowOverride none Require all denied </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>
4.禁止列出目录
防止使用 web 直接浏览目录内容
修改 httpd.conf 文件
去掉站点配置信息中的 Indexes 选项(Indexes:无法在当前目录下找到首页文件,就显示目录内容)
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
5.错误页面重定向
防止通过默认错误回馈泄露敏感信息
修改 httpd.conf 文件
编辑错误页面配置:
ErrorDocument 400 /error400.html ErrorDocument 401 /error401.html ErrorDocument 403 /error403.html ErrorDocument 404 /error404.html ErrorDocument 405 /error405.html ErrorDocument 500 /error500.html 错误页面在站点根目录下创建,也可以在子目录中 错误信息还可以使用 ”直接输出提示“
6.拒绝服务防范
合理设置会话时间,防 止拒绝服务
编辑 httpd.conf
修改内容:
Timeout 10
KeepAlive On
KeepAliveTimeout 15
此处的连接间隔和 session 保持时间单位都是秒,一定要根据实际情况,分析后再设定
7.隐藏程序版本号
避免被针对漏洞
编辑 httpd.conf
修改信息:
ServerSignature Off
ServerTokens Prod
8.关闭 TRACE 功能
防止 trace 方法被恶意利用泄露信息
编辑 httpd.conf
修改信息:TraceEnable Off
9.禁用 CGI 功能
确保不适用 cgi 程序的情况下,关闭 cgi 功能(开启状态下,可运行脚本)
编辑 httpd.conf
注释信息如下
ScriptAlias /cgi-bin/ "/var/www/cgi-bin" <Directory "/var/www/cgi-bin"> AllowOverride Nonde Options None Require all granted </Directory> LoadModule cgi_module modules/mod_cgi.so
10.绑定监听地址
服务器多个 IP 时,绑定业务接口 IP
编辑 httpd.conf
添加监听
Listen xx.xx.xx.xx:80
如果页面为私有页面,还可以更改默认端口值
11.禁用非法 HTTP 方法
禁用 put、delete 等危险的 http 方法
编辑 httpd.conf
加入信息:
除了这些方法,以外都可以使用
<Location /> <LimitExcept GET POST CONNECT OPTIONS> AllowOverride None Require all granted </LimitExcept> </Location>
12.防止 apache 解析漏洞
防止非法文件绕过合法性检查
编辑 httpd.conf
添加配置信息
将文件后缀定死了
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> <FilesMatch "\.phps$"> SetHandler application/x-httpd-php-source </FilesMatch>
13.防止 sql 注入
禁止 PHP 页面对 sql 注入给予反馈
修改 php.ini 文件:/etc/php.ini
加入或修改信息:magic_quotes_gpc=On
14.限制请求消息长度
防止溢出漏洞
编辑 httpd.conf
添加信息:LimitRequestBody 102400