zoukankan      html  css  js  c++  java
  • iptables

    定义

    防火墙,是一种隔离工具,工作于主机或网络边缘,对于进出主机或网络的报文根据事先定义好的检查规则作匹配检测,对于能够被规则所匹配到的报文做出相应处理的组件。
    

    Netfilter组件

    1. 内核空间,集成在linux内核中
    2. 扩展各种网络服务的结构化底层框架
    3. 内核中选取五个位置放了五个hook(勾子) function(INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING),而这五个hook function向用户开放,用户可以通过一个命令工具(iptables)向其写入规
    4. 由信息过滤表(table)组成,包含控制IP包处理的规则集(rules),规则被分组放在链(chain)上
    

    iptables

    命令行工具,工作在用户空间
    用来编写规则,写好的规则被送往netfilter,告诉内核如何去处理信息包
    

    iptables由四个表和五个链以及一些规则组成

    四个表table:filter、nat、mangle、raw(优先级由高到低的顺序为:raw-->mangle-->nat-->filter)

    Filter表:过滤规则表,根据预定义的规则过滤符合条件的数据包
    NAT表:network address translation 地址转换规则表
    Mangle:修改数据标记位规则表
    Raw:关闭NAT表上启用的连接跟踪机制,加快封包穿越防火墙速度
    注意:一般不要启动连接追踪功能,在头端负载很大的情况下,如果要启用,一定要把内存设置的足够大。
    

    五个内置链chain

    INPUT
    OUTPUT
    FORWARD
    PREROUTING
    POSTROUTING
    

    Netfilter表和链对应关系

    三种报文流向
    流入:PERROUTING--> INPUT
    流出:OUTPUT-->POSTROUTING
    转发:PREROUTING-->FORWARD-->POSTROUTING
    
    各功能的分别实现(iptables -t raw -L)
    filter:INPUT, FORWARD, OUTPUT
    nat:PREROUTING(DANT), OUTPUT, POSTROUTING(SANT)
    mangle:PREROUTING(DANT), INPUT, FORWARD, OUTPUT, POSTROUTING(SANT)
    raw:PREROUTING, OUTPUT 
    
    路由发生的时刻
    报文进入本机后:
        判断目标主机
    报文发出之前:
        判断经由哪个接口送往下一跳
    
    iptables:四表五链
    添加规则时的考量点:
        1. 要实现哪种功能:判断添加在哪张表上
        2. 报文流经的路径:判断添加在哪个链上
    链:链上规则的次序,即为检查的次序,因此隐含一定的法则
        1. 同类规则(控制同一种应用访问),匹配范围小的放上面:
        2. 不同类规则(访问不同应用),匹配到报文频率较大的放上面:
        3. 设置默认策略(白名单:默认拒绝,开放明确识别的;黑名单:默认允许,只拒绝认为危险的。白名单安全级别高,可以允许也可以拒绝)
        4.  将那些可以由一条规则描述的多个规则合并为一个
    
    规则
    组成部分:报文的匹配条件,匹配到之后处理动作
        匹配条件:根据协议报文特征指定
                基本匹配条件 
                扩展匹配条件
        处理动作:
                内建处理动作
                自定义处理机制
        注意:报文不会经过自定义链,只能在内置链上通过规则进行引用后生效。
  • 相关阅读:
    【WCF】服务并发中的“可重入模式”
    【.net 深呼吸】项目中是否有必要删去多余的引用
    【.net 深呼吸】细说CodeDom(10):生成异常处理语句
    【.net 深呼吸】细说CodeDom(9):动态编译
    【.net 深呼吸】细说CodeDom(8):分支与循环
    shell脚本将gbk文件转化为utf-8
    PHP判断文件大小是MB、GB、TB...
    svn: E205007: None of the environment variables SVN_EDITOR
    phpstorm yii2框架的redis和mongodb提示
    linux下phpmailer发送邮件出现SMTP ERROR: Failed to connect to server: (0)错误
  • 原文地址:https://www.cnblogs.com/liangjindong/p/9241174.html
Copyright © 2011-2022 走看看