配置文件:
#加固規則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; } }