Nginx Basic Auth、IP 限制、WAF 规则初探

阅读:14 2025-07-23

本文介绍了如何使用 Nginx 配置 Basic Auth(基本认证)、IP 限制以及 Web 应用防火墙(WAF)基础规则,帮助运维工程师快速提升网站安全防护能力。内容涵盖配置方法与实战示例,适合入门和进阶读者。本文来自码农资讯网,专注于运维与安全技术分享。


一、Basic Auth 基本认证

Basic Auth 是一种简单的用户认证方式,通过用户名和密码保护网站的部分资源。

1. 生成密码文件

使用 htpasswd 命令生成认证密码文件:

sudo apt-get install apache2-utils  # Debian/Ubuntu安装htpasswd工具
htpasswd -c /etc/nginx/.htpasswd username

按提示输入密码即可。

2. Nginx 配置示例

location /admin/ {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

访问 /admin/ 目录时,浏览器会弹出认证框,需输入用户名密码。


二、IP 限制

通过 Nginx 配置,限制特定 IP 访问,防止非授权访问。

1. 只允许指定 IP 访问

location / {
    allow 192.168.1.0/24;
    allow 10.0.0.0/8;
    deny all;
}
  • 只允许内网指定网段访问,其他全部拒绝。

2. 禁止特定 IP

location / {
    deny 123.45.67.89;
    allow all;
}

拒绝单个恶意 IP 访问。


三、WAF(Web 应用防火墙)基础规则初探

WAF 能对 HTTP 请求进行过滤,防止常见攻击如 SQL 注入、XSS、文件包含等。

1. 使用开源 WAF:ModSecurity

  • ModSecurity 是 Nginx 的主流开源 WAF 模块。

  • 需先安装并启用 ModSecurity。

2. 简单示例配置

server {
    listen 80;
    server_name example.com;

    modsecurity on;
    modsecurity_rules_file /etc/nginx/modsec/main.conf;

    location / {
        proxy_pass http://backend;
    }
}

3. 常见规则示例

  • 阻止SQL注入:

SecRule REQUEST_URI "@rx select.+from" "deny,status:403,msg:'SQL Injection Attack Detected'"
  • 防止XSS攻击:

SecRule ARGS "@rx <script>" "deny,status:403,msg:'XSS Attack Detected'"

四、小结

  • Basic Auth 适合简易的后台保护。

  • IP 限制 适合只允许特定内网或IP访问。

  • WAF 是防御复杂攻击的重要利器,推荐结合ModSecurity或云WAF使用。

结合以上配置,能够有效提升 Nginx 网站的安全性,降低被攻击风险。


标签: Nginx
声明

1、部分文章来源于网络,仅作为参考。
2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!