温馨提示×

Debian防火墙如何IP限制

小樊
42
2025-10-12 19:09:30
栏目: 智能运维

Debian防火墙IP限制方法(iptables/ufw)
在Debian系统中,可通过iptables(底层工具)或ufw(简化工具)实现IP限制,以下是具体操作步骤:

一、使用iptables实现IP限制

iptables是Debian默认的防火墙工具,需手动配置规则并保存。

1. 安装iptables

若未安装,运行以下命令安装:

sudo apt update && sudo apt install iptables

2. 基础IP限制规则

  • 允许特定IP访问:允许单个IP(如192.168.1.100)访问服务器所有端口:
    sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
    
  • 拒绝特定IP访问:拒绝单个IP(如192.168.1.101)访问服务器所有端口:
    sudo iptables -A INPUT -s 192.168.1.101 -j DROP
    
  • 允许IP段访问:允许192.168.1.0/24网段访问(子网掩码255.255.255.0):
    sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
    
  • 拒绝IP段访问:拒绝192.168.2.0/24网段访问:
    sudo iptables -A INPUT -s 192.168.2.0/24 -j DROP
    

3. 优化规则(可选但推荐)

  • 允许本地回环接口:确保本地服务(如数据库)正常运行:
    sudo iptables -A INPUT -i lo -j ACCEPT
    
  • 允许已建立的连接:避免中断现有会话(如SSH、浏览器访问):
    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
  • 设置默认策略:默认拒绝所有入站流量(增强安全性,需配合上述规则使用):
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
    

4. 保存与持久化

iptables规则默认在重启后丢失,需通过以下方式保存:

  • 手动保存
    sudo iptables-save > /etc/iptables/rules.v4
    
  • 自动保存:安装iptables-persistent包,安装时会提示保存当前规则,重启后自动加载:
    sudo apt install iptables-persistent
    
  • 开机自启:若未使用iptables-persistent,可创建启动脚本:
    sudo nano /etc/network/if-pre-up.d/iptables
    
    添加以下内容并赋予执行权限:
    #!/bin/sh
    /sbin/iptables-restore < /etc/iptables/rules.v4
    sudo chmod +x /etc/network/if-pre-up.d/iptables
    

5. 查看与管理规则

  • 查看规则
    sudo iptables -L -n -v
    
  • 删除规则:删除针对特定IP的DROP规则(如192.168.1.101):
    sudo iptables -D INPUT -s 192.168.1.101 -j DROP
    

二、使用ufw实现IP限制

ufw(Uncomplicated Firewall)是iptables的简化前端,适合新手使用,命令更直观。

1. 安装与启用ufw

sudo apt update && sudo apt install ufw
sudo ufw enable  # 启用ufw(默认拒绝所有入站流量)

2. 基础IP限制规则

  • 允许特定IP访问:允许单个IP(如192.168.1.100)访问所有端口:
    sudo ufw allow from 192.168.1.100
    
  • 拒绝特定IP访问:拒绝单个IP(如192.168.1.101)访问所有端口:
    sudo ufw deny from 192.168.1.101
    
  • 允许IP段访问:允许192.168.1.0/24网段访问:
    sudo ufw deny from 192.168.1.0/24
    
  • 允许特定端口(如SSH):仅允许特定IP访问指定端口(如SSH的22端口):
    sudo ufw allow from 192.168.1.100 to any port 22
    

3. 查看与管理规则

  • 查看规则
    sudo ufw status verbose  # 显示详细规则(包括IP限制)
    
  • 删除规则:删除针对特定IP的拒绝规则(如192.168.1.101):
    sudo ufw delete deny from 192.168.1.101
    

4. 持久化规则

ufw规则默认自动保存,无需额外操作。重启系统后规则仍有效。

注意事项

  • 谨慎设置默认策略:若将INPUT策略设为DROP,需确保允许本地回环(lo)和已建立的连接,否则可能导致无法远程管理服务器。
  • 测试规则:应用规则前,建议在测试环境验证,避免误拦截合法流量(如SSH连接)。
  • 备份规则:定期备份iptables规则(如sudo cp /etc/iptables/rules.v4 ~/iptables-backup.rules),防止规则丢失。

通过上述方法,可根据需求灵活限制Debian服务器的IP访问,提升系统安全性。

0