配置文件:
#加固规则2.1.2:使用单独的用户执行。 user nginx; #加固建议2.1.2:使用自动检测CPU核数。 worker_processes auto; #加固建议2.1.2:增大Nginx的最大并发链接数。 worker_rlimit_nofile 65535; events { use epoll; #加固建议2.1.2:增大Nginx的最大并发链接数。 worker_connections 65535; } http { #加固规则2.6.1:启用XSS保护 add_header X-XSS-Protection "1; mode=block"; #加固规则2.6.2:减少点击劫持 add_header X-frame-options deny; #加固规则2.6.3:禁用浏览器的类型猜测 add_header X-Download-Options nosniff; #标准类型 include mime.types; default_type application/octet-stream; #开启sendfile函数调用 sendfile on; tcp_nopush on; #加固规则2.2.7:限制http请求的消息主体和消息头的大小 client_header_buffer_size 32k; large_client_header_buffers 4 32k; #为打开文件指定缓存 open_file_cache max=65535 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 1; #加固规则2.1.3:隐藏或伪装Nginx的版本及版本相关提示信息 server_tokens off; #加固规则2.2.4:禁止开启Nginx的目录列表功能 autoindex off; #加固规则2.2.5:禁止Nginx重定向至监听端口 port_in_redirect off; #gzip模块设置,开启gzip压缩输出 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types image/gif text/plain application/x-javascript text/css application/xml; gzip_vary on; #加固规则2.2.8:配置Nginx的网络超时时间 client_body_timeout 10; client_header_timeout 30; keepalive_timeout 45; send_timeout 10; #不开启NGINX的日志功能。nginx仅作为接口转发,问题定位主要依赖业务日志。 #access_log /var/log/xxx/nginx/access.log; #error_log /var/log/xxx/nginx/error.log; #xxxx后端地址 upstream xxxxServer{ ip_hash; server 172.xx.xx.xxx:7443;server 172.xx.xx.xxx:7443; } server { listen 5000; server_name $remote_addr; #加固规则2.2.7:限制http请求的消息主体和消息头的大小 client_header_buffer_size 1k; large_client_header_buffers 4 8k; client_body_buffer_size 16K; client_max_body_size 1m; location / { #limit_except GET POST #{ # deny all; #} proxy_pass https://xxxxServer; proxy_set_header Host $host; #加固建议2.5.1:记录客户端IP proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_read_timeout 10m; proxy_buffer_size 64k; proxy_buffers 32 32k; proxy_busy_buffers_size 128k; #支持websocket长连接 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } #加固规则2.7.1:启用SSL功能 ssl on; #加固规则2.7.3:使用安全的TLS协议 ssl_protocols TLSv1.1 TLSv1.2; #加固规则2.7.4:设置SSL会话缓存(10MB共享内存) ssl_session_cache shared:SSL:10m; #加固规则2.7.2:设置合适的超时时间(10分钟) ssl_session_timeout 10m; #加固规则2.7.5:使用安全的加密套件 ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES256-SHA:HIGH:!MEDIUM:!LOW:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4:@STRENGTH"; #加固规则2.7.5:协商时优先使用服务器指定的加密算法 ssl_prefer_server_ciphers on; #加固规则2.7.6:使用2048位的DHE Parameters #ssl_dhparam dh2048.pem; #配置证书 ssl_certificate ssl/huawei.com.crt; ssl_certificate_key ssl/huawei.com.key; } }