iptables语句是用来管理主机数据包的,链的作用是用来分别管理iptables规则语句的。 默认显示中间三个,并没有显示到数据流入和流出的两个链。
链的作用根据不同的规则组合起来实现特定场景的功能。
五链:
prerouting:数据包进行路由决策前应用的规则,一般用于改变数据包的目标地址,不让别人知道我找的是谁(对进入的数据包进行预处理)
input:数据包经由路由决策后,进入到本机处理时应用的规则,一般用于本机进程处理的数据包(数据包本机处理)
output:新建数据包经路由决策后,从本机输出时应用的规则,一般用于本机处理后的数据包(数据包本机发出)
forward:数据包经由路由决策后,本机不做处理,仅仅是转发数据包时应用的规则(数据包本机转发)
postrouting:数据包从本机出去前,对数据包应用的规则,一般用于更改数据包的源地址信息,不让给别人知道我是谁(对输出的数据包进行预处理)
常见的场景:
本机处理数据包:prerouting->input
本机转发数据包:prerouting->forward->postrouting
本机相应数据包:output->postrouting
1)192.168.8.14这台
然后再15这台主机上ping 192.168.8.15 发现ping不同 ok
2)14这台主机上接着增加规则。
规则相同,一个拒绝,一个接受。按照优先级的原则,拒绝生效。
3) byets数据包。在15机器上ping 192.168.8.14,就会发现bytes数据包增多。链中的规则多个,按照从上到下的顺序匹配
4)-N 增加自定义链
-X 删除自定义链
-E old-chain new-chain 更改自定义链。标准的链名无法更改。
五表
security表:主要针对的是数据链路层的管理规则组合,只不过它是基于target目标来操作的。
filter表:是netfilter中最重要的表,也是默认的表,主要负责数据包的过滤功能
nat表:主要实现网络地址转换的表。可以自由转换数据报文中的ip和port
mangle表:主要实现数据包的拆分-修改-封装动作
raw表:通过关闭nat表的追踪功能,从而实现加速防火墙过滤的表
(连接追踪:就是记录用户的操作,下次再来加速访问,体验好。但是大用量的情况下,花费大量资源来记录历史记录,导致其他用户在等待,导致防火墙的性能非常差)
#iptables -t 表名 -L
#iptables -t nat/managle/raw/security -nvL
==>在不同表中,已经定义好了各自的链组合,mangle表包含的链最多,raw表包含的链最少。
表链关系
表中存放的不同的链,联众存在不同数据包规则
netfilter为了更高质量的进行表之间的规则运行,已经定制好了这些表的优先级,从高到低:security > raw > mangle > nat >filter
链中的优先级 是从上到下
规则编写:
必须遵循的原则:限定方向、再定先后