插件窝 干货文章 提升Web接口安全性的Linux服务器设置(第二部分)。

提升Web接口安全性的Linux服务器设置(第二部分)。

sudo etc nginx ModSecurity 1026    来源:    2025-04-11

以下是提升Web接口安全性的Linux服务器设置第二部分,涵盖关键配置和高级防护措施:


一、网络层加固

  1. 防火墙精细化规则

    # 仅允许必要端口(示例:HTTPS/SSH)
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    sudo iptables -A INPUT -j DROP  # 默认拒绝其他流量
    
    # 持久化规则(Ubuntu/Debian)
    sudo apt install iptables-persistent
    sudo netfilter-persistent save
    
    # CentOS/RHEL
    sudo service iptables save
    
  2. 启用Fail2Ban防暴力破解

    sudo apt install fail2ban
    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    

    编辑 /etc/fail2ban/jail.local

    [sshd]
    enabled = true
    maxretry = 3
    bantime = 1h
    
    [nginx-http-auth]  # 保护Web登录接口
    enabled = true
    

二、Web服务安全配置

  1. Nginx/Apache TLS强化

    • 禁用旧版协议/弱加密套件(Nginx示例):
    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_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    
  2. HTTP头部安全

    add_header X-Content-Type-Options "nosniff";
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header Content-Security-Policy "default-src 'self'";
    
  3. API接口防护

    • 速率限制(Nginx示例):
    limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
    location /api/ {
       limit_req zone=api_limit burst=20;
    }
    

三、系统级防护

  1. 内核参数调优

    # 阻止SYN洪水攻击
    echo "net.ipv4.tcp_syncookies = 1" | sudo tee -a /etc/sysctl.conf
    # 禁用ICMP重定向
    echo "net.ipv4.conf.all.accept_redirects = 0" | sudo tee -a /etc/sysctl.conf
    sudo sysctl -p
    
  2. 文件系统保护

    # 关键目录设为不可修改(示例:/etc)
    sudo chattr +i /etc/passwd /etc/shadow
    sudo chmod 700 /etc/ssl/private  # 证书私钥目录
    
  3. 审计日志配置

    sudo apt install auditd
    sudo auditctl -w /var/www/html -p wa -k web_content
    sudo auditctl -w /etc/nginx/ -p wa -k nginx_config
    

四、应用层安全

  1. Web应用防火墙(ModSecurity)

    sudo apt install libapache2-mod-security2  # Apache
    sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
    

    启用OWASP核心规则集:

    git clone https://github.com/coreruleset/coreruleset /etc/modsecurity/crs/
    
  2. 定期漏洞扫描

    # 使用OpenVAS或Nessus进行自动化扫描
    sudo apt install nikto
    nikto -h https://your-api-domain.com
    

五、应急响应准备

  1. 入侵检测工具(AIDE)

    sudo apt install aide
    sudo aideinit
    sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
    # 定期检查:sudo aide --check
    
  2. 日志集中化管理

    # 使用rsyslog转发日志到安全服务器
    echo "*.* @logserver.example.com:514" | sudo tee -a /etc/rsyslog.conf
    sudo systemctl restart rsyslog
    

关键检查项

项目 检测命令 预期结果
开放端口 ss -tulnp 仅显示业务必要端口
SSH加密算法 nmap --script ssh2-enum-algos target 无弱算法(如ssh-dss)
TLS协议支持 openssl s_client -connect localhost:443 -tls1_2 成功握手

后续建议: 1. 每月执行unattended-upgrades自动安全更新 2. 使用Ansible/Terraform固化安全配置 3. 对敏感接口实施双向TLS认证(mTLS)

通过以上措施可显著提升Web接口的防护等级,建议结合第一部分的基础配置共同实施。