iptables 基础总结

前提
由于常见都是把iptables防火墙关闭的,所以不是很多人对iptables有多少的了解,但是iptables对云计算虚拟化场景下作用还是很大的,所以有必要学习下,对于理解虚拟化网络通讯原理很有必要。(openstack、docker)

学习参考:点击访问

iptables 实现的功能是在内核中
在这里插入图片描述
防火墙全景图,图片为学习参考网站
在这里插入图片描述
红色部分

5节点,实现防火墙规则载体,数据包传输必须经过他们才能正常传输

  • INPUT和OUTPUT控制用户空间和内核空间的进出节点
    • INPUT为外部访问服务器,比如我SSH访问服务器,服务器需要允许我通过
    • OUTPUT跟INPUT相反,是服务器访问外部
  • PREROUTING、FORWARD、POSTROUTING控制数据包的整个传输周期
    • 数据包从物理网卡进口–转发–出口

表现形式

  • 到本机某进程的报文:PREROUTING --> INPUT
  • 由本机转发的报文:PREROUTING --> FORWARD --> POSTROUTING
  • 由本机的某进程发出报文:OUTPUT --> POSTROUTING

黄色部分

4种表,表的作用就是为了制定规则,让数据包按照不同规则传输

  • filter表:负责过滤功能,最常用的表
  • nat表:网络地址转换功能,docker常用的表,作用就是使容器能联网
  • mangle表:拆解报文,做出修改,并重新封装 的功能,也就是策略路由和QOS功能,一般很少使用,由硬件实现会更好
  • raw表:关闭nat表上启用的链接追踪机制,为了提高性能(也就是NAT功能无法使用)

链接追踪机制

表链关系

链就是节点规则的集合,规则为顺序匹配,序号1开始匹配

表链就是节点的表集合,多个表都配置了规则,那么就需要分出高低优先级进行顺序匹配表规则

  • raw --> mangle --> nat --> filter(高到低优先级匹配)

规则的组成

匹配条件

  • 由网络五元组:源IP地址、目的IP地址、协议号、源端口、目的端口
  • 五元组可以随意组合符合需求的规则

处理动作

常用:

  • ACCEPT:允许数据包通过
  • DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应
  • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息
  • SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题
  • DNAT:目标地址转换

不常用:

  • MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上
  • REDIRECT:在本机做端口映射
  • MIRROR :镜像数据包,也就是将来源 IP与目的地IP对调后,将数据包返回,进行完此处理动作后,将会中断过滤程序
  • QUEUE :中断过滤程序,将封包放入队列,交给其它程序处理
  • RETURN :结束在目前规则链中的过滤程序,返回主规则链继续过滤,如果把自订规则炼看成是一个子程序,那么这个动作,就相当于提早结束子程序并返回到主程序中
  • MARK:将封包标上某个代号,以便提供作为后续过滤的条件判断依据,进行完此处理动作后,将会继续比对其它规则

target也是可以自定义链

在这里插入图片描述

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 1024 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读