资讯

展开

技术栈系列基础篇6-iptables

作者:快盘下载 人气:

一、基础概念

Linux系统中防火墙功能的两大角色:iptables和netfilter。iptables是Linux系统下应用层内置控制防火墙的工具,netfilter则是防火墙功能的具体实现,是内核空间的功能模块。所谓的iptables“控制”防火墙,就是用户利用iptables将防火墙规则设置给内核的netfilter功能模块,这中间涉及“四表五链”

技术栈系列基础篇6-iptables

image.png

二、架构

image.png

三、四表五链

3.1 内核工作模型

NAT 网关

image.png
入站: PREROUTING→INPUT出站: OUTPUT→POSTROUTING转发: PREROUTING>FORWARD→POSTROUTING五链顺序:PREROUTING— > INPUT— – > FORWARD- - - - >OUTPUT---- >POSTROUT ING

“四表五链”其实是对用户设置规则的管理,是看待用户设置的规则的两个维度。举个例子,看图中深蓝色箭头的数据流向,数据包要到达用户层,需要经过PREROUTING链(路由前链),INPUT链(输入链),在这个链路中存放着用户设置的规则,这些规则根据功能不同又会被分组存放在RAW表、Mangle表和NAT表中。当数据包抵达PREROUTING链时,netfilter程序会依次从RAW表、Mangle表和NAT表中取出针对PREROUTING链的用户规则并执行相应操作;同理,INPUT链上的规则也会被分组存放在Mangle表和Filter表中,netfilter程序会依次从这两个表中取出针对INPUT链设置的用户规则并执行相应操作。(特别强调,转发的数据包不经过 OUTPUT 链)

这里需要强调的一点是FORWARD链,它是转发链,也就是说只有在网卡个数>=2的系统中才具有的功能:开启系统转发功能后,当网络层发现数据包并非发给本机时会从另一网卡转发出去。中间经过FORWARD链,FORWARD链上的规则由Filter表、Mangle表读取操作。所以对于单网卡的系统中,上图应更改为:*

HTTP

image.png

数据包流向

HTTP

image.png

3.2 四表

功能

Filter表

过滤数据包

NAT表

用于网络地址转换(IP、端口)

Mangle表

修改数据包的服务类型、TTL、并且可以配置路由实现QOS

Raw表

决定数据包是否被状态跟踪机制处理

3.3 五链

功能

INPUT链

进来的数据包应用此规则链中的规则

OUTPUT链

外出的数据包应用此规则链中的规则

FORWARD链

转发数据包时应用此规则链中的规则

PREROUTING链

对数据包作路由选择前应用此链中的规则

POSTROUTING链

对数据包作路由选择后应用此链中的规则

参考文档

https://blog.csdn.net/QQ_29344757/article/details/81128150

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 本站 删除。

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!