Kubernetes--iptables与netfilte

一、防火墙
    防火墙用于实现linux下的访问控制的,分为软件和硬件两种防火墙,防火墙工作的地方一定是在网络边缘,我们需要定义的是防火墙到底如何工作,这就是防火墙的策略,规则,以达到它对出入网络IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关。
、iptables
    netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数linux软件一样,这个包过滤防火墙是免费的,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。
     规则(rules):网络管理员预定义的条件,规则一般的定义为“如果数据包头符合这样的条件,就这样处理这个数据包”。规则存储在内核空间信息过滤表中,这些规则分别指定源地址、目的地址、传输协议(TCP、UDP、ICMP)和服务类型(HTTP、FTP和SMTP)等。当数据包和规则匹配时,iptables就根据规则所定义的方法处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。配置防火墙主要就是删除、添加和修改这些规则。

 、netfilter与 iptables关系

 iptables是linux防火墙管理工具位于sbin/iptables,真正实现防火墙功能的是netfilter,它是linux内核实现包过滤内部结构。
四、iptables的规则表和链
    表:提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于过滤、网络地址转换、包重构(修改)和数据跟踪处理。
功能
filter表过滤
nat表网络地址转换
mangle表包重构或者修改
raw表数据跟踪处理
  链:是数据包传播的路径,每一条链其实就是众多规则的一个检查清单,每一条链可以有一条或者多条规则。当一个数据包到达一条链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件。如果满足,系统就会根据该条规则所定义的方法处理该包;否则iptables将会继续检查下一条规则,如果该数据包不满足链中任何一条规则,iptables就会根据该链预先定义的默认策略来处理该数据包。
    iptable采用“表”和“链”的分层结构。在REHL4中是三张表五个链。现在REHL5组成了四张表五个链,不过多出来的表用的不多。

 

 规则表:

链个数作用
filter表INPUT链
FORWARD链
OUTPUT链
过滤数据包、
内核模块:iptables_filter
nat表PREROUTING链
POSTROUTING链
OUTPUT
用于网络地址转换、
内核模块:iptables_nat
mangle表PREROUTING链
POSTROUTING链
INPUT链
OUTPUT链
FOEWARD链
 
修改数据包服务类型、TTL、并且可以配置路由实现Qos内核模块
内核模块:iptables_mangle
raw表OUTPUT链
PREROUTING链
决定数据包是否被状态跟踪机制处理
内核模块:iptables_raw

 规则链:

功能
INPUT进来的数据包应用此规则链中的策略
OUTPUT外出的数据包应用此规则链中的策略
FORWARD转发数据包时应用此规则链中的策略
PREROUTING对数据包做路由选择前应用此链中规则(所有的数据包进来的时候都先由这个链处理)
POSTROUTING对数据包做路由选择后应用此链中的规则(所有的数据包出来的时候都先由这链处理)
、iptables传输
数据包过程
  1. 当一个数据包进入网卡时,首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去;
  2. 如果数据包就是进入本机的,它就会沿着图下移动,到达INPUT链。数据包到达INPUT链后,任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包会经过OUTPUT链,转后到达POSTROUTING链输出;
  3. 如果数据包是要转发出去的,且内核允许转发,数据包就会如图所示向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

 

、规则表之间的优先顺序
  raw -- mangle--nat--filter
   规则链之间的优先顺序(分三种情况):
  •    入站数据流向
     从外界到达防火墙的数据包,先被PREROUTING规则处理(是否修改数据包地址等),之后会进行路由选择(判断该数据包应该发往何处),如果数据包目标主机是防火墙本机(比如说internet用户访问防火墙主机中的web服务器的数据包),那么内核将其传给INPUT链进行处理(决定是否允许通过等),通过以后再交给系统上层应用程序(比如Apache服务器)进行响应。
  •    转发数据流向
  来自外界的数据包到达防火墙后,首先被PREROUTING规则链处理,之后会进行路由选择,如果数据包的目标地址是其它外部地址(比如局域网用户通过网关访问QQ站点的数据包),则内核将其传递给FORWARD链进行处理(是否转发或者拦截),然后再交给POSTROUTING链(是否修给数据包地址等)进行处理
  •    出站数据流向
   防火墙向外部地址发送数据包(比如在防火墙中测试公网DNS服务器时),首先被OUTPUT链进行处理,之后进行路由选择,然后给POSTROUTING规则链(是否修改数据包的地址等)进行处理

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值