Iptables 防火墙实践

Iptables 防火墙实践

1.Iptables 基本介绍

1.1 防火墙的种类

  • 从逻辑上讲,防火墙可以大体分为主机防火墙和网络防火墙.
    • 主机防火墙 : 针对于单个主机进行防护,比如 windows
    • 网络防火墙 : 往往处于网络入口,针对于网络入口进行防护,服务于防火墙背后的服务集群
  • 从物理上讲,防火墙可以分为硬件防火墙和软件防火墙
    • 硬件防火墙 : 在硬件级别实现部分防火墙功能,另一部分功能基于软件实现, 性能高. 成本高
    • 软件防火墙 : 以软件的方式模拟防火墙功能,运行在操作系统上,性能不高,成本较低

1.2 什么是Iptables

  • Iptables 其实不是真正的防火墙,就是一个代理程序,用户通过iptables这个代理程序,将安全规则执行到对应的"安全框架"中,这个"安全框架"才是真正的防火墙,这个安全框架叫 netfilter ,是内核代码中不可缺少的一部分
  • iptables 位于操作系统的用户空间, 我们后期是通过iptables 命令工具操作 netfilter 内核框架.
  • 所以 iptables 的完整叫法应该是 netfilter/iptables ,它是linux平台下的"包过滤型防火墙",是免费的,它可以代替昂贵的商业防火墙解决方案,完成数据包的过滤,连接追踪,限速,网络地址替换(NAT)等功能.

在这里插入图片描述

1.3 什么是包过滤防火墙

  • 包过滤防火墙它工作在OSI七层模型中的网络层,用来匹配网络数据包的(header):
    • 1.将header 与预先定义好的防火墙规则进行比对
    • 2.与规则相匹配的包会被放行
    • 3.与规则不匹配的包则可能会被丢弃,也可能执行更复杂的动作
  • 由于包过滤防火墙工作在网络层,故也称"网络防火墙" 它通过检查每个数据包的:
    • 源地址,目标地址;
    • 源端口,目的端口;
    • 协议类型,(TCP,UDP,ICMP) 等状态信息来判断是否符合规则

1.4 包过滤防火墙如何实现

  • 包过滤防火墙是由 netfilter 来实现的,他是内核一部分
  • 如果我们想要防火墙能够达到"防火"的目的,则需要在内核中设置关卡,所有进出的报文都要经过这些关卡进行检查:
    • 将符合条件的放行
    • 不符合的阻止
    • 而这些关卡在iptables中 称之为 “链”

2.Iptables中链的概念

2.1 什么是链

  • 防火墙的作用就在于对经过的数据报文进行"规则"匹配,然后执行规则对应的"动作".所以当报文经过这些关卡的时候,则必须匹配这个关卡上的规则. 但是,这个关卡上可能不止有一条规则,而是有很多条.当我们把这些规则串到一起的时候,就形成了"链"
  • 所以,每经过这个关卡的报文,都要将这条链上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作,如果没有则执行默认链的动作

在这里插入图片描述

2.2 Iptables有哪些链

  • 当我们启用了防火墙功能时,报文需要经过很多关卡,也就是说,根据实际情况不同,报文经过"链"可能不同,大体分为如下三类:
    • 请求本机会经过哪些链 ( PREROUTING --> INPUT --> Local Process )
    • 请求经过本机经过哪些链 ( PREROUTING --> FORWARD --> POSTROUTING )
    • 从本机发出经过哪些链 ( Local Process --> OUTPU --> POSTROUTING )
  • 了解 Iptables链的数据包流向,后期在设定规则时,能很清晰的知道将规则设定在哪个链上

在这里插入图片描述

3. Iptables 表的概念

3.1 什么是表

  • 我们对每个"链" 上都放置了一串规则,但是这些规则都很相似.比如:
    • A类规则都是对IP或端口的过滤
    • B类规则都是对报文进行修改的
    • C类规则都是进行地址替换的
    • 那么这个时候,我们是不是能把实现相同功能的规则放在一起?
  • 当我们把具有相同功能的规则集合在一起叫做"表",所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而iptables已经为我们定义了4种表,每种表对应了不同的功能

3.2 表的功能

表名 作用 包含的链
fileter 负责过滤功能 INPUT, OUTPUT, FORWARD
nat 负责网络地址转换功能 PREROUTING , INPUT , OUTPUT , POSTROUTING
mangle 负责修改数据包内容 INPUT , OUTPUT , FORWARD , POSTROUTING , PREROUTING
raw 关闭nat表上启用的连接追踪功能 PREROUTING , OUTPUT

3.3 表与链的关系

  • raw --> mangle --> nat --> filter

在这里插入图片描述

4. Iptables 规则管理

4.1 什么是规则

  • 数据包的过滤基于规则,而规则是由匹配 条件 + 动作组

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值