首页主机资讯centos上nginx安全设置有哪些

centos上nginx安全设置有哪些

时间2025-11-13 18:51:03发布访客分类主机资讯浏览1374
导读:CentOS上Nginx安全设置关键措施 1. 基础安全防护 隐藏Nginx版本信息:在http或server块中添加server_tokens off;,避免响应头中泄露Nginx版本(如Server: nginx/1.25.3),减少...

CentOS上Nginx安全设置关键措施

1. 基础安全防护

  • 隐藏Nginx版本信息:在httpserver块中添加server_tokens off; ,避免响应头中泄露Nginx版本(如Server: nginx/1.25.3),减少针对性攻击风险。可通过curl -I http://localhost验证,响应头中无版本信息。
  • 禁用危险HTTP方法:通过if语句限制非必要请求方法(如TRACEPUTDELETE),防止恶意利用。例如全局禁止非GETPOST方法:if ($request_method !~ ^(GET|POST)$) { return 403; } ;或在location块中针对特定路径(如/admin)限制。
  • 权限与用户管理:以非root用户(如nginx)运行Nginx进程(user nginx; ),降低权限提升风险;设置配置文件权限为640chmod 640 /etc/nginx/nginx.conf),目录权限为755chmod -R 755 /var/www),避免未授权访问。

2. 访问控制策略

  • 基于IP的限制:使用allow/deny指令限制敏感路径或全站的IP访问。例如,仅允许内部网段访问/adminlocation /admin { allow 192.168.1.0/24; deny all; } ;或通过geo模块实现动态IP黑名单(如/etc/nginx/conf.d/blockips.conf中定义黑名单,if ($block_ip) { return 403; } )。
  • 基本身份验证:对敏感路径(如/protected)启用用户名密码验证。步骤:用htpasswd创建密码文件(sudo htpasswd -c /etc/nginx/.htpasswd username);在Nginx配置中添加auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd;
  • 防盗链配置:防止其他站点盗用静态资源(如图片、CSS)。通过valid_referers指令限制来源,例如:location ~* \.(jpg|gif|png)$ { valid_referers none blocked your-domain.com; if ($invalid_referer) { return 403; } }

3. HTTPS与加密配置

  • 强制HTTPS跳转:配置HTTP监听80端口并重定向到HTTPS,确保所有流量加密。例如:server { listen 80; server_name your-domain.com; return 301 https://$host$request_uri; }
  • SSL/TLS加固:启用TLS 1.2及以上安全协议(禁用SSLv2/SSLv3),配置强加密套件(如EECDH+AESGCM:EDH+AESGCM),启用HSTS(HTTP Strict Transport Security)强制浏览器使用HTTPS。示例:ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers EECDH+AESGCM:EDH+AESGCM:AES256+EECDH; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; " always;
  • 证书管理:使用Let’s Encrypt免费证书(通过certbot工具自动化申请)或商业证书,确保证书未过期且在有效期内。

4. 高级安全防护

  • 安全HTTP头设置:添加响应头防御常见Web攻击。例如:X-Frame-Options "SAMEORIGIN"(防止点击劫持)、X-XSS-Protection "1; mode=block"(启用浏览器XSS过滤)、Content-Security-Policy "default-src 'self'"(限制资源加载来源)、X-Content-Type-Options "nosniff"(防止MIME类型嗅探)。
  • 请求速率限制:使用limit_req模块限制请求速率,防御CC攻击。例如,全局设置速率限制(http { limit_req_zone $binary_remote_addr zone=req_limit:10m rate=10r/s; } ),在server块中应用(limit_req zone=req_limit burst=20 nodelay; ),允许每秒10个请求,突发20个请求排队。
  • 目录与文件防护:禁用自动目录索引(autoindex off; ),防止暴露目录结构;限制敏感文件访问(如.conf.log.bak),例如:location ~* \.(conf|log|bak)$ { deny all; }

5. 系统与运维安全

  • 防火墙配置:使用firewalld限制仅开放必要端口(80、443),阻止非法访问。例如:sudo firewall-cmd --permanent --zone=public --add-service=http; sudo firewall-cmd --permanent --zone=public --add-service=https; sudo firewall-cmd --reload
  • 日志与监控:开启详细访问日志(access_log /var/log/nginx/access.log; )和错误日志(error_log /var/log/nginx/error.log; ),定期分析日志(如用grep查找403500错误),及时发现异常行为。
  • 定期更新与漏洞管理:定期更新Nginx及依赖库(sudo yum update nginx -y),修复已知漏洞;通过nginx -V检查编译参数,移除未使用的高危模块(如http_rewrite_module)。

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


若转载请注明出处: centos上nginx安全设置有哪些
本文地址: https://pptw.com/jishu/747316.html
CentOS SFTP服务器如何设置日志记录 centos系统下如何排查tomcat的故障

游客 回复需填写必要信息