温馨提示×

Debian Context如何配置防火墙

小樊
41
2025-11-06 18:06:53
栏目: 智能运维

Debian系统中配置防火墙的常用方法(以ufw和iptables为例)

一、使用ufw(Uncomplicated Firewall)配置防火墙

ufw是Debian系统推荐的简化防火墙管理工具,适合新手快速配置。

1. 安装ufw

若系统未预装ufw,可通过以下命令安装:

sudo apt update
sudo apt install ufw

2. 启用ufw

安装完成后,启用ufw以激活防火墙:

sudo ufw enable

系统会提示确认,输入y并按回车键即可。

3. 配置基本规则

  • 设置默认策略:拒绝所有入站连接,允许所有出站连接(推荐新手使用):
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    
  • 允许特定端口:如允许HTTP(80端口)、HTTPS(443端口):
    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    
  • 允许特定IP访问:如允许IP192.168.1.100访问SSH(22端口):
    sudo ufw allow from 192.168.1.100 to any port 22
    
  • 拒绝特定端口:如拒绝Telnet(23端口):
    sudo ufw deny 23/tcp
    

4. 查看与管理规则

  • 查看当前规则:显示简要规则列表:
    sudo ufw status
    
    显示详细规则(包括编号):
    sudo ufw status numbered
    
  • 删除规则:如删除允许80端口的规则,通过编号操作:
    sudo ufw delete 1  # 假设1是允许80端口的规则编号
    
    或直接指定规则:
    sudo ufw delete allow 80/tcp
    

5. 保存与重载配置

ufw的规则默认会自动保存,但手动重载可确保修改生效:

sudo ufw reload

二、使用iptables配置防火墙

iptables是Linux内核级的防火墙工具,功能强大但配置复杂,适合高级用户。

1. 安装iptables

若未安装,可通过以下命令安装:

sudo apt update
sudo apt install iptables

2. 查看当前规则

查看所有链的规则及统计信息:

sudo iptables -L -n -v

3. 配置基本规则

  • 设置默认策略:拒绝所有入站连接,允许所有出站连接:
    sudo iptables -P INPUT DROP
    sudo iptables -P FORWARD DROP
    sudo iptables -P OUTPUT ACCEPT
    
  • 允许已建立的连接:避免中断现有会话:
    sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
  • 允许特定端口:如允许SSH(22端口):
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
  • 允许特定IP访问:如允许IP192.168.1.100访问所有端口:
    sudo iptables -A INPUT -s 192.168.1.100 -j ACCEPT
    

4. 保存与恢复规则

Debian默认不保存iptables规则,需通过以下方式持久化:

  • 安装iptables-persistent
    sudo apt install iptables-persistent
    
    安装过程中选择“是”以保存当前规则。
  • 手动保存与恢复
    sudo sh -c "iptables-save > /etc/iptables/rules.v4"  # 保存规则
    sudo iptables-restore < /etc/iptables/rules.v4     # 恢复规则
    

三、使用nftables配置防火墙(可选)

nftables是iptables的替代工具,语法更简洁,性能更优。

1. 安装nftables

sudo apt update
sudo apt install nftables

2. 查看当前规则

sudo nft list ruleset

3. 配置基本规则

  • 创建规则集:编辑/etc/nftables.conf,添加以下内容:
    table inet filter {
        chain input {
            type filter hook input priority 0;
            ct state established,related accept
            iif lo accept
            tcp dport 22 accept
            ip saddr 192.168.1.100 accept
            drop
        }
        chain forward {
            type filter hook forward priority 0;
            drop
        }
        chain output {
            type filter hook output priority 0;
            accept
        }
    }
    
  • 应用规则
    sudo nft -f /etc/nftables.conf
    

4. 保存与恢复规则

  • 保存规则
    sudo nft list ruleset > /etc/nftables.conf
    
  • 恢复规则
    sudo nft -f /etc/nftables.conf
    

注意事项

  • 备份规则:修改前备份现有规则(如sudo cp /etc/ufw/before.rules /etc/ufw/before.rules.bak)。
  • 测试规则:生产环境应用前,在测试环境验证规则有效性,避免误拦截。
  • 日志记录:可通过sudo ufw logging on(ufw)或sudo iptables -A INPUT -j LOG(iptables)开启日志,便于排查问题。
  • 服务依赖:确保防火墙规则不影响必要服务(如SSH、Web服务),避免锁死远程连接。

0