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

 

posted @ 2024-04-13 15:36  落落的学习  阅读(169)  评论(0编辑  收藏  举报