以下是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
定期轮转日志,分析异常请求。参考来源: