iptables 的三种网络经过

iptables 的三种网络经过

车车

表示用户

域名和DNS

DNS( Domain Name System)是“域名系统”的英文缩写,一种程序,它保存了一张域名和与之相对应的IP地址的表,主要是把我们使用的域名转换为主机的IP地址,没有DNS我们将无法在网上使用域名。
# 比如用户输入www.baidu.com dns解析成ip地址

负载均衡

1、负载均衡可以消除服务器之间的负载不平衡,可以优化访问请求在服务器组之间的分配,提高系统的反应速度和总体性能。
2、负载均衡能够监控服务器的运行状态,提高整个服务器组的可靠性。提高系统的扩展能力,简化管理。

负载平衡也称负载共享,是指对系统中的负载情况进行动态调整,以尽量消除或减少系统中各节点负载不均衡的现象。

web服务器

Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以处理浏览器等Web客户端的请求并返回相应响应,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache、 Nginx 、IIS。

静态文件

顾名思义,静态文件就是那些不会改变的文件。
通常是指不是由服务器生成的文件,例如脚本,CSS文件,图像等,但是必须在请求时发送给浏览器。

防火墙

什么是防火墙?
防止别人恶意访问

防火墙种类
硬件防火墙
F5
软件防火墙
iptables(# )
firewalld
安全组

iptables的基本介绍

iptables其实不是真正的防火墙,可以理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定指定到对应的'安全框架中',这'安全框架'才是真正的防火墙,这个框架名字叫"netfiter"

netfilter才是防火墙真正的安全框架,netfilter位于内核空间

iptables是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架

内核空间

内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

iptables 的三种网络经过

用户 ---> 调用iptables ---> ip_tables内核模块 ---> netfilter(系统安全框架)
---> 过滤请求

什么是包过滤防火墙

什么是包
在数据传输过程,数据并不是一次性传输完成的,而是将数据分成若干个数据包,一点一点传输

什么是包过滤防火墙
过滤数据包的防火墙

包过滤防火墙如何实现

通过系统安全框架 过滤数据包

四表五链

四表

有哪四个表?分别的作用是什么?
# 具备某种功能的集合叫做表

filter : 负责过滤功能 ---> INPUT,OUTPUT,FORWARD
nat : 网络地址转换 ---> PREROUTING,INPUT,OUTPUT,POSTROUTING
manglse : 负责修改数据包内容 ---> PREROUTING,INPUT,OUTPUT,POSTROUTING,FORWARD
raw : 负责数据包跟踪 ---> PREROUTING,OUTPUT

五链

五条链运行在哪些地方?
PREROUTING,INPUT,OUTPUT,FORWARD,POSTROUTING
1) PREROUTING(路由前):主机外报文进入位置,允许的表(manfle,nat)
# (目标地址转换,将本机地址转换为真正的目标机器IP地址,响应报文)

2) INPUT:报文进入本机用户空间位置,允许的表
# (filter,mangle)

3) OUTPUT:报文从本机用户空间出去的位置,允许的表
# (filter,mangle,nat)

4) FOWARD(转发):报文经过路由并且发觉不是本机决定转发但还不知道从那个网卡出去,允许的表
# (filter,mangle)

5) POSTROUTING(路由后):报文经过路由被转发出去,允许的表(mangle,nat)
# (源地址转换,把原始地址转换为转发主机出口网卡地址)

iptables 的三种网络经过

三种网络情况

# 举个例子
比如我们在(A网络)虚拟机上ping.baidu.com
在本机上流程,用户层 ---> 内核层 ---> 驱动层
那百度如何知道我们在ping它?
baidu(B网络)
驱动层 ---> 内核层 ---> 用户层

1)首先作用于B网络

1.1)作用于B网络泛指B接收
A ---> PREROUTING ---> INPUT ---> B
1.2)作用于A网络泛指A输出
A ---> OUTPUT ---> POSTROUTING ---> B

路由选择 ---> 往外发送请求

Iptables 流程图

经过本机:
A ---> OUTPUT ---> POSTRUOTING ---> PREROUTING ---> FOWARD  ---> POSTROUTING ---> PREROUTING ---> INPUT ---> B

别人发送信息到我这台电脑 我接受需要经过PREROUTING ---> INPUT ---> 选择是否往外发送器请求,不发送则应用本机, 发送到B则走 --->OUTPUT ---> POSTROUTING ---> 到达B (同一个局域网)

四表五连

注意:raw表:用于处理异常,包括的规则链有:prerouting,output; 一般使用不到。
1、三张表介绍:

filter
负责过滤数据包,包括的规则链有:input,output和forward

nat
用于网络地址转换(IP、端口),包括的规则链有:prerouting,postrouting 和 output

mangle
主要应用在修改数据包、流量整形、给数据包打标识,默认的规则链有:
INPUT,OUTPUT、 forward,POSTROUTING,PREROUTING

优先级:mangle > nat > filter

2、五条链:

input
匹配目标IP是本机的数据包

output
出口数据包 , 一般不在此链上做配置

forward
匹配流经本机的数据包

prerouting
修改目的地址,用来做 DNAT 。如:把内网中的 80 端口映射到互联网端口

postrouting
修改源地址,用来做 SNAT。 如:局域网共享一个公网IP接入Internet。

作者:开源Linux
链接:https://juejin.cn/post/6844904155153170440
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
上一篇:Oracle磁盘空间满后删除归档日志导致数据库启动不了


下一篇:Android开发Gradle高级技巧、自定义Gradle-Task、打包完成自动签名