iptables/ip6tables 手册简译

译文

名称

   iptables/ip6tables — 实现IPv4/IPv6包过滤以及网络地址转换(NAT)的管理员工具

摘要

   iptables [-t table] {-A|-C|-D} chain rule-specification

   ip6tables [-t table] {-A|-C|-D} chain rule-specification

   iptables [-t table] -I chain [rulenum] rule-specification

   iptables [-t table] -R chain rulenum rule-specification

   iptables [-t table] -D chain rulenum

   iptables [-t table] -S [chain [rulenum]]

   iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]

   iptables [-t table] -N chain

   iptables [-t table] -X [chain]

   iptables [-t table] -P chain target

   iptables [-t table] -E old-chain-name new-chain-name

   rule-specification = [matches...] [target]

   match = -m matchname [per-match-options]

   target = -j targetname [per-target-options]

描述

   Iptables和ip6tables是用来通过Linux kernel设置、维护、以及检测IPv4和IPv6数据包过滤规则表的工具。有多种规则表可以被定义,每一张表都包含了一系列内建的链或者用户自定义的链,每一个链都是由一列规则组成,并且匹配一组数据包,每一个规则明确指出了对应匹配的包进行什么操作,这种方式叫做目标选择,是同一张表中用户自定义链上的跳跃转移

目标

   一条防火墙规则指明了对于一个数据包或者目标所应用的规则,如果数据包不匹配,下一条规则将会继续进行匹配,如果数据包匹配了,那么下一条规则将会被选中目标的值所指明,这可能是一个用户自定义的链名称,一个在iptables-extensions(8)中被描述过的目标,或者是特定值ACCEPT、DROP、RETURN中的一个。ACCPET意味着允许数据包通过,DROP意味着将数据包丢弃,RETURN意味着停止这条链的贯穿,然后在当前链的下一条链中重新开始。如果内建链结束了或者说内建链内的一条带有目标RETURN的规则匹配了,这条链所指明的目标的策略决定了这个包的命运。


目前有五个各不相关的表(当前或者任意时间使用的表是由内核配置选项和当前运行模块决定的).

   -t, --table table
          此选项指出了匹配某个表的数据包将被执行什么样的操作,如果内核被配置为自动模块加载且不存在已加载模块,那么内核将会尝试为这张表加载适当的模块

          各表如下:

          filter:
              默认的表(如果没有指明-t选项),此表包含了内建的链INPUT (对于到达本地套阶层的数据包), FORWARD (对于经过此路由的包), 和OUTPUT  (本地产生的数据包)

          nat:
              当一个创建了新的连接的包被遇到的时候,nat表将会被查找。nat表里包含三个内建链PREROUTING (只要包到达就对其进行改变), OUTPUT (在路由之前改变本地数据包), 和POSTROUTING (改变将要发出去的数据包).在kernel 3.7. IPv6 NAT已经被支持了。

          mangle:
              这张表是专门进行数据包更改的.直到kernel 2.4.17 mangle表包含两条内建链PREROUTING
              (在路由之前改变进来的数据包)和OUTPUT (在路由之前改变本地产生的数据包).自kernel 2.4.18起mangle也开始支持了其他的三张表INPUT (对于自己进到盒子里的数据包),  FORWARD (改变将要经过box进行路由的数据包), and POSTROUTING (改变将要出去的数据包).

          raw:
              这张表主要是为了配置免连接的追踪很无踪迹目标的结合。他用高优先级来注册网络筛选系统钩子,北称作before ip_conntrack或者其他ip表.raw表提供以下内建链PREROUTING (对于通过任何其他网络接口到达的数据包) OUTPUT (对于本地进程产生的数据包)

          security:
              这张表是用来进行强制访问控制(Mandatory Access Control (MAC))的网络规则, 比如被SECMARK禁用和CONNSECMARK的目标.强制访问控制被linux的安全模块继承了,例如SELinux.安全表被称作后过滤表,它允许过滤表中任何自由访问控制规则(Discretionary Access Control )DAC在MAC规则之前生效. security表提供了以下的内建链INPUT  (对于自动进入盒子的数据包), OUTPUT (在路由之前改变本地生成的数据包),和FORWARD(改变通过盒子进行路由的数据包).

