阅读量:2
以下是在Ubuntu中配置Nginx安全设置的关键步骤,涵盖系统基础加固、Nginx配置及安全防护:
一、系统基础安全加固
- 更新系统补丁
sudo apt update && sudo apt upgrade -y # 更新系统和软件包 sudo apt install unattended-upgrades # 启用自动安全更新 - 最小化安装与权限控制
- 移除不必要的软件包:
sudo apt autoremove --purge - 禁用root SSH登录:修改
/etc/ssh/sshd_config中PermitRootLogin no,并使用SSH密钥认证。
- 移除不必要的软件包:
二、Nginx核心安全配置
- 隐藏版本信息与禁用危险模块
在/etc/nginx/nginx.conf的http块中添加:server_tokens off; # 隐藏Nginx版本号 # 禁用不需要的模块(如HTTP自动索引) # 需重新编译Nginx时配置(非默认模块无需操作) - 限制HTTP方法与访问控制
# 仅允许GET/POST/HEAD方法 if ($request_method !~ ^(GET|HEAD|POST)$) { return 405; } # IP白名单示例(拒绝其他IP) location /admin { allow 192.168.1.0/24; deny all; } - SSL/TLS安全配置
- 启用HTTPS并限制协议与加密套件:
listen 443 ssl http2; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; # 启用HSTS(强制HTTPS) add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; - 使用Let’s Encrypt免费证书:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com
- 启用HTTPS并限制协议与加密套件:
- 安全头部与防攻击策略
# 防止点击劫持、XSS等 add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; add_header Content-Security-Policy "default-src 'self'"; - 速率限制与资源控制
# 限制单个IP请求速率(如100次/分钟) limit_req_zone $binary_remote_addr zone=api_limit:10m rate=100r/m; location /api/ { limit_req zone=api_limit burst=20 nodelay; } # 限制上传文件大小 client_max_body_size 10M;
三、安全增强措施
- Web应用防火墙(WAF)
安装ModSecurity模块(需手动编译Nginx):sudo apt install libmodsecurity3 libmodsecurity-dev # 下载Nginx连接器并配置规则(参考ModSecurity官方文档) - 日志与监控
- 配置访问日志与错误日志:
access_log /var/log/nginx/access.log combined; error_log /var/log/nginx/error.log warn; - 安装Fail2Ban防止暴力破解:
sudo apt install fail2ban sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local sudo service fail2ban restart
- 配置访问日志与错误日志:
四、配置文件权限管理
# 限制配置文件访问权限
sudo chmod 600 /etc/nginx/nginx.conf /etc/nginx/conf.d/*.conf
sudo chown root:root /etc/nginx/ -R
完成配置后,重启Nginx生效:
sudo nginx -t # 测试配置语法
sudo systemctl restart nginx
以上就是关于“Ubuntu中Nginx安全设置怎么做”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm