首页主机资讯Ubuntu中Nginx安全设置有哪些

Ubuntu中Nginx安全设置有哪些

时间2025-11-05 09:12:04发布访客分类主机资讯浏览978
导读:Ubuntu中Nginx安全设置指南 1. 隐藏Nginx版本信息与定制错误页面 隐藏版本号:编辑/etc/nginx/nginx.conf,在http块中添加server_tokens off;,彻底移除HTTP响应头中的Nginx版本...

Ubuntu中Nginx安全设置指南

1. 隐藏Nginx版本信息与定制错误页面

  • 隐藏版本号:编辑/etc/nginx/nginx.conf,在http块中添加server_tokens off; ,彻底移除HTTP响应头中的Nginx版本及操作系统信息,避免攻击者利用版本漏洞进行针对性攻击。
  • 自定义错误页面:在server块中配置统一错误处理,例如error_page 404 500 502 503 504 /error.html; ,并通过location = /error.html { internal; root /var/www/secure-errors; } 禁止直接访问错误页面,防止泄露服务器内部路径和配置细节。

2. 访问控制与请求限制

  • 限制HTTP方法:在serverlocation块中添加if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } ,拒绝PUT、DELETE等非常规HTTP方法,阻断异常请求。
  • 限制连接与请求频率
    • 使用limit_conn_zonelimit_conn限制单个IP的并发连接数,例如http { limit_conn_zone $binary_remote_addr zone=ops:10m; server { location / { limit_conn ops 1; } } } (每个IP最多1个连接)。
    • 使用limit_req_zonelimit_req限制请求速率,例如http { limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s; server { location / { limit_req zone=mylimit burst=5 nodelay; } } } (每秒1个请求,突发5个)。
  • 过滤IP访问:通过allow/deny指令限制特定IP访问敏感路径,例如location /admin { allow 192.168.1.100; deny all; }

3. SSL/TLS加密配置

  • 启用HTTPS:使用Certbot获取Let’s Encrypt免费证书,命令为sudo apt install certbot python3-certbot-nginx & & sudo certbot --nginx -d yourdomain.com,自动配置Nginx的443端口SSL监听。
  • 优化SSL参数:在server块中配置现代加密套件,例如ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_stapling on; ,禁用不安全的TLS 1.0/1.1,启用OCSP装订提升验证效率。
  • 强制HTTPS:添加add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; ,强制浏览器使用HTTPS,预防SSL剥离攻击。

4. 系统基础安全加固

  • 安装安全工具:安装UFW防火墙(sudo apt install ufw)和Fail2Ban(sudo apt install fail2ban),前者用于控制端口访问,后者用于防范暴力破解。
  • 配置防火墙规则:允许必要端口(SSH、HTTP、HTTPS),例如sudo ufw allow 22/tcp(修改为非标准端口更安全)、sudo ufw allow 80/tcpsudo ufw allow 443/tcp,然后启用防火墙sudo ufw enable
  • 系统与软件更新:定期更新系统和Nginx及其依赖库,例如sudo apt update & & sudo apt upgrade -y,启用自动更新(sudo apt install unattended-upgrades)以快速修复安全漏洞。

5. 日志管理与监控

  • 配置详细日志:自定义access_logerror_log格式,例如log_format security '$remote_addr - $http_x_forwarded_for - $time_iso8601 "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time'; access_log /var/log/nginx/security.log security; error_log /var/log/nginx/error.log crit; ,记录IP、请求时间、响应时间等信息,便于后续分析攻击模式。
  • 实时入侵检测:通过Fail2Ban关联Nginx日志,例如在/etc/fail2ban/jail.local中添加[nginx-badbots] enabled = true filter = nginx-badbots logpath = /var/log/nginx/security.log maxretry = 2 bantime = 86400,自动屏蔽频繁发起恶意请求的IP。

6. 高级安全头部设置

  • 添加安全头部:在server块中配置以下头部,提升浏览器端的安全防护:
    • add_header X-Frame-Options "SAMEORIGIN"; (防止点击劫持,允许同源iframe嵌入);
    • add_header Referrer-Policy "strict-origin"; (限制Referer信息泄露,仅发送同源URL);
    • add_header X-Content-Type-Options "nosniff"; (防止MIME类型嗅探攻击)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Ubuntu中Nginx安全设置有哪些
本文地址: https://pptw.com/jishu/742604.html
Nginx在Ubuntu中如何处理静态文件 Nginx在Ubuntu中如何实现负载均衡

游客 回复需填写必要信息