新手学做网站的教学书,什么大型网站用python做的,员工培训内容,营销网站有哪些文章目录 概述中间件安全基线配置手册1. 概述1.1 目的1.2 适用范围 2. Nginx基线配置2.1 版本说明2.2 安装目录2.3 用户创建2.4 二进制文件权限2.5 关闭服务器标记2.6 设置 timeout2.7 设置 NGINX 缓冲区2.8 日志配置2.9 日志切割2.10 限制访问 IP2.11 限制仅允许域名访问2.12 … 文章目录 概述中间件安全基线配置手册1. 概述1.1 目的1.2 适用范围 2. Nginx基线配置2.1 版本说明2.2 安装目录2.3 用户创建2.4 二进制文件权限2.5 关闭服务器标记2.6 设置 timeout2.7 设置 NGINX 缓冲区2.8 日志配置2.9 日志切割2.10 限制访问 IP2.11 限制仅允许域名访问2.12 错误页面重定向2.13 限制并发和速度2.14 安装官方补丁更新2.15 配置正向代理模块2.16 防止目录遍历2.17 服务监控 概述
我们这里主要介绍针对Nginx中间件的安全基线配置指南包括版本选择、用户创建、权限设置、缓冲区配置、日志管理、访问限制、错误页面处理、并发控制、补丁更新等方面。
同时还涵盖了如何配置正向代理模块、防止目录遍历以及服务监控等内容旨在指导系统管理员确保中间件服务器的安全性 中间件安全基线配置手册
1. 概述
1.1 目的
本文档规定了中间件服务器应当遵循的安全性设置标准旨在指导系统管理人员或安全检查人员进行中间件的安全合规性检查和配置。
1.2 适用范围
本配置标准的使用者包括服务器系统管理员、应用管理员。 本配置标准适用的范围包括中间件服务器。
2. Nginx基线配置
2.1 版本说明
使用Nginx官方稳定版本当前提供下列版本
Nginx 1.22.1Nginx 1.24.0
2.2 安装目录
/opt/nginx-{version}2.3 用户创建
操作系统中新建nginx用户用以启动Nginx Worker。
在nginx.conf中配置
user nginx;2.4 二进制文件权限
/opt/nginx-{version}/sbin/nginx 二进制文件权限为 7552.5 关闭服务器标记
关闭服务器标记避免显示服务器版本信息。编辑nginx.conf在http模块中添加
server_tokens off;2.6 设置 timeout
设置 timeout 配置可防御 DOS 攻击。编辑nginx.conf在http模块中添加
client_body_timeout 10;
client_header_timeout 30;
keepalive_timeout 30 30;
send_timeout 10;2.7 设置 NGINX 缓冲区
防止缓冲区溢出攻击。编辑nginx.conf在server模块中添加
client_body_buffer_size 1K;
client_header_buffer_size 1k;
client_max_body_size 1k;
large_client_header_buffers 2 1k;2.8 日志配置
统一使用规定好的日志格式。编辑nginx.conf在http模块中添加
log_format main $remote_addr - $remote_user [$time_local] $request $http_host $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for $request_time $upstream_response_time $request_body;2.9 日志切割
切割 Nginx 日志避免日志文件过大。新建日志切割脚本如下
#!/bin/bash
# 设置日志文件存放目录
logspath/usr/local/nginx/logs/
# 设置pid文件
pidpath/usr/local/nginx/nginx.pid
# 重命名日志文件
mv ${logspath}access.log ${logspath}access$(date -d yesterday %Y%m%d).log
# 向nginx主进程发信号重新打开日志
kill -USR1 cat ${pidpath}配置定时任务每日凌晨执行脚本。
2.10 限制访问 IP
限制访问 IP仅允许指定 IP 访问指定资源。编辑nginx.conf在server模块中添加
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
allow 2001:0db8::/32;
deny all;2.11 限制仅允许域名访问
限制仅允许域名访问跳过 IP 扫描。编辑nginx.conf在server模块中添加
server {listen 80 default;server_name _;return 403;
}2.12 错误页面重定向
Nginx 默认错误页面包含服务器版本信息使用自定义错误页面避免版本信息泄露。新建错误页面放到静态目录中编辑nginx.conf在http模块中添加
fastcgi_intercept_errors on;
error_page 401 /401.html;
error_page 402 /402.html;
error_page 403 /403.html;
error_page 404 /404.html;
error_page 405 /405.html;
error_page 500 /500.html;2.13 限制并发和速度
限制用户连接数及速度来预防 DOS 攻击。编辑nginx.conf在http模块中添加
limit_zone one $binary_remote_addr 60m;在server模块的location中需要限制的location中添加如下参数
limit_conn one 50;
limit_rate 100k;2.14 安装官方补丁更新
防止攻击者利用 Nginx 漏洞进行攻击定期更新 Nginx 版本。查看当前 Nginx 版本
nginx -v官网下载最新的安全补丁Nginx 下载。
2.15 配置正向代理模块
由于项目需要使用到 HTTPS 正向代理而 Nginx 官方模块仅支持做 HTTP 正向代理ngx_http_proxy_connect_module模块可以实现隧道 SSL 请求的代理服务器。模块下载地址GitHub。编译 Nginx 中添加该模块即可
--add-module/root/ngx_http_proxy_connect_module创建配置文件即可使用
server {resolver 114.114.114.114;resolver_timeout 30s;listen 80;proxy_connect; # 启用 CONNECT HTTP 方法proxy_connect_allow 443 80; # 指定代理 CONNECT 方法可以连接的端口号或范围的列表proxy_connect_connect_timeout 20s; # 定义客户端与代理服务器建立连接的超时时间proxy_connect_read_timeout 20s; # 定义客户端从代理服务器读取响应的超时时间proxy_connect_send_timeout 20s; # 设置客户端将请求传输到代理服务器的超时时间location / {proxy_pass $scheme://$http_host$request_uri;}
}2.16 防止目录遍历
修改文件nginx.conf在http模块下添加或修改为autoindex off重新启动 Nginx 服务。
2.17 服务监控
为了保证 Nginx 服务正常采用 Zabbix 监控nginx_status模块监控 Nginx 服务。Nginx 配置nginx_status IP 白名单
location /nginx_status {stub_status;allow 192.168.0.0/16;allow 127.0.0.1;deny all;
}推荐 Loki收集Nginx日志并搭建日志聚合平台