IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    如何配置 Nginx 防止 CC 攻击

    Teacher Du发表于 2024-09-24 16:45:38
    love 0

    CC 攻击是一种网络攻击手段,属于 DDoS 攻击的一种形式。CC 攻击的主要目的是通过发送大量看似合法的请求到目标服务器,耗尽服务器的资源,使得服务器无法处理正常的用户请求,从而导致网站服务无法访问。

    限制请求速度

    1
    2
    3
    4
    5
    6
    limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
    server {
    location /login.html {
    limit_req zone=one;
    }
    }

    注意:在安装 Nginx 时加载 ngx_http_limit_req_module 模块,通过 limit_req_zone 指令定义请求速率限制的区域,并使用 limit_req 指令在特定的 location 中应用这些限制。这样设置可限制每个客户端 IP 每分钟最多发起 30 个请求。

    限制连接数量

    1
    2
    3
    4
    5
    6
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    server {
    location /store/ {
    limit_conn addr 10;
    }
    }

    注意:在安装 Nginx 时加载 ngx_http_limit_conn_module 模块,通过 limit_conn_zone 指令定义连接数量限制的区域,并使用 limit_conn 指令在特定的 location 中应用这些限制。这将限制每个客户端的 IP 同时最多只能有 10 个连接。

    关闭慢速连接

    1
    2
    3
    4
    server {
    client_body_timeout 5s;
    client_header_timeout 5s;
    }

    注意:通过设置 client_body_timeout 和 client_header_timeout 指令来定义读取客户端请求的超时时间,可以关闭慢速连接。这样可防止攻击者通过慢连接攻击耗尽服务器资源。

    设置 IP 黑名单和白名单

    1
    2
    3
    4
    location / {
    allow 192.168.1.0/24;
    deny all;
    }

    注意:使用 allow 和 deny 指令可控制特定 IP 地址或 IP 范围的访问权限。这样可以允许特定 IP 段访问,而拒绝其它所有 IP 访问。

    限制文件类型和请求大小

    1
    2
    3
    4
    5
    6
    7
    8
    server {
    location /upload/ {
    client_max_body_size 10M;
    if ($content_type ~* "^image/") {
    return 403 "Only non-image files are allowed.";
    }
    }
    }

    注意:通过 client_max_body_size 指令限制上传文件大小和类型,防止因大文件上传或超大数据包导致的服务中断或资源耗尽。

    其它限制

    可集成 Fail2Ban 工具,对日志文件进行自动化监控,一旦检测异常行为或恶意 IP 地址,立即将其加入黑名单并封锁。

    定制化错误页面不仅能提升用户体验,还能在遭遇攻击时减少攻击者获取的有用信息。

    持续关注 Nginx 的错误日志,借助日志分析工具,及时发现并响应任何异常行为或攻击迹象。

    强制所有的数据传输通过 HTTPS 加密,可以有效抵御中间人攻击和数据泄露风险。



沪ICP备19023445号-2号
友情链接