这里写目录标题
-
- 一、Linux包过滤防火墙概述
- 1.1、netfilter
- 1.2、iptables
- 1.3、包过滤的工作层次
- 二、iptables的表、链结构
- 2.1、五链
- 2.1.1、规则链
- 2.1.2、默认包括5种规则链(类似于ACL中的访问控制列表)
- 2.2、四表
- 2.2.1规则表
- 2.2.2默认包括4个规则表
- 2.3默认的表、链结构示意图
- 2.4数据包过滤的匹配流程
- 2.4.1、规则表之间的顺序
- 2.4.2、规则链之间的顺序
- 2.4.3、规则链内的匹配顺序
- 三、使用iptables工具
- 3.1、安装使用iptables防火墙
- 3.2、iptables的基本语法
- 3.2.1、语法构成
- 3.2.2、数据包的常见控制类型
- 3.2.3、添加新的规则
- 3.2.4、查看规则列表
- 3.2.5、删除、清空规则
- 3.2.6、设置默认策略
- 3.2.7、常用管理选项汇总
- 四、规则的匹配条件
- 4.1、匹配类型
- 4.1.1、通用匹配
- 4.1.2、隐含匹配
- 4.1.3、显式匹配
- 4.2常见的通用匹配条件
- 4.3常见的隐含匹配条件
- 4.4常用的显式匹配条件
一、Linux包过滤防火墙概述
1.1、netfilter
位于Linux内核中的包过滤功能体系
称为Linux防火墙的“内核态”
1.2、iptables
位于/sbin/iptables,用来管理防火墙规则的工具
称为Linux防火墙的用户态
–上述两种称呼都可以表示Linux防火墙
1.3、包过滤的工作层次
主要是网络层,针对IP数据包
体现在对包内的IP地址、端口等信息的处理上
二、iptables的表、链结构
2.1、五链
2.1.1、规则链
规则的作用:对数据包进行过滤或处理
链的作用:容纳各种防火墙规则
链的分类依据:处理数据包的不同时机
2.1.2、默认包括5种规则链(类似于ACL中的访问控制列表)
INPUT:处理入站数据包(进入防火墙时)
OUTPUT:处理出战数据包(出防火墙时)
FORWARD:处理转发数据包
NAT时使用:
PREROUTING链:在进行路由选择前处理数据包(先把目标IP转换为私有IP再查询路由表进行数据转发)
POSTROUTING链:在进行路由选择后处理数据包(从内向外会查路由表;将源地址转换为外网地址出去)
服务器上在input链上写规则;客户端在input链或forward链
2.2、四表
2.2.1规则表
表的作用:容纳各种规则链
表的划分依据:防火墙规则的作用相似
2.2.2默认包括4个规则表
(1)、filter表:filter表用来对数据包进行过滤,根据具体的规则要求决定如何处理一个数据包。filter表对应的内核模块为iptables_filter,表内包含三个链,即INPUT,FORWARD,OUTPUT。
(2)、nat表:nat(NetworkAddress Translation,网络地址转换)表主要用来修改数据包的IP地址,端口号等信息。nat表对应的内核模块为iptables_nat,包含三个链,即PREROUTING,POSTROUTING,OUTPUT。
(3)、mangle表:mangle表用来修改数据包的TOS(Type Of Service,服务类型)、TTL(Time To Live,生存周期),或者为数据包设置Mark标记,以实现流量整形、策略路由等高级应用。mangle表对应的内核模块为iptables_mangle,表内包含五个链,即PREROUTING,POSTROUTING,INOPUT,OUTPUT,FORWARD。
(4)、raw表:raw表是自1.2.9版本以后的iptables新增的表,主要用来决定是否对数据包进行状态跟踪。raw表对应的内核模块为iptables_raw,表内包含两个链,即OUTPUT,PREROUTING。
补充:
状态化防火墙:高安全到低安全可以访问是因为防火墙会做标记。
2.3默认的表、链结构示意图
表包含链
链包含规则
2.4数据包过滤的匹配流程
2.4.1、规则表之间的顺序
raw–mangle–nat–filter
2.4.2、规则链之间的顺序
PREROUTING–INPUT–FORWARD–OUTPUT–POSTROUTING
入站:PREROUTING–INPUT
出战:OUTPUT–POSTROUTING
转发:PREROUTING–FORWARD–POSTROUTING