云计算百科
云计算领域专业知识百科平台

服务器如何配置防火墙规则以阻止恶意流量和DDoS攻击?

防火墙是保护服务器免受恶意流量和 DDoS 攻击的第一道防线。通过合理配置防火墙规则,可以有效阻止恶意访问、限制不必要的流量,并减少攻击对服务器的影响。

以下是配置防火墙规则的全面指南,包括基础规则设置、防御 DDoS 攻击的高级策略和最佳实践。


1. 配置防火墙规则的基础方法

大多数服务器使用以下防火墙工具之一:

  • UFW(Uncomplicated Firewall):适用于 Ubuntu 等系统,简单易用。
  • iptables:功能强大,适用于更复杂的防火墙配置。
  • firewalld:适用于 CentOS/RHEL,支持动态防火墙规则。
  • 云提供商的防火墙:如 AWS、阿里云、腾讯云等自带的安全组。

1.1 基础防火墙规则配置

(1) 允许必要的端口
  • 常见端口:

    • SSH(默认端口 22,建议更改为非标准端口)
    • HTTP(80)和 HTTPS(443)
    • 数据库端口(如 MySQL 的 3306,PostgreSQL 的 5432),建议限制来源 IP。
  • UFW 示例:

    bash

    复制

    # 默认拒绝所有入站流量
    sudo ufw default deny incoming
    # 默认允许所有出站流量
    sudo ufw default allow outgoing

    # 允许 SSH
    sudo ufw allow 22
    # 允许 HTTP 和 HTTPS
    sudo ufw allow 80
    sudo ufw allow 443
    # 允许 MySQL,仅限特定 IP
    sudo ufw allow from 192.168.1.100 to any port 3306

  • iptables 示例:

    bash

    复制

    # 清除现有规则
    sudo iptables -F

    # 默认策略:拒绝所有入站流量,允许出站流量
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT

    # 允许本地环回接口
    sudo iptables -A INPUT -i lo -j ACCEPT

    # 允许 SSH
    sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT
    # 允许 HTTP 和 HTTPS
    sudo iptables -A INPUT -p tcp –dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp –dport 443 -j ACCEPT

    # 允许特定 IP 访问 MySQL
    sudo iptables -A INPUT -p tcp -s 192.168.1.100 –dport 3306 -j ACCEPT


(2) 阻止所有其他流量
  • UFW 默认已阻止所有未明确允许的流量。
  • iptables:

    bash

    复制

    # 拒绝所有其他入站流量
    sudo iptables -A INPUT -j DROP


(3) 限制 SSH 登录的访问
  • 更改默认端口:
    修改 /etc/ssh/sshd_config,将默认端口从 22 改为非标准端口(如 2222)。

    plaintext

    复制

    Port 2222

    重启 SSH 服务:

    bash

    复制

    sudo systemctl restart sshd

  • 限制 SSH 登录的 IP:
    仅允许可信 IP 访问 SSH:

    bash

    复制

    sudo ufw allow from <trusted_ip> to any port 2222


2. 防御恶意流量的高级配置

2.1 阻止特定 IP 或 IP 段

  • 阻止单个 IP:

    • UFW:

      bash

      复制

      sudo ufw deny from 192.168.1.101

    • iptables:

      bash

      复制

      sudo iptables -A INPUT -s 192.168.1.101 -j DROP

  • 阻止整个 IP 段:

    • UFW:

      bash

      复制

      sudo ufw deny from 192.168.1.0/24

    • iptables:

      bash

      复制

      sudo iptables -A INPUT -s 192.168.1.0/24 -j DROP


2.2 限制每秒连接数(防止暴力破解)

  • 限制单个 IP 的连接请求速率:
    • iptables 示例:

      bash

      复制

      sudo iptables -A INPUT -p tcp –dport 22 -m conntrack –ctstate NEW -m recent –set
      sudo iptables -A INPUT -p tcp –dport 22 -m conntrack –ctstate NEW -m recent –update –seconds 60 –hitcount 5 -j DROP

      解释:

      • 每个 IP 在 60 秒内最多允许发起 5 次新的连接请求。

2.3 使用 Fail2Ban 防止暴力破解

Fail2Ban 是一个基于日志文件的防护工具,可以自动封禁多次失败登录尝试的 IP。

  • 安装 Fail2Ban:

    bash

    复制

    sudo apt install fail2ban

  • 配置 SSH 防护:
    编辑 /etc/fail2ban/jail.local:

    plaintext

    复制

    [sshd]
    enabled = true
    port = 2222 # 如果更改了 SSH 端口,更新此处
    filter = sshd
    logpath = /var/log/auth.log
    maxretry = 5
    bantime = 3600

  • 启动服务:

    bash

    复制

    sudo systemctl restart fail2ban


3. 防御 DDoS 攻击的高级策略

3.1 限制每秒请求数

  • iptables 示例:
    限制每秒最多 10 个请求:

    bash

    复制

    sudo iptables -A INPUT -p tcp –dport 80 -m limit –limit 10/second –limit-burst 20 -j ACCEPT
    sudo iptables -A INPUT -p tcp –dport 80 -j DROP


3.2 使用防火墙模块(如 iptables 的 conntrack 模块)

  • 限制单个 IP 的最大并发连接数:

    bash

    复制

    sudo iptables -A INPUT -p tcp –dport 80 -m connlimit –connlimit-above 20 -j DROP

    解释:

    • 单个 IP 同时最多允许 20 个连接请求。

3.3 使用云服务的 DDoS 防护

  • 如果您使用云服务器(如 AWS、阿里云、腾讯云),可以启用其提供的 DDoS 防护功能:
    • 阿里云:云盾 DDoS 基础防护。
    • 腾讯云:DDoS 高防 IP。
    • AWS:Shield Standard(免费)或 Shield Advanced(付费)。

3.4 启用 Web 应用防火墙(WAF)

WAF 是保护 Web 应用程序免受恶意访问和 DDoS 攻击的有效工具。

  • 推荐工具:
    • Cloudflare(免费/付费)。
    • 阿里云 WAF。
    • ModSecurity(开源 WAF)。

4. 防火墙规则配置的最佳实践

  • 最小化开放端口:

    • 仅开放必要的端口,减少暴露面。
  • 限制 SSH 访问:

    • 使用非标准端口,并限制可信 IP 访问。
  • 定期审查规则:

    • 定期检查防火墙规则,清理过时或无效的规则。
  • 启用日志记录:

    • 确保防火墙记录所有被阻止的流量,以便分析潜在的攻击行为。
  • 结合多层防护:

    • 配置防火墙的同时,结合 Fail2Ban、WAF 和云服务的 DDoS 防护,形成多层次的安全防御。

  • 5. 总结:如何配置防火墙规则以阻止恶意流量和 DDoS?

  • 基础规则:

    • 默认拒绝所有入站流量,仅允许必要端口。
    • 限制 SSH 访问,仅允许可信 IP。
  • 高级策略:

    • 设置速率限制,防止暴力破解和 DDoS 攻击。
    • 使用工具如 Fail2Ban 自动封禁恶意 IP。
  • 云服务和 WAF:

    • 利用云提供商的 DDoS 保护服务和 Web 应用防火墙,提升防御能力。
  • 通过合理配置防火墙规则并结合多层防护,可以有效阻止恶意流量和 DDoS 攻击,确保服务器的安全和稳定运行。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 服务器如何配置防火墙规则以阻止恶意流量和DDoS攻击?
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!