当前位置: 首页 > news >正文

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

一、防火墙的发展历程

第一代防火墙:包过滤防火墙(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

http://www.dtcms.com/a/516589.html

相关文章:

  • 电商网站制作公司网站单个页面紧张搜索引擎蜘蛛
  • mac 安装 dmg 格式程序,打开显示已损坏问题
  • CentOS 7 系统安装教程
  • 网站设计制作从哪里学起精准营销定义
  • Python 第二十一节 基础案例练习
  • 视频分析软件识别人像特征
  • Qt:Qt下载慢的解决方案
  • 南昌做公司网站哪家好做一款app需要多少钱费用
  • 怪兽网站模板网站运营谁都可以做吗
  • 金戈博爱联盟游资团队
  • 浏览器插件爬虫,原创,告别爬虫解密
  • 台式机网站建设福州搜索排名提升
  • 【开发指南】全志系列核心板开发过程中的常见问题及排查策略
  • 做搜狗pc网站优化哪些调查网站可以做问卷赚钱
  • 墙绘做网站哪家好长沙网红打卡景点
  • SignalR 底层原理详解
  • 企业应该如何进行网站推广济南建设大厦
  • Java面试题-两个对象相等equals相等吗,equals相等对象相等吗
  • 网站建设汇报材料链接买卖
  • 外贸型网站该如何推广甘肃网络公司网站
  • 外国做的福利小视频在线观看网站网站建设现状调查研究
  • DevEco Studio与Web联合开发:打造鸿蒙混合应用的全景指南
  • 动力网站网站关键词优化的步骤和过程
  • Kotlin 高阶函数在回调设计中的最佳实践
  • gh-ost菜鸟教程
  • 湖南微信网站公司网页显示网站正在建设中怎么做
  • 《刚刚问世》系列初窥篇-Java+Playwright自动化测试-27- 操作单选和多选按钮 - 上篇(详细教程)
  • 网站建设与管理培训总结网站规划有前途吗
  • 下载空excel和导出带有查询数据的excel的区别
  • 智元灵犀X1-本体通讯架构分析2:CAN/FD总线性能优化分析