快盘下载:好资源、好软件、快快下载吧!

快盘排行|快盘最新

当前位置:首页软件教程安卓软件教程 → linux下网络层防火墙iptables原理

linux下网络层防火墙iptables原理

时间:2019-08-16 12:00:02人气:作者:快盘下载我要评论

为何要明确是linux下的网络防火墙,防火墙按照工作在不同TCP/IP层又可以分为网络层防火墙和应用层网关防火墙[应用层网关防火墙是传统的代理型防火墙],所谓防火墙指的是一个由软件和硬件设备组合而成。我们平时常用iptables,其实他是由两个组件写作完成的。组件为netfilter/iptables。我们经常用的就是用户空间iptables用来增删修,而里边的表链则是netfilter。


linux下网络层防火墙iptables原理


netfilter 


组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。


netfilter由4表5链组成。

4张表(带优先级)分别为:raw->mangle[包重构]-> nat[地址转换]-> filter[过滤]。


(1)RAW表

只使用在PREROUTING链和OUTPUT链上,因为优先级最高,从而可以对收到的数据包在连接跟踪前进行处理。一但用户使用了RAW表,在 某个链上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了.

(2)filter表

主要用于过滤数据包,该表根据系统管理员预定义的一组规则过滤符合条件的数据包。对于防火墙而言,主要利用在filter表中指定的规则来实现对数据包的过滤。Filter表是默认的表,如果没有指定哪个表,iptables 就默认使用filter表来执行所有命令,filter表包含了INPUT链(处理进入的数据包),RORWARD链(处理转发的数据包),OUTPUT链(处理本地生成的数据包)在filter表中只能允许对数据包进行接受,丢弃的操作,而无法对数据包进行更改

(3)nat表

主要用于网络地址转换NAT,该表可以实现一对一,一对多,多对多等NAT 工作,iptables就是使用该表实现共享上网的,NAT表包含了PREROUTING链(修改即将到来的数据包),POSTROUTING链(修改即将出去的数据包),OUTPUT链(修改路由之前本地生成的数据包)

(4)mangle表

主要用于对指定数据包进行更改,在内核版本2.4.18 后的linux版本中该表包含的链为:INPUT链(处理进入的数据包),RORWARD链(处理转发的数据包),OUTPUT链(处理本地生成的数据包)POSTROUTING链(修改即将出去的数据包),PREROUTING链(修改即将到来的数据包)

3、规则表之间的优先顺序:

Raw——mangle——nat——filter



5条链即为5个hook function(钩子函数),可以理解为数据包传送到该计算机时的5个检查点。分别为:


iptables的原理主要是对数据包的控制


linux下网络层防火墙iptables原理

PREROUTING:路由前

INPUT:到达本机内部的报文必经之路

FORWARD:由本机转发的报文必经之路

OUTPUT:由本机发出的报文的必经之路

POSTROUTING:路由后


iptables表和链之间的对应关系。


filter: INPUT, FORWARD, OUTPUT

nat: PREROUTING(DNAT),POSTROUTING(SNAT),OUTPUT

mangle: PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING

raw: PREROUTING, OUTPUT


linux下网络层防火墙iptables原理


iptables 


组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。


1、iptables命令格式

iptables的命令格式较为复杂,一般的格式如下:

iptables [-t 表] -命令 匹配   操作

说明

(1) -t 表

表选项用于指定命令应用于哪个iptables内置表。

(2)命令

命令选项用于指定iptables的执行方式,包括插入规则,删除规则和添加规则,如下表所示

命令                                        说明

-P --policy <链名> 定义默认策略
-L --list <链名> 查看iptables规则列表
-A --append <链名> 在规则列表的最后增加1条规则
-I --insert <链名> 在指定的位置插入1条规则
-D --delete <链名> 从规则列表中删除1条规则
-R --replace <链名> 替换规则列表中的某条规则
-F --flush <链名> 删除表中所有规则
-Z --zero <链名> 将表中数据包计数器和流量计数器归零
-X --delete-chain <链名> 删除自定义链
-v --verbose <链名> 与-L他命令一起使用显示更多更详细的信息

(3) 匹配规则

匹配选项指定数据包与规则匹配所具有的特征,包括源地址,目的地址,传输协议和端口号,如下表所示

匹配                                                               说明

-i --in-interface 网络接口名> 指定数据包从哪个网络接口进入,
-o --out-interface 网络接口名> 指定数据包从哪个网络接口输出
-p ---proto 协议类型 指定数据包匹配的协议,如TCP、UDP和ICMP等
-s --source 源地址或子网> 指定数据包匹配的源地址
--sport 源端口号> 指定数据包匹配的源端口号
--dport 目的端口号> 指定数据包匹配的目的端口号
-m --match 匹配的模块 指定数据包规则所使用的过滤模块


具体的命令请参考先关文章,转载请注明出处  快盘下载


相关文章

  • K8S中iptables和ipvs区别

    K8S中iptables和ipvs区别,同样基于Netfilter,但是ipvs采用的hash表,iptables采用一条条的规则列表。在这种模式下,kube-proxy监听API Server中service和endpoint的变化情况,调用netlink接口创建相应的ipvs规则,并定期将ipvs规则与Kubernetes服 Services和Endpoints同步。对于每个service,它都生成相应的iptables规则,这些规则捕获到service的clusterIP和port的流量,并将这些流...
  • 技术栈系列基础篇6-iptables

    技术栈系列基础篇6-iptables,Linux系统中防火墙功能的两大角色:iptables和netfilter。iptables是Linux系统下应用层内置控制防火墙的工具,netfilter则是......

网友评论

快盘下载暂未开通留言功能。

关于我们| 广告联络| 联系我们| 网站帮助| 免责声明| 软件发布

Copyright 2019-2029 【快快下载吧】 版权所有 快快下载吧 | 豫ICP备10006759号公安备案:41010502004165

声明: 快快下载吧上的所有软件和资料来源于互联网,仅供学习和研究使用,请测试后自行销毁,如有侵犯你版权的,请来信指出,本站将立即改正。