iptables
- 防火墙
- iptables工作流程
- iptables表与链
- filter表
- nat表
防火墙
防火墙 | ||
---|---|---|
开源 | iptables、firewalld | 管理控制网络流量、封端口、封IP、nat、(snat、dnat)映射 共享上网 |
硬件防火墙 | 思科、华三等、深信服、路由器内置防火墙 | 保护内部网络、检测和阻挡恶意流量、防止非法访问、入侵检测与防御等 |
waf防火墙 | web应用防火墙 | 预防SQL注入、CC攻击、有效防止网页篡改、信息泄露、木马植入等恶意网络入侵行为等 |
iptables工作流程
1.防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后,进行过滤的。
2.如果匹配上规则,既明确表示阻止还是通过,数据包就不再继续向下匹配新的规则。
3.如果规则中没有明确的表示阻止还是通过,也就是没有匹配到规则,继续向下匹配,直到匹配到默认规则,得到明确的组织还是通过。
4.防火墙的默认规则是所有规则执行完才执行的。
5.还要注意,只要是阻止的规则一定要放在最上面。
iptables表与链
iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链
表table:存放链的容器
链chain:存放规则的容器
规则policy:准许或拒绝规则
iptables是四表五链
四表(小写):filter、nat、raw、mangle
五链(大写):INPUT、OUTPUT、PREROUTING、FORWARD、POSTROUTING
主要用到的两个表
filter表
filter表是iptables(默认使用的表)
这个表定义了三个链
屏蔽或准许端口 IP
filter表 | 主要和主机自身相关,真正负责主机防火墙功能的(过滤流入流出主机的数据包) |
---|---|
INPUT | 负责过滤所有流入主机的数据包 (最常用的) |
FORWARD | 负责转发流经主机的数据包,起转发的作用 |
OUTPUT | 负责处理本机发出的数据包 |
nat表
和主机本身无关,实现局域网共享上网(内网服务器上外网)、端口映射、IP映射
这个表定义了三个链
nat | 负责网络地址转换,既来源IP与目的IP地址和端口的转换 |
---|---|
OUTPUT | 和主机发出去的数据包有关,改变主机发出数据包的目的地址。 |
PREROUTING | 数据包来,到达防火墙时,进行路由判断之前执行的规则,作用是改变数据包的目的地址、目的端口 |
POSTROUTING | 数据包走,离开防火墙时,进行路由判断之后执行的规则,作用是改变数据包的源地址、源端口,写好发件人的地址,让人回信时有地址可回,局域网共享上网会用到 |
大概流程
nat表
用户请求来的时候,第一个接触的是nat表的PREROUTING链,在PREROUTING链上写端口映射的规则,假设用户的请求并不需要访问服务器的IP端口等,只是做个端口映射,数据就直接走了,如果还想共享上网,则还会经过nat表的POSTROUTING链,在它上头配置共享上网的规则。
filter表
用户的请求经过filter表的INPUT链,经过规则的筛选之后,才能访问服务器的进程、网络端口等,访问完数据离开服务器后,还会经过filter表的OUTPUT链。当数据没经过服务器的时候,直接走filter表的FORWARD链。