Nginx安全加固01

Nginx安全加固:
Clear-Site-Data,
Content-Security-Policy,
Permissions-Policy,
Strict-Transport-Security,
X-Permitted-Cross-Domain-Policies,
X-Frame-Options响应头缺失问题
项目被扫出了漏洞,需要安全加固,看了下大部分都是和请求头相关的,

以下为nginx配置文件

...
#加载去server头插件
load_module modules/ngx_http_headers_more_filter_module.so;
...

http{
...
#启用gzip
  gzip on;
  gzip_comp_level 5;
  gzip_min_length 256;
  gzip_proxied any;
  gzip_vary on;
  gzip_types
  application/atom+xml
  application/javascript
  application/json
  application/ld+json
  application/manifest+json
  application/rss+xml
  application/vnd.geo+json
  application/vnd.ms-fontobject
  application/x-font-ttf
  application/x-web-app-manifest+json
  application/xhtml+xml
  application/xml
  font/opentype
  image/bmp
  image/svg+xml
  image/x-icon
  text/cache-manifest
  text/css
  text/plain
  text/vcard
  text/vnd.rim.location.xloc
  text/vtt
  text/x-component
  text/x-cross-domain-policy;

  ...
  client_max_body_size 300M;

#去掉server头信息
  more_clear_headers 'Server';

#安全加固
  keepalive_timeout 55;
  client_body_timeout 10;
  client_header_timeout 10;
  send_timeout 10;
  limit_conn ops 2000;
  limit_conn_zone $binary_remote_addr zone=ops:10m;
  autoindex off;
  dav_methods off;
  server_tokens off;
  client_body_buffer_size 1K;
  client_header_buffer_size 1k;
  large_client_header_buffers 2 1k;
  #add_header Content-Security-Policy "default-src 'self' https://a.cn:8822/ https://b.cn/ https://c.cn/ https://d.cn:8553/ 'unsafe-inline' 'unsafe-eval' blob: data:;";
  add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
  add_header X-Permitted-Cross-Domain-Policies "master-only";
  add_header Referrer-Policy "origin";
  add_header X-Download-Options "noopen" always;
  #add_header Clear-Site-Data: "*";
  #add_header Clear-Site-Data "storage";
  add_header Cross-Origin-Embedder-Policy require-corp;
  add_header Cross-Origin-Opener-Policy same-site;
  add_header Cross-Origin-Resource-Policy same-site;
  add_header Permissions-Policy "interest-cohort=()";

#防止XSS攻击
  add_header X-Frame-Options "SAMEORIGIN";
  add_header X-XSS-Protection "1; mode=block";
  add_header X-Content-Type-Options "nosniff";

  include /etc/nginx/conf.d/*.conf;

  ...
server{
  ...
  ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
  ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE:ECDH:AES:HIGH:EECDH+CHACHA20:EECDH+CHACHA20-    draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:!NULL:!aNULL:!eNULL:!EXPORT:!PSK:!ADH:!DH:!DES:!MD5:!RC4;
  ssl_prefer_server_ciphers on;

  # ssl会话复用超时时间以及会话复用缓存大小
  ssl_session_timeout 1d;
  ssl_session_cache shared:MozSSL:10m; # about 40000 sessions

#强匹配,禁止访问某个页面,比如接口调用说明,不影响该地址后面加其他参数的访问
  if ($request_uri = "/api/JBXQ_DLST/")
  {
    return 403;
  }

#配置重定向404页面
  proxy_intercept_errors on;
  error_page 404 https://X.X.X.X/404;

 

#安全加固
#防止盗链或者恶意域名解析
  if ( $host !~* ^(abc.com.cn|192.168.100.93|172.31.255.3)$ )
  {
    return 403;
  }

#限制请求类型
  if ($request_method !~ ^(GET|OPTIONS|POST)$ )
  {
    return 501;
  }

#封杀各种user-agent
  if ($http_user_agent ~* "python|perl|ruby|curl|bash|echo|uname|base64|decode|md5sum|select|concat|httprequest|nmap|scan|nessus|wvs" ) {
    return 403;
  }

  #if ($http_user_agent ~* "" ) {
  # return 403;
  #}

#封杀特定的文件扩展名比如.bak以及目录;
  location ~* \.(bak|swp|save|sh|sql|mdb|svn|git|old)$ {
    rewrite ^/(.*)$ $host permanent;
  }
  location /(admin|phpadmin|status) { deny all; }

  #禁止访问接口测试页面
  if ($request_uri = "/online-api/")
  {
    return 403 'Access denied';
  }
   if ($request_uri ~* "swagger")
  {
    return 403 'Access denied';
  }
  if ($request_uri ~* "actuator")
  {
    return 403 'Access denied';
  }

 

  ...

  }

  }

posted @ 2025-06-25 16:45  walkersss  阅读(91)  评论(0)    收藏  举报