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 网站的安全性,降低被攻击风险。
声明
1、部分文章来源于网络,仅作为参考。 2、如果网站中图片和文字侵犯了您的版权,请联系1943759704@qq.com处理!