zoukankan      html  css  js  c++  java
  • iptables之精髓(一)

    防火墙相关概念

    逻辑上讲。防火墙可以大体分为主机防火墙和网络防火墙。

    主机防火墙:针对于单个主机进行防护。
    
    网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护,服务于防火墙背后的本地局域网。

    网络防火墙和主机防火墙并不冲突,可以理解为,网络防火墙主外(集体), 主机防火墙主内(个人)。

    物理上讲,防火墙可以分为硬件防火墙和软件防火墙。

    硬件防火墙:在硬件级别实现部分防火墙功能,另一部分功能基于软件实现,性能高,成本高。
    
    软件防火墙:应用软件处理逻辑运行于通用硬件平台之上的防火墙,性能低,成本低。

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

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

    iptables为我们提供了如下""

    filter表:负责过滤功能,防火墙;内核模块:iptables_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表。

    表(功能)<-->   链(钩子):

    raw     表中的规则可以被哪些链使用:PREROUTINGOUTPUT
    
    mangle  表中的规则可以被哪些链使用:PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING
    
    nat     表中的规则可以被哪些链使用:PREROUTINGOUTPUTPOSTROUTING(centos7中还有INPUT,centos6中没有)
    
    filter  表中的规则可以被哪些链使用:INPUTFORWARDOUTPUT

    iptables流程关系图

    精简图:

    详细图:

     

     表链关系图:

    处理动作

    处理动作在iptables中被称为target(这样说并不准确,我们暂且这样称呼),动作也可以分为基本动作扩展动作

    此处列出一些常用的动作,之后的文章会对它们进行详细的示例与总结:

    ACCEPT:允许数据包通过。

    DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。

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

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

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

    DNAT:目标地址转换。

    REDIRECT:在本机做端口映射。

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

  • 相关阅读:
    Shell编程------函数应用
    Shell编程------循环语句
    Shell编程------判断语句
    Shell编程------变量、赋值和运算
    Action实现prepareable接口后定义前置方法
    动态代理模式
    hibernate持久化对象,
    view视图总结
    servlet和Struts2的线程安全性对比
    Action获取请求参数的3中方式
  • 原文地址:https://www.cnblogs.com/liugp/p/11673238.html
Copyright © 2011-2022 走看看