温馨提示×

Debian iptables防火墙如何开启

小樊
41
2025-11-15 02:18:20
栏目: 智能运维

Debian 上启用 iptables 的正确做法

一 准备与检查

  • 确认系统是否已安装 iptables:运行命令查看版本或现有规则
    sudo iptables -V
    sudo iptables -L -n -v
  • 如未安装,先更新索引并安装:
    sudo apt update && sudo apt install iptables
  • 规划规则顺序与策略:务必先放行回环、已建立连接,再放行业务端口,最后再设置默认丢弃,避免把自己锁在外面(尤其是远程 SSH 场景)。

二 快速启用并持久化规则

  • 写入基础规则(示例,按需调整端口与策略)
    sudo iptables -A INPUT -i lo -j ACCEPT
    sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    sudo iptables -A INPUT -j DROP
  • 保存规则(两种常用方式,二选一或都做)
    • 使用 iptables-persistent(推荐)
      sudo apt install iptables-persistent
      安装过程中选择“是”保存当前规则;后续可用:
      sudo netfilter-persistent save
      sudo netfilter-persistent restart
    • 手动保存与开机恢复
      sudo iptables-save > /etc/iptables/rules.v4
      创建开机加载脚本:
      echo ‘#!/bin/sh’ | sudo tee /etc/network/if-pre-up.d/iptables
      echo ‘/sbin/iptables-restore < /etc/iptables/rules.v4’ | sudo tee -a /etc/network/if-pre-up.d/iptables
      sudo chmod +x /etc/network/if-pre-up.d/iptables
  • 说明
    • 某些教程会创建 /etc/iptables.rules 并配合 if-pre-up.d 脚本加载,这与使用 /etc/iptables/rules.v4 的做法等价,关键是路径与加载脚本一致。
    • 不建议直接用“iptables 服务”方式管理,Debian 官方更常用 netfilter-persistent 或手工脚本持久化。

三 常用维护命令

  • 查看规则与计数器:
    sudo iptables -L -n -v
  • 临时清空规则(谨慎):
    sudo iptables -F
  • 保存当前运行规则:
    sudo iptables-save > /etc/iptables/rules.v4
  • 从文件恢复规则:
    sudo iptables-restore < /etc/iptables/rules.v4
  • 持久化保存/重载(使用 netfilter-persistent):
    sudo netfilter-persistent save
    sudo netfilter-persistent restart
  • 如需重启防火墙逻辑:
    sudo systemctl restart netfilter-persistent。

四 安全与排错建议

  • 远程操作务必先放行 SSH(如端口 22/TCP),再设置默认丢弃;必要时在本地控制台或带外管理可用时再收紧策略。
  • 变更前备份规则:
    sudo iptables-save > /root/iptables-$(date +%F).bak
  • 需要放行 ICMP(ping)可添加:
    sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
  • 若使用 firewalld/ufw 等其他前端,请避免与 iptables 规则混用,以免策略冲突。

0