zoukankan      html  css  js  c++  java
  • iptables防火墙--------基本概念

    iptables按照规则进行处理,而iptables的规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(TCP、UDP、ICMP)和服务类型(如HTTP、FTP和SMTP)等。当数据包和规则匹配时,iptables就根据规则所定义的方法来处理这些数据包,如放行(accept)、拒绝(reject)和丢弃(drop)等。

     

     

    我们启用防火墙时,报文需要经过如下链,根据实际情况的不同,报文经过的链可能不同,如果报文需要转发,那么报文则不会经过input链发往用户空间,而是直接在内核空间经过forward链和postrouting链转发出去。如下图。

    根据上图,

    如果目的地址为本机,报文的方向为: PREROUTING --> INPUT-->OUTPUT-->POSTROUTING

    目的地址为其他主机,报文方向为: PREROUTING --> FORWARD --> POSTROUTING -->其他主机

    链的概念

    防火墙的作用在于对经过的报文匹配“规则”,然后执行对应的“动作”,所以,当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上的规则可能不止有一条规则,而是很多条规则,当我们把这些规则串到一个链条上的时候,就形成了“链”。

    表的概念

    每个“链”上都放置一串规则,但是对这些规则有些很相似,比如,A类规则都是对IP或者端口的过滤,B类规则是修改报文,那么这个时候,我们可以把这些实现相同功能的规则放在一起。

    我们把具有相同功能的规则的集合叫做“表”,所以说,不同功能的规则,我们可以放置在不同的表中进行管理,而iptables已经为我们定义了四种表,每种表对应了不同的功能,而我们定义的规则都在这4种功能的范围,所以,必须要了解每个表的作用。

    filter表:负责过滤功能,防火墙;内核模块,iptable_filter

    nat表:network address translation,网络地址转换功能;内核模块:iptable_nat

    mangle表:拆解报文,做出修改,并重新封装的功能;内核模块:iptable_mangle

    raw表:关闭nat表上启用的连接追踪机制;内核模块:iptable_raw

    表链关系

    PREROUTING的规则可以存在于: raw表,mangle表,nat表 INPUT的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有) FORWARD的规则存在于: mangle表,filter表 OUTPUT的规则存在于: raw表,mangle表,nat表,filter表 POSTROUTING的规则在于: mangle表,nat表

     

    但是,在实际使用过程中,往往是通过“表”作为操作入口,对规则进行定义,之所以上面介绍iptables,是因为从“关卡”的角度更容易从入门的角度理解,但是为了以便于在实际使用的时候,更加顺畅的理解它们,此处我们将各“表”与“链”的关系罗列出来。

    表(功能)链(钩子)
    raw PREROUTING, OUTPUT
    mangle PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
    nat PREROUTING, OUTPUT, POSTROUTING (CentOS7中还有INPUT,CentOS6没有)
    filter INPUT, FORWARD,OUTPUT

     

    数据经过防火墙流程

     

    iptables常用的处理动作

      ACCEPT:允许数据包通过

      DROP:直接丢弃数据包,不给任何回应信息

      REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息

      SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题

      MASQUERADE:是SNAT的一种特殊形式,适用于动态的,临时会变的ip上

      DNAT:目标地址转换

      REDIRECT:在本机做端口映射

      LOG:在/var/log/message文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作

  • 相关阅读:
    03-字典
    02-列表
    01-字符串操作
    Django中的跨域问题
    Codeforces Round #617 (Div. 3) A
    Codeforces Round #717 (Div. 2) A
    如何在Vuespa中使用less
    excle导出
    ajaxFileUpload上传文件
    图片插入word
  • 原文地址:https://www.cnblogs.com/xll970105/p/11289329.html
Copyright © 2011-2022 走看看