ubuntu nginx如何防止攻击
导读:Ubuntu 上 Nginx 的安全加固与防攻击实践 一 基础防护与访问控制 使用 UFW 限制暴露面,仅开放必要端口(如 22/80/443),并默认拒绝入站:sudo ufw default deny incoming;sudo uf...
Ubuntu 上 Nginx 的安全加固与防攻击实践
一 基础防护与访问控制
- 使用 UFW 限制暴露面,仅开放必要端口(如 22/80/443),并默认拒绝入站:sudo ufw default deny incoming;sudo ufw allow 22,80,443/tcp;sudo ufw enable。
- 隐藏 Nginx 版本信息:在 /etc/nginx/nginx.conf 的 http 块中加入 server_tokens off; ,减少信息泄露。
- 限制可用 HTTP 方法:在 server 块中加入 if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } ,对非法方法直接断开。
- 配置合理 超时 与连接:client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10; ,降低慢速攻击与连接占用风险。
- 启用 HTTPS 并自动续期:安装 Certbot(sudo apt install certbot python3-certbot-nginx),执行 sudo certbot --nginx -d yourdomain.com,获取并自动配置 Let’s Encrypt 证书。
二 速率限制与连接控制
- 在 http 块定义共享内存区与速率:limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s; (按业务调整阈值)。
- 在需要保护的 location 应用限流与突发:limit_req zone=mylimit burst=5 nodelay; ,平滑处理短时高峰并阻断滥用。
- 结合 连接数 与 事件模型 控制资源:events { worker_connections 1024; use epoll; } ,避免进程/连接耗尽。
- 针对异常访问模式(如高频 404/403/500、扫描特征)设置更严格的速率与封禁策略,联动 Fail2Ban 自动拉黑,减轻应用层压力。
三 日志监控与自动封禁
- 实时查看与排查:tail -n 200 /var/log/nginx/access.log;tail -n 200 /var/log/nginx/error.log;grep “404|403|500” /var/log/nginx/access.log | tail -50。
- 部署 Fail2Ban:sudo apt-get install fail2ban;sudo systemctl enable --now fail2ban;在 /etc/fail2ban/jail.local 启用 [nginx] 监狱,设置 filter、logpath、maxretry、bantime、action(如 iptables-multiport),对恶意来源自动封禁。
- 对扫描类与暴力路径访问,可配置更激进的策略(如 maxretry=1、findtime=300、对多端口统一封禁),缩短攻击窗口。
四 Web 应用防火墙 WAF
- 使用 ModSecurity-nginx + OWASP CRS:安装 ModSecurity 与连接器,重新编译 Nginx 加载模块;在 /etc/nginx/modsec/main.conf 中启用引擎并包含 CRS:SecRuleEngine On;SecRequestBodyAccess On;SecResponseBodyAccess On;Include /etc/nginx/modsec/coreruleset/crs-setup.conf;Include /etc/nginx/modsec/coreruleset/rules/*.conf;在 server 块加入 modsecurity on; modsecurity_rules_file /etc/nginx/modsec/main.conf; ,重启 Nginx 生效。
- 使用 NAXSI(Nginx Anti-XSS & SQLi):默认拒绝、按需放行,对 XSS/SQLi 等常见注入特征进行拦截,适合作为轻量 WAF 方案。
五 常见攻击特征与处置要点
- 敏感文件与目录扫描:如 /.env、/.git/、/admin/、/phpmyadmin/、/solr/、/owncloud/ 等;应在 Nginx 配置中统一返回 403/444 并配合 Fail2Ban 快速封禁。
- 恶意载荷与僵尸网络特征:如 wget 下载恶意样本、Mozi 等;通过日志特征识别并在 Fail2Ban 中设置低阈值即时拉黑。
- 漏洞扫描与后台探测:如 /Telerik.Web.UI.WebResource.axd、/sitecore/… 等;结合 WAF 规则与速率限制降低风险。
- 持续运营:定期更新系统与 Nginx(如 unattended-upgrades)、备份配置与证书、验证规则有效性(nginx -t)、分层防御(CDN/WAF/限流/防火墙)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu nginx如何防止攻击
本文地址: https://pptw.com/jishu/755911.html
