iptable的概念与底层原理(详解)

2021/12/27 6:07:47

本文主要是介绍iptable的概念与底层原理(详解),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、iptables

1.iptables简介

什么是iptables?我们首先应该知道它是Linux平台最著名的防火墙工具,系统自带的,从什么版本的内核开始自带的呢,2.4以后。
它的全称应该是netfilter/iptables,从这个名称上看,它其实是两个软件。netfilter是运行在内核之中的,对数据包进行分析处理;iptables是提供用户的一个配置管理工具,它可以设置一些表、表中有一些链条、链条上面有一些规则。通过iptables建立的一整个的规则体系,netfilter来对数据包进行分析处理。

 

 

 2.什么是防火墙?

防火墙一直被认为是保护敏感信息的第一道防线。他们在安全与受控内部网络之间建立了一道屏障,提供低级保护,以及重要的日志记录和审计功能。
它能监视传入和传出的流量,并根据一组以定义的安全规则决定是允许还是阻止特定流量。

 

 

 

 3.防火墙的种类

1.硬件防火墙(主机防火墙)f5
2.软件防火墙(网络防火墙)
iptables
firewalld

二、iptables基本介绍

 

 

 

 流程

用户层  --->  调用iptables  --->  ip_tables内核模块  --->  Netfilter(系统安全框架) --->  过滤请求

1.解析内容

1.iptables:
iptabes其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架中” 才是真正的防火墙,这个框架的名字叫netfiler
iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。
2.iptables内核模块
ip_tables模块它是防火墙的核心模块,负责维护防火墙的规则表,通过这些规则,实现防火墙的核心功能。

3.netfilter:
netfilter才是防火墙真正的安全框架,netfilter位于内核空间
Netfilter是Linux操作系统核心层内部的一个数据包处理模块,它具有如下功能:网络地址转换(Network Address Translate), 数据包内容修改, 以及数据包过滤的防火墙功能

三、iptables流程讲解

1.流入本机

 

 

 

2.解析流入本机

讲解:,
        当外部的数据进入时通过网卡进入本机后,在网络层时会经过PREROUTING(主机外报文进入位置)链继续前进到达用户层之前会经过INPUT链。



解析流程:
  数据进入(通过网线) ---> 链接网卡设备---->网络接口层---->netfilter---->在网络层时会经过PREROUTING(主机外报文进入的位置)链---> TCP UDP协议--->进入用户层之前(INPUT)---->到达用户层

3.流出本机

 

 

4.解析(流出本机) 

讲解:
    当用户从用户层发出数据之后,会先经过OUTPUT链,在经过了OUTPUT链到达Netfilter防火墙,在经过防火墙到达设备驱动之前,会经过POSTROUTING链,之后在发送出去。
    
流程图解析:
用户操作命令工具(iptables) --> OUTPUT链 --> ip_tables内核模块 -->
Netfilter(防火墙) --> 网络层 --> 网络接口层 --> POSTROUTING链
-- 设备驱动    --> 网络传输出

5.经过本机

 

 

 6.解析

讲解:
    报文经过路由并且发觉目的并不是本机,在经过PREROUTING链进入本机发现最终目的并不是本机时被转到FORWORD链后经过POSTROUING链转发出去。
    
流程解析:
数据进入 --> PREROUTING --> FORWARD --> POSTROUTING --> 出去

四、什么是包过滤防火墙

1.什么是包

    在数据传输过程中,并不是一次性传输完成的:而是将数据分成若干个数据包,一点一点的传输。

 

 

 

 

2.什么是包过滤防火墙?
过滤数据包的防火墙。
3.包过滤防火墙如何实现?
通过系统安全框架,过滤数据包。

五:Iptables四表五链的概念

1.什么叫表?
具备某种功能的集合叫做


2.那四个表有什么作用?
filter 负责做过滤功能 INPUT、OUTPUT、FORWARD
nat 网络地址转换 PREROUTING、INPUT、OUTPUT、POSTROUTING
mangle 负责修改数据包内容 PREROUTING、INPUT、OUTPUT、POSTROUTING、FORWARD
raw 负责数据包跟踪 REROUTING、OUTPUT
3.五条链运行在那些地方?
1)REROUTING:    主机外报文进入的位置,允许的表    mangle, nat(目标地址转换,,通常指相应报文)
2)INPUT:    报文进入本机用户空间位置。允许的表filter, mangle
3)  OUTPUT:    报文从本机用户空间出去的位置,允许的表filter,mangle,nat
4) FOWARD:      报文经过路由并且发觉不是本机,决定转发但man还不确定从那个网卡出去允许的filter,  mangle
5) POSTROUTING:报文经过路由被转发出去,允许mangle,nat(源地址转换,把原始地址转换为转发主机出口网卡地址)

4.五链表格

名称 功能 作用的表
PREROUTING 主机外报文进入位置 mangle, nat(目标地址转换,,通常指响应报文)
INPUT 报文进入本机用户空间位置 filter, mangle
OUTPUT 报文从本机用户空间出去的位置 filter, mangle, nat
FOWARD 报文经过路由并且发觉不是本机决定转发但还不知道从哪个网卡出去 filter, mangle(中转)
POSTROUTING 报文经过路由被转发出去 许mangle,nat(源地址转换,把原始地址转换为转发主机出口网卡地址)

 

六、iptables全面流程图(详解)

 

 

1.解析流程顺序


流入本机: A  --->  PREROUTING  --->  INPUT ---> B
解析:
    网络经过该流程才能发出(出去)
    
流出本机:OUTPUT  --->  POSTROUTING  ---> B
    网络经过该流程才能进入(进来)
    
经过本机: A ---> OUTPUT ---> POSTROUTING | ---> PREROUTING ---> FORWARD  ---> POSTROUTING ---> C ---> PREROUTING  ---> INPUT ---> B
2.经过本机(内容解析)
 A ---> OUTPUT ---> POSTROUTING    
 作用于A阶段(出去)
 
 c相当于是一个防火墙
 PREROUTING ---> FORWARD  ---> POSTROUTING ---> C 
作用于C阶段(出去)

PREROUTING  ---> INPUT ---> B
作用于B阶段(进入)

七:链包含表

filter :  INPUT 、OUTPUT 、FORWARD
nat : PREROUTING 、 OUTPUT、 POSTROUTING
raw : PREROUTING、 OUTPUT
mangle : PREROUTING INPUT FORWARD OUTPUT POSTROUTING

 

 

 

 



这篇关于iptable的概念与底层原理(详解)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程