目录
一、iptables概述
1、netfileter 和 iptablesIP 介绍
IP信息包括过滤系统,它实际上由两个组件 netfilter 和 iptables 组成。主要工作在网络层,针对IP数据包,体现在包内的IP地址、端口等信息的处理。
2、netfilter和iptables关系
netfilter: 属于“内核态”,又称内核空间(kernel space)的防火墙功能体系。
iptables: 属于“用户态”,又称用户空间(user space)的防火墙管理体系。是一种用来管理Linux防火墙的命令程序,它使插入、修改和删除数据包过滤表中的规则变得容易,通常位于/sbin/iptables 目录下。
netfilter和iptables后期简称为iptables: iptables是基于内核的防火墙,其中内置了raw、mangle、nat和filter,四个规则表,表中所有规则配置后,立即生效,不需要重启服务。
二、iptables 的表、链结构
1、iptables的四表五链结构介绍
iptables的作用: 是为包过滤的实现提供规则,通过各种不同的规定,告诉netfilter对来自某些源,前往某些目的或具有某些协议特征的数据包该如何处理。
为了更加方便的组织和管理防火墙规则,iptables采用了 表和链的分层结构 。所以它会对请求的数据包的包头数据进行分析,根据我们预先设定的规则进行匹配来决定是否可以进入主机。
其中。每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,在每个表容器内又包括的规则链,根据处理数据包的不同时机划分为五种链。
总结:表里有链,链里有规则
1、四表 ☆☆☆
规则表的作用: 容纳各种规则链; 表的划分依据: 防火墙规则的作用相似
类型 | 功能 |
---|---|
raw 表 | 确定是否对该数据包进行状态跟踪 |
mangle 表 | 为数据包设置标记 |
nat 表 | 修改数据包中的源、目标IP地址或端口 |
filter 表 | 确定是否放行该数据包(过滤) |
三种报文流向
流入本机:PREROUTING-->INPUT-->用户空间进程(访问我的服务)
流出本机:用户空间进程-->OUTPUT-->POSROUTING(穿过我)
转发:PREROUTING-->FORWORD-->POSROUTING(分摊流量)
2、五链 ☆☆☆
规则链的作用: 容纳各种防火墙规则;
链的分类依据: 处理数据包的不同时机
规则的作用: 对数据包进行过滤或处理
类型 | 功能 |
INPUT | 处理入站数据包,匹配目标IP为本机的数据包 |
OUTPUT | 处理出站数据包,一般不在此链上做配置 |
FORWARD | 处理转发数据包。匹配流经过本机的数据包 |
PREROUTING | 在进行路由选择前处理数据包,用来修改目的地址,(DNAT) |
POSTOUTING | 在进行路由选择后处理数据包,用来修改源地址,(SNAT) |
2、数据包过滤的匹配顺序
规则表应用顺序
raw-->mangle-->nat-->filter
规则链内的匹配顺序
自上向下按顺序依次进行检查,找到相匹配的规则即停止,按照匹配规则执行,如若未找到,执行防火墙的通用规则(防火