企业安全防护之——防火墙

一、防火墙的发展历程

第一代防火墙 :包过滤防火墙(1980年代末-1990年代初);第一代防火墙主要基于包过滤技术,通过检查数据包的头部信息(如源IP地址、目标IP地址、端口号、协议类型等)来决定是否允许数据包通过。

特点:工作在网络层(OSI模型第3层),规则简单,性能较高,但功能有限,无法识别数据包的内容或状态,容易被绕过。例如,它无法阻止伪造IP地址的攻击。

第二代防火墙 :状态检测防火墙(1990年代中期);第二代防火墙引入了状态检测技术(Stateful Inspection)。它不仅检查数据包的头部信息,还会跟踪连接的状态(如TCP会话的建立、数据传输和关闭),通过维护状态表来判断数据包是否属于合法会话。

特点:工作在传输层(OSI模型第4层),安全性显著提高,能够防御一些简单的攻击,如SYN洪泛攻击。

第三代防火墙 :应用防火墙(2000年代初):随着Web应用和复杂协议的普及,防火墙开始

向应用层(OSI模型第7层)扩展。第三代防火墙被称为应用层防火墙,能够深入检查数据包的

内容,而不仅仅是头部信息。它可以识别特定的应用程序或协议(如HTTP、FTP),并根据应

用层规则进行过滤。

特点:精细化控制,但缺点是性能开销较大

第四代防火墙 :下一代防火墙(NGFW,2010年代);它集成了传统防火墙的功能,并加入了

更高级的特性,如入侵检测与防御系统(IDS/IPS)、深度包检测(DPI)、应用识别与控制、
用户身份管理等。

特点:能够根据应用程序、用户行为和威胁情报进行动态调整,适应云计算和移动互联网的复杂环境。例如,它可以识别并阻止加密流量中的恶意行为(如SSL/TLS隧道中的威胁)。

现代防火墙 :云原生与AI驱动(2020年代至今):随着云计算、虚拟化和零信任架构的兴

起,防火墙进一步演变为云原生防火墙和AI驱动防火墙。云原生防火墙部署在云环境中,支持

分布式架构,能够保护容器、微服务和多云环境。AI驱动防火墙则利用机器学习和大数据分

析,主动识别未知威胁(如零日攻击),并实现自动化响应。此外,防火墙的功能逐渐融入

SASE(安全访问服务边缘)和XDR(扩展检测与响应)等综合安全框架中,强调全局防护。

二、Linux中防火墙

1. iptables

简介:基于内核的Netfilter框架开发。它通过定义规则来控制网络数据包的过滤、转发和修改

功能与特点:

  • 基于表(tables)和链(chains)管理规则
  • 规则匹配:支持基于IP地址、端口、协议(如TCP、UDP、ICMP)、状态(如NEW、ESTABLISHED)等条件过滤数据包
  • 状态检测:通过 conntrack 模块支持状态检测,适合实现动态防火墙策略
  • 灵活性:支持用户自定义链,规则配置非常灵活

优点:

  • 轻量高效,适用于资源有限的系统
  • 被广泛支持,几乎所有Linux发行版都预装

缺点:

  • 配置复杂,尤其是大规模规则时,管理和调试困难
  • 不支持现代功能,如动态更新或高级应用层过滤

例:阻止来自特定IP的流量

复制代码
主机:4.130
[root@localhost ~]# iptables -A INPUT -s 192.168.4.1 -j DROP

2. nftables

简介:同样基于Netfilter框架,但提供了更现代化和统一的规则管理方式

功能与特点:

  • 统一框架:将 iptables 的多个表(filter、nat 等)名称弱化处理,转成了表类型
  • 语法改进:采用更直观的脚本化语法,支持批量操作和原子性更新
  • 高效性:内部使用虚拟机(nftables VM)处理规则,性能更优,尤其在复杂规则集下
  • 扩展性:支持动态规则更新、集合(sets)功能,可高效管理大量IP或端口

优点:

  • 配置更简洁,易于维护和扩展
  • 支持现代网络需求,如IPv6优化和容器化环境
  • 向下兼容 iptables(通过 iptables-nft 层)

缺点:

  • 部分老旧系统不支持

例:创建表并添加规则

复制代码
nft add table inet my_table
nft add chain inet my_table my_chain {rr hook input priority 0 \; }
nft add rule inet my_table my_chain ip saddr 192.168.1.100 drop

3.firewalld

简介:基于iptables或nftables的高级防火墙管理工具,它提供动态配置和用户友好的管理界面

功能与特点:

  • 区域管理:通过"区域"(zones,如 public、trusted、drop)简化规则配置,不同网络接口可绑定不同区域
  • 动态更新:支持运行时修改规则,无需重启服务
  • 服务抽象:内置服务定义(如ssh、http),无需手动指定端口
  • 后端支持:可选择 iptables 或 nftables 作为底层实现(RHEL 8 起默认使用nftables)

优点:

  • 配置直观,适合初学者和系统管理员
  • 支持图形化界面(firewall-config)和命令行工具(firewall-cmd)
  • 适用于桌面和服务器环境