选项参数

   由iptables和ip6tables表明的选项可以被分成几组。

命令
以下选项指明了将要被执行的操作. 以下选项只能单独在命令行中被指明使用,除非其他被指出的情况。

   -A, --append chain rule-specification
          在选定的链后添加一个或者多个规则

   -C, --check chain rule-specification
          检测一条规则是否匹配此链中指定的规则,或者说检测匹配规则是否存在C

   -D, --delete chain rule-specification
   -D, --delete chain rulenum
          删除一个或者多个从链中指定的规则,可以使用规则号码或者匹配的规则信息

   -I, --insert chain [rulenum] rule-specification
          向选定的链中以给定序号向对应位置插入一条或者多条规则。

   -R, --replace chain rulenum rule-specification
          替换选定链中的一条规则

   -L, --list [chain]
         列出链中的所有规则,如果没有指定链,则所有的链中的规则都将被显示
           用法:iptables -t nat -n -L
           用法:iptables -L -v

   -S, --list-rules [chain]
          显示所与选中链中的规则,如果未选中具体的链,则所有链的规则将以iptables-save形式打印出来

   -F, --flush [chain]
          刷新选中的链或者所有的链(如果未指定具体的链)。此操作等于删除了所有的规则

   -Z, --zero [chain [rulenum]]
          将所有链中的数据包归零,或者清零给定的链,或者指定链中的具体规则

   -N, --new-chain chain
          用给定的名称创建一条用户自定的链

   -X, --delete-chain [chain]
          删除用户自定的链. 要删除的链必须不存在其他参考.

   -P, --policy chain target
          对于给定的目标设置链的策略

   -E, --rename-chain old-chain new-chain
          用给定的链名称重命名一条旧的链

   -h     帮助.  给出(当前最简)语法描述.

参数陈列
以下参数明组成了一条规则的设置(例如添加、删除、插入、替换、附加等命令).

   -4, --ipv4
          此选项对iptables和iptables-restore无效.

   -6, --ipv6
          如果一条规则使用了-6参数插入iptables-restore此操作将会被默默忽略,其他的用法会报错

   [!] -p, --protocol protocol
          检测规则或者数据包的传输协议.

   [!] -s, --source address[/mask][,...]
          指明源,地址可以是网路名称,主机名,网络地址 (with /mask), 或者普通ip

   [!] -d, --destination address[/mask][,...]
          指明目的

   -m, --match match
          指明一条匹配的规则进行使用

   -j, --jump target
          指明规则的目标(下一跳)

   -g, --goto chain
          指明进程应该在用户指定的链中继续执行


   [!] -i, --in-interface name
          数据包要通过或者接收的接口名称(只有进入INPUT, FORWARD and PREROUTING
          链的数据包需要指明)

   [!] -o, --out-interface name
          指明数据包将要被送往的接口名称


   -c, --set-counters packets bytes
          此参数可以使管理员初始化数据包和字节计数(在 INSERT,  APPEND,  REPLACE操作中).

更多选项参数
以下为附加的参数选项以及用法讲解

   -v, --verbose
          显示操作的详细输出信息  

   -w, --wait [秒]
          等待xtables锁,阻止一个程序的多实例同时运行,并且一段时间试图去获得执行锁。默认的,如果不能获取执行锁,程序将会退出。此参数将会使进程等待,一直到获得执行锁

   -n, --numeric
          数字化输出,ip地址和端口号将会以数字格式显示出来。默认的,此程序会尝试列出主机名称或者网络名称或者服务名称

   -x, --exact
          数字详述.显示具体的数据包值以及字节数,
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值