插件窝 干货文章 Linux服务器安全性:优化Web接口防御策略。

Linux服务器安全性:优化Web接口防御策略。

安全 Nginx iptables 配置 995    来源:    2025-04-11

Linux服务器Web接口安全优化策略

1. Web服务器基础加固

Nginx/Apache安全配置

# Nginx示例配置
server {
    server_tokens off;  # 隐藏版本信息
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";
    add_header Content-Security-Policy "default-src 'self'";
    add_header Referrer-Policy "no-referrer-when-downgrade";

    # 限制HTTP方法
    if ($request_method !~ ^(GET|HEAD|POST)$ ) {
        return 444;
    }
}

禁用不必要的模块

  • Apache: 禁用mod_negotiation, mod_userdir等
  • Nginx: 移除未使用的模块编译

2. 防火墙与网络层防护

iptables/nftables规则

# 限制连接频率
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 50 -j DROP

# 防止SYN洪水攻击
iptables -N SYN_FLOOD
iptables -A SYN_FLOOD -m limit --limit 10/second --limit-burst 25 -j RETURN
iptables -A SYN_FLOOD -j DROP

使用Fail2Ban防护

# /etc/fail2ban/jail.local
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log

3. Web应用防火墙(WAF)

ModSecurity配置

# OWASP核心规则集配置
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log

云WAF集成选项

  • AWS WAF
  • Cloudflare WAF
  • Azure Application Gateway WAF

4. API安全增强

速率限制实现

# Nginx限流配置
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

location /api/ {
    limit_req zone=api burst=20 nodelay;
    proxy_pass http://api_backend;
}

JWT/OAuth2安全实践

  • 使用强加密算法(如RS256)
  • 设置合理的令牌过期时间
  • 实现令牌吊销机制

5. 日志与监控

结构化日志收集

{
  "timestamp": "2023-01-01T12:00:00Z",
  "client_ip": "192.168.1.100",
  "method": "POST",
  "uri": "/api/login",
  "status": 200,
  "user_agent": "Mozilla/5.0",
  "response_time": 150,
  "request_size": 512,
  "response_size": 1024
}

安全监控工具

  • OSSEC (主机入侵检测)
  • Wazuh (SIEM解决方案)
  • Grafana + Prometheus (可视化监控)

6. 自动化安全测试

定期扫描工具

# OWASP ZAP基础扫描
docker run -v $(pwd):/zap/wrk -t owasp/zap2docker-stable zap-baseline.py \
  -t https://your-web-application.com -r report.html

# Nikto漏洞扫描
nikto -h your-server.com -ssl -Tuning x -o nikto_scan.html

CI/CD集成安全测试

# GitLab CI示例
stages:
  - test
  - security

zap_scan:
  stage: security
  image: owasp/zap2docker-stable
  script:
    - zap-baseline.py -t $URL -r zap_report.html
  artifacts:
    paths: [zap_report.html]

7. 应急响应准备

入侵检测脚本示例

#!/bin/bash
# 检测异常HTTP状态码
LOG_FILE="/var/log/nginx/access.log"
ALERT_FILE="/tmp/http_alerts.log"

awk '$9 >= 400 {print $1, $6, $7, $9}' $LOG_FILE | sort | uniq -c | sort -nr > $ALERT_FILE

if [ -s $ALERT_FILE ]; then
    mail -s "Web服务器异常请求警报" admin@example.com < $ALERT_FILE
fi

通过实施以上多层次防御策略,可显著提升Linux服务器上Web接口的安全性。建议定期审查和更新安全配置,以应对不断演变的网络威胁。