在CentOS上使用Nginx进行安全防护,可以采取以下措施:
更新Nginx: 确保你使用的是最新版本的Nginx,因为新版本通常包含安全修复。
sudo yum update nginx
配置防火墙:
使用firewalld或iptables来限制对Nginx服务器的访问。
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
或者使用iptables:
sudo iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
sudo service iptables save
配置SSL/TLS: 使用Let’s Encrypt或其他证书颁发机构为你的网站获取SSL/TLS证书,并配置Nginx以使用HTTPS。
server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/fullchain.pem;
    ssl_certificate_key /path/to/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';
    ssl_prefer_server_ciphers on;
    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}
限制访问:
使用Nginx的allow和deny指令来限制对特定文件或目录的访问。
location /admin {
    allow 192.168.1.1;
    deny all;
}
防止DDoS攻击:
使用Nginx的limit_req_zone和limit_req指令来限制请求速率,防止DDoS攻击。
http {
    limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;
    server {
        location / {
            limit_req zone=mylimit burst=5;
            ...
        }
    }
}
隐藏Nginx版本信息:
在Nginx配置文件中设置server_tokens off;来隐藏Nginx的版本信息。
http {
    server_tokens off;
    ...
}
使用安全模块:
考虑使用Nginx的安全模块,如ngx_http_security_module,来增强安全性。
定期备份: 定期备份Nginx配置文件和网站数据,以便在发生安全问题时能够快速恢复。
监控和日志: 配置Nginx日志记录,并使用监控工具来跟踪服务器的性能和安全事件。
error_log /var/log/nginx/error.log debug;
access_log /var/log/nginx/access.log combined buffer=32k flush=300s;
使用内容安全策略(CSP): 通过HTTP头设置CSP,以防止跨站脚本攻击(XSS)和其他代码注入攻击。
add_header Content-Security-Policy "default-src 'self'; script-src 'self' https://trustedscripts.example.com; object-src 'none';";
通过实施这些措施,你可以显著提高在CentOS上运行的Nginx服务器的安全性。记得定期检查和更新你的安全措施,以应对不断变化的威胁环境。