以下是Ubuntu下Nginx的安全设置要点:
基础系统加固
sudo apt update && sudo apt upgrade -y
。sudo apt autoremove --purge
。sudo ufw enable sudo ufw allow 22/tcp # SSH sudo ufw allow 80/tcp # HTTP(可选) sudo ufw allow 443/tcp # HTTPS
Nginx核心安全配置
/etc/nginx/nginx.conf
中添加server_tokens off;
。sudo apt install certbot python3-certbot-nginx
,然后运行sudo certbot --nginx -d example.com
。/etc/nginx/sites-available/default
中添加重定向规则。ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m;
访问控制与防攻击
location /admin { allow 192.168.1.0/24; deny all; }
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s; location /api/ { limit_req zone=api_limit burst=20 nodelay; }
add_header X-Frame-Options "SAMEORIGIN";
。add_header X-XSS-Protection "1; mode=block";
。add_header X-Content-Type-Options "nosniff";
。文件与日志安全
location ~* ^/(\.git|\.ht|logs) { deny all; }
autoindex off;
。640
,目录权限为750
。高级安全增强
logrotate
定期轮转日志,分析异常请求。参考来源: