常见的web服务器安全加固方案

Royal
2022-07-05 / 0 评论 / 362 阅读 / 正在检测是否收录...

常见的web服务器安全加固,以nginx和apache为例

nginx安全加固

  • 在Nginx中禁用server_tokens指令,隐藏nginx错误页面显示的当前版本,避免由特定版本发起的漏洞攻击
    #隐藏版本号
 server_tokens off;
  • 隐藏Nginx后端服务X-Powered-By头
proxy_hide_header X-Powered-By;  
proxy_hide_header Server;
  • nginx进程启动账号修改为非root,降低攻击概率
user www www;
  • 把控配置文件权限以抵御外来攻击

修改Nginx配置文件权限:执行chmod 644 <conf_path>来限制Nginx配置文件的权限;(<conf_path>为配置文件的路径,表示拥有者有读取+写入权限,同组用户和其他用户只有读取权限

  • 上传文件大小限制10M(或者更小,根据需求而定)以内
client_max_body_size 10m;
  • 在Nginx中禁用不需要的HTTP方法
if ($request_method !~ ^(GET|POST)$) {
          return 403 'Method Forbidden';
}
  • Nginx自定义404错误当静态资源不存在时
error_page 404 @jump_to_error;
        location @jump_to_error {
            return 404 'Not Found Page';
  }

apache安全加固

  • 严格设置配置文件和日志文件的权限,防止未授权访问

执行chmod 600 /etc/httpd/conf/httpd.conf命令设置配置文件为属主可读写,其他用户无读写权限
执行chmod 644 /var/log/httpd/*.log命令设置日志文件为属主可读写,其他用户拥有只读权限

  • 禁止Apache访问Web目录之外的任何文件
Order Deny,Allow
Deny from all
  • 禁止目录列出

目录列出会导致明显信息泄露或下载,建议禁止Apache列表显示文件。在/etc/httpd/httpd.conf配置文件中删除Options的Indexes设置即可。
如果根目录没有index.html入口文件会把目录列出来

#Options Indexes FollowSymLinks #删掉Indexes
或者 Options -Indexes 

l5925zet.png

  • 隐藏Apache的版本号
    修改httpd.conf配置文件:apache2的配置文件中(/etc/apache2/conf-enabled)
ServerSignature Off 
ServerTokens Prod
  • 关闭TRACE功能关闭TRACE功能,防止TRACE方法被访问者恶意利用
    在/etc/httpd/conf/httpd.conf配置文件中添加以下设置参数:
TraceEnable Off
  • 禁用非法 HTTP 方法
    修改httpd.conf配置文件,只允许get、post方法。
<Location />  
<LimitExcept GET POST CONNECT OPTIONS> 
  Order Allow,Deny 
  Deny from all 
</LimitExcept> 
</Location>

自定义403错误

ErrorDocument 403 "Method Forbidden"
  • Apache自定义404错误当静态资源不存在时
ErrorDocument 404  “自定义错误”
0

评论

博主关闭了当前页面的评论