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