Akemi

Linux软件防火墙介绍

2026/02/11

Netfilter介绍

Linux内核防火墙基于netfilter框架实现,通过在内核网络协议栈中嵌入钩子点(链),来允许内核模块在数据包处理的关键阶段对其进行检查、修改、拦截或转发

  • NF_IP_PRE_ROUTING 数据包进入网络层后,路由决策前DNAT
  • NF_IP_LOCAL_IN 数据包被路由到本地主机
  • NF_IP_FORWARD 数据包要转发到其他主机
  • NF_IP_LOCAL_OUT 本地主机生成的数据包SNAT
  • NF_IP_POST_ROUTING 路由后,数据包即将离开本机SNAT

为了阻止复杂的过滤逻辑,netfilter定义了不同表:

  • filter表:用于数据包过滤(允许/拒绝),包含了INPUT、FORWARD、OUTPUT链
  • nat表:用于网络地址转换,包含PREROUTING、POSTROUTING、OUTPUT链
  • mangle表:用于修改数据包的TOS服务类型、TTL等标记,支持更加精细的流量调整
  • raw表:用于跳过内核连接跟踪机制,提高特定场景的性能

动作

规则对数据包的处理结果通过动作定义,常见动作包括:

  • ACCEPT 允许数据包继续传输
  • DROP 丢弃数据包,不进行回应
  • REJECT 拒绝数据包并返回错误信息
  • SNAT/DNAT 修改数据包源目IP地址
  • RETRUN 结束当前链的处理,返回上一级链

只要能定义netfilter的行为,就能对流经内核的数据进行处理,所以不同的操作netfilter的工具就成为了不同linux软件防火墙的软件

软件防火墙种类介绍

iptables(最经典

iptables是linux上最常用的防火墙工具,基于表-链-规则的结构,主要包含filter过滤,nat地址转换、mangle数据包修改、raw连接跟踪等表

同时支持复杂的匹配条件,适应各种场景,但iptables语法较为复杂,规则较多时难以管理

对ipv6需要单独使用ip6tables,对arp需要单独使用arptables

ip6tables

专为ipv6设计的工具,功能和用法与ipv4类似

arptables

专门用于管理arp协议数据包,支持创建规则,允许、拒绝或修改流入、流出和转发的arp数据包

ebtables

用于在linux桥接设备上建立过滤规则,当你的linux主机充当网桥或交换机时。

ebtables工作在TCP/IP的第二层,因此可以查看和修改以太网帧头部的所有信息。主要用于虚拟网络隔离,早期容器网络的隔离,mac地址过滤,vlan过滤

nftables(新一代防火墙工具

是为替代iptables开发的新一代工具,同样基于netfilter框架

预发更简洁统一,支持ipv4 ipv6 arp等协议。支持批量规则管理、变量、集合等高级功能

firewalld(红帽发行版linux默认的防火墙管理工具

基于iptables/nftables,支持动态更新规则,使用zone的概念,可以根据网络环境快速切换

使用firewall-cmd命令行或图形工具firewall-config配置,并且可以切换iptables或nftables为底层

ufw(uncomplicated firewall——ubuntu/debian使用防火墙管理工具

也是基于iptables/nftables粉装的,提供更简单的命令接口,适合新手和简单场景

屏蔽了复杂的表链结构,通过简单的允许、拒绝端口、服务命令的配置,比如ufw allow 80/tcp

启用支持/禁用,默认velvet设置

底层依赖iptables,比较新的版本已经切换成了nftables

CATALOG
  1. 1. Netfilter介绍
  2. 2. 软件防火墙种类介绍
    1. 2.0.1. iptables(最经典
    2. 2.0.2. ip6tables
    3. 2.0.3. arptables
    4. 2.0.4. ebtables
    5. 2.0.5. nftables(新一代防火墙工具
    6. 2.0.6. firewalld(红帽发行版linux默认的防火墙管理工具
    7. 2.0.7. ufw(uncomplicated firewall——ubuntu/debian使用防火墙管理工具