插件窝 干货文章 使用Linux服务器保护Web接口免受Botnet攻击。

使用Linux服务器保护Web接口免受Botnet攻击。

sudo 配置 防护 ModSecurity 598    来源:    2025-04-12

Linux服务器保护Web接口免受Botnet攻击方案

1. 基础安全加固

1.1 系统更新与补丁管理

# 定期更新系统
sudo apt update && sudo apt upgrade -y  # Debian/Ubuntu
sudo yum update -y  # CentOS/RHEL

1.2 防火墙配置 (UFW/iptables)

# 安装并配置UFW
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable

2. Web服务器安全配置

2.1 Nginx防护配置示例

# 在/etc/nginx/nginx.conf的http块中添加
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;

# 在具体server配置中添加
server {
    ...
    limit_req zone=one burst=20 nodelay;
    limit_conn addr 10;

    # 防止点击劫持
    add_header X-Frame-Options "SAMEORIGIN";

    # XSS防护
    add_header X-XSS-Protection "1; mode=block";

    # 禁用内容类型嗅探
    add_header X-Content-Type-Options "nosniff";

    # CSP策略
    add_header Content-Security-Policy "default-src 'self';";
}

2.2 Apache防护配置示例

# 在/etc/apache2/apache2.conf或虚拟主机配置中添加
<IfModule mod_security2.c>
    SecRuleEngine On
    SecRequestBodyLimit 8388608
    SecRequestBodyNoFilesLimit 131072
    SecRequestBodyInMemoryLimit 131072
</IfModule>

# 添加安全头
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set X-Content-Type-Options "nosniff"
Header always set Content-Security-Policy "default-src 'self'"

3. 高级防护措施

3.1 Fail2Ban安装配置

# 安装Fail2Ban
sudo apt install fail2ban -y

# 创建自定义jail配置
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

编辑/etc/fail2ban/jail.local添加Web防护规则:

[nginx-botsearch]
enabled = true
port = http,https
filter = nginx-botsearch
logpath = /var/log/nginx/access.log
maxretry = 5
findtime = 600
bantime = 86400

3.2 ModSecurity安装配置

# 对于Debian/Ubuntu
sudo apt install libapache2-mod-security2 -y
sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

# 启用OWASP核心规则集
sudo git clone https://github.com/coreruleset/coreruleset /etc/modsecurity/crs/
sudo cp /etc/modsecurity/crs/crs-setup.conf.example /etc/modsecurity/crs/crs-setup.conf

4. 应用层防护

4.1 速率限制实现

# 使用iptables进行连接限制
sudo iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
sudo iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 50 -j DROP

4.2 使用Cloudflare或其他CDN服务

  • 启用CDN的Bot防护功能
  • 配置防火墙规则过滤已知恶意IP
  • 启用验证码挑战

5. 监控与日志分析

5.1 日志分析工具

# 安装并配置GoAccess进行实时日志分析
sudo apt install goaccess -y
goaccess /var/log/nginx/access.log --log-format=COMBINED --real-time-html --output=/var/www/html/report.html

5.2 设置警报

# 使用logwatch进行日志监控
sudo apt install logwatch -y
sudo logwatch --output mail --mailto admin@example.com --detail high

6. 定期维护

6.1 自动化安全扫描

# 使用Lynis进行安全审计
sudo apt install lynis -y
sudo lynis audit system

6.2 定期检查

  • 每周检查安全日志
  • 每月进行渗透测试
  • 每季度更新安全策略

7. 应急响应计划

  1. 识别攻击特征
  2. 立即启用额外防护规则
  3. 必要时暂时限制访问
  4. 分析攻击源并更新防护规则
  5. 通知相关方并记录事件

通过以上综合措施,可以显著提高Linux服务器上Web接口对Botnet攻击的防护能力。