缺点:

  • 相比直接使用 iptables/nftables,性能开销略高
  • 对于复杂场景,灵活性不如底层工具

例:启动firewalld并设置默认区域

复制代码
systemctl start firewalld
firewall-cmd --set-default-zone=public
# 允许HTTP服务
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

4.三者对比

三、iptables防火墙

  • 基于内核 Netfilter 框架的经典防火墙工具
  • 其核心结构由四张表(tables)和五个链(chains)组成
  • 每个表定义了不同的功能,而每个链决定了数据包在特定阶段的处理方式

1. 四表(Tables)

注:iptables 通过表来组织规则,每张表专注于特定的数据包处理功能

filter 表

  • 功能作用:负责数据包的过滤,是 iptables 的默认表,用于决定数据包是否被允许通过或不允许通过
  • 适用场景:访问控制、阻止特定流量
  • 支持的链:INPUT、FORWARD、OUTPUT

nat 表

  • 功能作用:用于网络地址转换(NAT),修改数据包的源地址或目标地址,常用于IP伪装、端口转发等
  • 适用场景:内网访问外网、服务器端口映射
  • 支持的链:PREROUTING、POSTROUTING、INPUT、OUTPUT(部分支持)

mangle 表

  • 功能作用:用于修改数据包的特殊属性,如TTL(生存时间)、TOS(服务类型)或标记数据包供后续处理
  • 适用场景:流量整形、QoS(服务质量)控制
  • 支持的链:PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING

raw 表

  • 功能作用:用于在数据包处理的最早阶段进行特殊处理,主要用于设置数据包的"不跟踪"状态(跳过连接跟踪)
  • 适用场景:提高性能(如跳过NAT跟踪)、处理特殊流量
  • 支持的链:PREROUTING、OUTPUT

2. 五链(Chains)

注:链指的是处理数据包的位置和时机

PREROUTING 链

  • 功能作用:数据包进入系统后、路由决策前处理,用于修改目标地址或标记数据包
  • 适用表:nat、mangle、raw

INPUT 链

  • 功能作用:处理发往本机的数据包,用于本地服务的访问控制
  • 适用表:filter、mangle

FORWARD 链

  • 功能作用:处理需要转发的流量(即本机作为路由器时),用于控制经过本机的数据包
  • 适用表:filter、mangle

OUTPUT 链

  • 功能作用:处理本机发出的数据包,用于限制本地发起的流量
  • 适用表:filter、nat、mangle、raw

POSTROUTING 链

  • 功能作用:数据包离开系统前、路由决策后处理,用于修改源地址或完成NAT
  • 适用表:nat、mangle

3.语法格式

格式:命令 位置 条件 策略

案例:iptables -t filter -A INPUT -p tcp --dport 22 -j DROP

选项:

  • -A :追加规则
  • -I :插入规则
  • -L :查看规则
  • -n :数字化显示
  • -v :显示更加详细信息
  • -F :清空规则(-t 表名,仅清空内存中的缓存)
  • -D :删除规则

条件(规则):

  • -s :判断来源IP地址
  • -d :判断目标IP地址
  • -p :判断传输协议
  • --sport:判断来源端口
  • --dport:判断目标端口
  • -i :判断入站接口
  • -o:判断出站接口
  • --icmp-type:判断icmp的具体类型(0:ping应答,8:ping请求)

策略(动作):

  • ACCEPT :放行
  • REJECT :拒绝
  • DROP :丢弃
  • SNAT --to-source IP :源地址修改
  • MASQUERADE :动态地址转换
  • DNAT --to-destination IP :目标地址修改
  • REDIRECT --to-ports :将请求其他主机的数据包转发给本机的指定端口
  • LOG :将符合条件的数据包记录在日志中

注:防火墙的执行逻辑是自上而下顺序匹配,匹配成功即停止

例:使本机能够ping通其他主机,但其他主机ping不通本机

  • 添加防火墙规则

    [root@localhost ~]# iptables -t filter -A INPUT -p icmp --icmp-type 8 -j DROP
    [root@localhost ~]# iptables -t filter -A INPUT -p icmp --icmp-type 0 -j ACCEPT

相关推荐
用户962377954482 天前
DVWA 靶场实验报告 (High Level)
安全
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——在 n8n 中构建你的第一个 AI 工作流
人工智能·安全·agent
数据智能老司机2 天前
用于进攻性网络安全的智能体 AI——智能体 AI 入门
人工智能·安全·agent
用户962377954482 天前
DVWA 靶场实验报告 (Medium Level)
安全
red1giant_star2 天前
S2-067 漏洞复现:Struts2 S2-067 文件上传路径穿越漏洞
安全
用户962377954482 天前
DVWA Weak Session IDs High 的 Cookie dvwaSession 为什么刷新不出来?
安全
YuMiao2 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
cipher3 天前
ERC-4626 通胀攻击:DeFi 金库的"捐款陷阱"
前端·后端·安全
Sinclair5 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
Rockbean6 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek