linux

如何用Linux防火墙阻止恶意攻击

小樊
47
2025-08-13 14:45:22
栏目: 网络安全

使用Linux防火墙(如iptables或firewalld)阻止恶意攻击是一种有效的安全措施。以下是一些基本步骤和策略,帮助你配置防火墙以增强系统安全性:

使用iptables

  1. 更新iptables规则

    • 首先,确保你的iptables是最新的。你可以使用包管理器来更新它,例如在Debian/Ubuntu上使用sudo apt update && sudo apt upgrade iptables
  2. 默认策略

    • 设置默认策略为DROP,这意味着所有未经明确允许的流量都将被丢弃。
      sudo iptables -P INPUT DROP
      sudo iptables -P FORWARD DROP
      sudo iptables -P OUTPUT ACCEPT
      
  3. 允许必要的流量

    • 允许SSH连接(假设使用默认端口22):
      sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
      sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
      
    • 允许HTTP/HTTPS流量:
      sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
      sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
      sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
      
  4. 限制连接数

    • 为了防止DDoS攻击,可以限制每个IP地址的连接数:
      sudo iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above 5 -j DROP
      
  5. 保存规则

    • 保存iptables规则以确保它们在重启后仍然有效。不同的发行版有不同的方法来保存规则,例如在Debian/Ubuntu上可以使用iptables-persistent
      sudo apt install iptables-persistent
      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      

使用firewalld

  1. 安装firewalld

    • 如果尚未安装,可以使用包管理器进行安装,例如在Debian/Ubuntu上:
      sudo apt update && sudo apt install firewalld
      
  2. 启动并启用firewalld

    • 启动firewalld服务并设置为开机自启:
      sudo systemctl start firewalld
      sudo systemctl enable firewalld
      
  3. 配置默认区域

    • 设置默认区域为drop,并允许必要的流量:
      sudo firewall-cmd --set-default-zone=drop
      sudo firewall-cmd --permanent --zone=trusted --add-interface=lo
      sudo firewall-cmd --permanent --zone=trusted --add-source=127.0.0.1
      sudo firewall-cmd --reload
      
  4. 允许SSH连接

    sudo firewall-cmd --permanent --zone=trusted --add-service=ssh
    sudo firewall-cmd --reload
    
  5. 允许HTTP/HTTPS流量

    sudo firewall-cmd --permanent --zone=trusted --add-service=http
    sudo firewall-cmd --permanent --zone=trusted --add-service=https
    sudo firewall-cmd --reload
    
  6. 限制连接数

    • firewalld本身不直接支持连接数限制,但可以通过其他工具(如fail2ban)来实现。

其他安全措施

通过这些步骤,你可以显著提高Linux系统的安全性,有效阻止恶意攻击。

0
看了该问题的人还看了