温馨提示×

centos nginx安全设置指南

小樊
96
2025-02-13 09:16:02
栏目: 智能运维
Centos服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

CentOS Nginx 安全设置指南

简介

Nginx 是一款高性能的 Web 服务器和反向代理服务器,广泛应用于各种规模的网络应用中。然而,默认配置下的 Nginx 存在诸多安全隐患。本文将详细介绍如何在 CentOS 系统上对 Nginx 进行安全配置,以提升其安全性,防止常见的攻击方式,如 DDoS 攻击、SQL 注入等。

基础安全配置

1. 隐藏 Nginx 版本号

默认情况下,Nginx 会在响应头中显示其版本号,这可能会被攻击者利用以寻找特定版本的漏洞。通过关闭版本显示,可以减少潜在的安全风险。

server_tokens off;

2. 配置安全 Headers

添加安全相关的 HTTP 响应头,可以有效防御常见的 Web 攻击,如点击劫持、XSS 攻击等。

add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'";

3. 限制连接数

通过限制每个 IP 的连接数和请求频率,可以防止 DDoS 攻击。

limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_conn addr 100;

limit_req_zone $binary_remote_addr zone=req_zone:10m rate=10r/s;
limit_req zone=req_zone burst=20 nodelay;

4. 配置白名单

对于管理后台等敏感区域,建议配置 IP 白名单,只允许特定 IP 段访问。

location /admin/ {
    allow 192.168.1.0/24;
    deny all;
}

5. 启用 HTTPS

使用 SSL/TLS 证书加密数据传输,确保数据在传输过程中不被窃取。

listen 443 ssl;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
ssl_protocols TLSv1.2 TLSv1.3;

6. 禁用不必要的模块和功能

禁用不必要的 Nginx 模块和功能,可以减少潜在的安全漏洞。例如,禁用 http_rewrite_modulehttp_sub_module

unload_module modules/http_rewrite_module.so;
unload_module modules/http_sub_module.so;

访问控制优化

1. 限制访问敏感目录

通过配置 location 块和 deny all 指令,防止外部用户访问敏感资源,如 .htaccess 文件或 .git 目录。

location ~ /\.git {
    deny all;
}

location ~ /\.ht {
    deny all;
}

2. 使用基本认证

在敏感路径上启用基本认证,要求用户提供用户名和密码才能访问。

location /admin/ {
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

性能监控与故障排查

1. 实时监控

使用 Nginx 自带的状态模块和第三方工具(如 Prometheus、Grafana)实时监控服务器的各项性能指标,如连接数、请求数和处理状态。

location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
}

2. 日志记录

启用详细的访问日志和错误日志,并定期分析日志文件,以便及时发现并解决潜在问题。

access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

备份与恢复策略

1. 定期备份配置文件

定期备份 Nginx 配置文件,确保在出现问题时能够快速恢复。

cp /etc/nginx/nginx.conf /etc/nginx/backup/nginx.conf.`date +%Y%m%d`

2. 文件完整性检查

使用工具如 AIDE 定期检查配置文件的完整性,确保没有被恶意篡改。

aide --init
aide --check

测试环境先行验证

在正式应用新配置之前,先在测试环境中进行充分验证,确保新配置不会影响服务器性能,并且所有功能正常工作。

scp /etc/nginx/nginx.conf user@test-server:/etc/nginx/
ssh user@test-server "nginx -s reload"

通过以上步骤,您可以显著提升 CentOS 上 Nginx 服务器的安全性。确保遵循这些配置建议,可以有效防止多种常见的网络攻击,保护您的网站和应用程序。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:centos如何搭建lnmp环境

0