# 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;
}
}
# 限制连接频率
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
# /etc/fail2ban/jail.local
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
# OWASP核心规则集配置
SecRuleEngine On
SecRequestBodyAccess On
SecResponseBodyAccess On
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsec_audit.log
# 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;
}
{
"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
}
# 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
# 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]
#!/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接口的安全性。建议定期审查和更新安全配置,以应对不断演变的网络威胁。