iptables防火墙理论清晰解释(四表、五链、流程图文并茂)学习不能忘!!!


前言

在这里插入图片描述

最近整理了一下防火墙,讲解了一些防火墙的理论知识,希望对你有所帮助。

LINUX防火墙:隔离内部网络和外部网络的隔离技术。

  • 介于3-4层的传输 ——管理控制 服务的提供。

系统安全:

1.第三方监控杀毒软件

2.系统策略

3.文件权限

4.防火墙规则 :原地址 目标地址 端口 协议 mac 数据包中的标志

类似ACL访问控制列表: 过滤

从逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。

主机防火墙:针对于单个主机进行防护。

网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。
网络防火和主机防火墙并不中突,可以理解为,网络防火墙主外(集体),主机防火墙主内(个人)。
从物理上讲,防火墙可以分为硬件防火墙和软件防火墙。

硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。如:思科ASA 华为防火墙 天融信防火墙 等。
软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。如:iptables firewall(CentOS7独有的)等。

一:iptables包过滤的概述

1.1:netfilter

  • 位于Linux内核中的包过滤功能体系
  • 称为Linux防火墙的“内核态”

1.2:iptanbles

  • 位与/usr/sbin/iptables,用来管理防火墙规则的工具

  • 称为Linux防火墙的 “用户态”

-------上述2种称呼都可以表示Linux防火墙

1:防火墙关联端口----服务  端口开相应的服务就开

2:基于IP----源IP、目标IP

3:协议----TCP、UDP、ICMP

极少数会过滤MAC(局域网)

1.3:包过滤的工作层次

主要是网络层、针对IP数据包

体现在对包内的IP地址、端口等信息的处理上

mark

二:iptables的四表、五链结构

2.1:规则链

  • 规则的作用:对数据包进行过滤或处理

  • 链的作用:容纳各种防火墙规则

  • 链的分类依据:处理数据包的不同时机

(简单来说实际上就是容器,容纳里面多个规则,链就是规则的集合)

2.2:具体的五链

硬件防火墙效果大于软件防火墙,软件防火墙只是多了一道防护

2.21:INPUT:处理入站数据包【入站就会读的链 进防火墙】

2.22:OUTPUT:处理出站数据包【出站处理】

2.23:FORWARD链:处理转发数据包

mark

FORWARD转发链是INPUT跟OUTPUT中间的过程,如果你想拒绝某个数据包的时候没有处理,FORWARD会处理但是安全方面考虑在INPUT处理

mark

  • 如图所示客户端想要访问web服务器的时候,客户端会请求给防火墙,放火墙在转发给服务器,防火墙在forward做规则,服务端在input做规则

  • 防火墙不仅要信息的转发还要筛选跟过滤,可以直接在forword转发链进行

  • 还有一种情况是是在input链进行过滤

2.24:POSTROUTING链:在进行路由选择后处理数据包

【SNAT地址转换 基于原地址进行转换】

客户机在局域网【私有IP】服务器在外网;客户机访问web服务器,走防火墙会进行NAT地址转换,先查路由表 ,就知道数据包想要发往出口方向 【内部网关 外网接口】 数据包放在外网接口进行转发

转发之前会进行处理 就会动用POSTROUTING链

mark

2.25:PREROUTING链:在进行路由选择前处理数据包

【DNAT地址转换 基于目标地址进行转换】

​ 服务器在局域网【私有IP】防火墙现在做的是NAT地址转换,外网的客户机想要访问私有局域网的服务器上的网站;正常是访问不到的公有网络看不到私有网络的地址,此刻就应该做个IP地址映射,外网有个外网接口,里面有个内网网关,假设外网地址是12.0.0.1,只要把私有的IP地址映射到外网的接口,对方来访问接口地址就由于访问你的私有IP,这种情况用到的是PREROUTING链,就是先转换IP,相对上面不同的是这边转换的是目标IP,上面那种是转换源IP;把目标IP转换成私有IP 在查询路由表,进行转发(路由选择前)

mark

  • 只有做NAT功能时候POSTROUTING链跟PREROUTING链才会发生作用。

  • 正常进行数据转发时只需用到INPUT链、OUTPUT链、跟FORWARD链就可以 [重要]

2.3:规则表

  • 表的作用:容纳各种规则链

  • 表的划分依据:防火墙规则的作用相似

【链包含多条规则,表当中包含不同的链;不同的表包含不同种类的链】

2.4:默认包括的4个规则表

2.41:raw表:状态跟踪确定是否对该数据包进行

【BUG测试、维护、追踪时使用 打标记使用 使用较少】

2.42:mangel表:为数据设置标记

2.43:nat表:修改数据包中的源、目标IP地址或端口

2.44:filter表:确定是否放行该数据包【过滤】

(只做数据转发时一定经过filter表;在里面定义规则,允许与拒绝源地址访问;防火墙的默认表)重要!!!

2.5:四表五链之间的关系

mark

三:数据包过滤的匹配流程

3.1:规则表之间的顺序

●raw→mangle→nat >filter

3.2:规则链之间的顺序

●入站: PREROUTING→INPUT
●出站: OUTPUT→POSTROUTING
●转发: PREROUTING>FORWARD→POSTROUTING

●五链顺序:PREROUTING— > INPUT— – > FORWARD- - - - >OUTPUT---- >POSTROUT ING

3.3:规则链内的匹配顺序

●按顺序依次检查,匹配即停止(LOG策略例外)
●若找不到相匹配的规则,则按该链的默认策略处理

3.4:匹配流程示意图

mark

规则链之间的优先顺序(分三种情况):

第一种情况:入站数据流向

从外界到达防火墙的数据包,先被PREROUTING规则链处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包的目标主机是防火墙本机(比如说Internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层的应用程序(比如Apache/Nginx服务器)进行响应。

第二种情况:转发数据流向

来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

第三种情况:出站数据流向

来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或拦截),然后再交给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

第三种情况:出站数据流向

防火墙本机向外部地址发送的数据包(比如在防火墙主机中测试公网DNS服务器时),首先被OUTPUT规则链处理,之后进行路由选择,然后传递给POSTROUTING规则链(是否修改数据包的地址等)进行处理。

感谢观看,留个关注再走吧宝贝。

猜你喜欢

转载自blog.csdn.net/weixin_47151643/article/details/107736735