zoukankan      html  css  js  c++  java
  • iptables综述

    1 概述

    如下图所示,iptables共有Filter,Nat,Mangle和RAW共四个table,每个table还有若干个chain,每个chain中还包含若干个rule

     

    1.1 Filter table概述

    如上所示,对于Filter table,封包的处理将分为以下三种情况:

    • 当封包的目的地是本地主机时:当封包进入主机时首先会由Packet IN标记的位置进入,接着封包由ROUTING TABLE进行处理,在本例中,封包将送往本机的Process,因此封包将由INPUT Chain进行处理,若INPUT Chain内的规则不允许封包进入,则将被丢弃,否则封包被送往Local Process
    • 当本地的Process产生封包往外发送时:这时Local Process将产生封包对外发送,首先进入ROUTING TABLE进行处理,接着封包被送往OUTPUT Chain,若OUTPUT Chain内的规则不允许封包离开本机,则封包被丢弃,否则封包从Packet OUT标记的位置离开本机
    • 当封包穿越本机时:封包首先由Packet IN的位置进入,接着封包进入ROUTING TABLE进行处理,在本例中,封包将由另一个接口送出,因此封包被送往FORWARD Chain,若FORWARD Chain内的规则不允许封包穿越,那么封包将被丢弃,否则,封包由Packet OUT处离开本机

    1.2 规则匹配方式

    下面我们将以Filter Table中的INPUT Chain作为例子进行说明。如上所示,第一个被加进来的规则会存放在INPUT Chain的rule1中,以此类推。当一个封包进入,进行具体的匹配工作时,将从rule1开始依次往下匹配。当有一条rule满足匹配规则时,那么它可以决定封包的命运,无论封包是进入Local Process还是丢弃,INPUT Chain之后所有的rule都不再进行匹配。另外我们可以注意到,在每个Chain的结尾都有一个Default Policy,它的作用是在所有rule都未匹配成功的时候进行最后的裁决,它的状态不是ACCEPT,就是DROP。

    1.3 iptables命令格式

    // 将Filter Table中的INPUT Chain列出
    iptables -t filter -L INPUT
    
    // 将Filter Table中的所有内容删除
    iptables -t filter -F
    
    // 将规则加入到Filter Table中的INPUT Chain
    iptables -t filter -A INPUT -p icmp -j ACCEPT
    
    // 把FORWARD Chain的Default Policy设置为DROP
    // 需要注意的是,iptables的-F参数不会影响到Default Policy的状态,若要改变Default Policy的状态
    // 一定要用-P来指定
    iptables -t filter -P FORWARD DROP
    
    // 在INPUT Chain中插入新的规则
    iptables -t filter -I INPUT 2 -p tcp -j ACCEPT
    
    // 取代INPUT Chain内已存在的规则
    iptables -t filter -R INPUT 2 -p tcp -j ACCEPT
    
    // 删除INPUT Chain内已存在的规则
    iptables -t filter -D INPUT 2
    

      

  • 相关阅读:
    VS2010 快捷键 (空格显示 绿点, Tab 显示箭头)
    程序30和程序31
    三级联动城市地区选择
    浏览器右键、刷新、默认事件、打开新窗口、关闭续
    jquery插件图片浏览改进版
    富文本编辑器笑脸表情(一)
    前端智勇大冲关第四关12小球称重问题
    前端智勇大冲关
    jquery插件图片浏览
    浏览器右键、刷新、默认事件、打开新窗口、关闭
  • 原文地址:https://www.cnblogs.com/YaoDD/p/7839936.html
Copyright © 2011-2022 走看看