iptables的man手册以及使用

(一):iptables的命令手册

名称

     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被用来设置,维持和监视内核中IPV4和IPV6的包过滤规则表。各种不同的表被定义。每一个表都包含了一些内置的链,并且也可能包含一些用户定义的链。每一个链都包含一系列与包匹配的规则。每一条规则都指定了对它所匹配的包应该做什么。这个被称为’target’, 在一个相同的表中也可能是到用户定义的链的跳转。

targets(目标)

一个防火墙规则指定了一个包和一个target的标准。如果包不匹配,链中的下一条规则就会被检查;如果匹配成功,下一条规则就会被target的值所指定,他可以是用户定义链的名称,在iptables-extensions描述的一个target,或者是ACCEPT,DROP或者是RETURN之一。

ACCEPT意思是让包通过。DROP意味着拒接,但是悄悄丢弃。RETURN意思是停止这条链的穿越,返回到调用链的下一条规则。如果到达了一个内建链的尾部或者是位于内建链一条带有RETURN target的规则被匹配了,被链策略指定的target决定了包的命运。

TABLES

当前有五个独立的table(哪一个table在什么时候出现依赖于内核配置选项和存在的模块)。

-t, –table table
该选项指定了包与命令应该操作的表的匹配。如果内核配置了自动模块加载,如果他不在的话,讲会尝试去加载那个table可能的模块。

下面是这些table:

filter:
这个是默认的table(如果没有输入-t选项的话).他包含内置的链INPUT(数据包流入口),FORWARD(转发关卡)和OUTPUT(数据包输出口).

nat:
当创建一个新链接的包被遇到的时候,这个table会被询问。他由三个内置链组成:PREROUTING(路由前),OUTPUT(数据包输出口)和POSTROUTING(路由后)。自从内核3.7开始之后IPv6 NAT开始被支持。                   

mangle:
这个table被用于专业的数据包变更。直到内核2.4.17,他有两个内置链:PREROUTING和OUTPUT。自从内核2.4.18,另外三个也被支持了。

raw:
这个table主要用于配置免除与notrack target的组合跟踪的连接。它以高优先级注册在netfilter的钩子程序上,所以它是在ip_conntrack或者是其他任何IP table之前被调用。他提供了下列内置的链:PREROUTING和OUTPUT。

security:
这个table被用于强制访问控制网络规则,例如那些被SECMARK和CONNSECMARK target使能的。强制访问控制是有Linux安全模块像SELinux实现的。这个安全table在过滤table之后被调用,允许在过滤table中的DAC(自主访问控制)规则在MAC规则之前起作用。这个table提供了下面的内建链:INPUT,OUTPUT和FORWARD。

注意:Netfilter的五个链:

描述
PREROUTING 路由前
INPUT 数据包流入口
FORWARD 转发关卡
OUTPUT 数据包输出口
POSTROUTING 路由后



对于其他的命令参数,可以参照man iptables来查看,这里不再坠余。



(二):iptables的工作原理

iptables是在内核空间中进行规则的定义,然后在内核空间中由netfilter来读取并执行规则。netfilter才是真正进行网络过滤的防火墙。

看了这个大牛的文章,我觉着我写的任何文章都不行了,所以索性就给大家附上吧:

很牛的讲解netfilter/iptables的博客

你可能感兴趣的:(iptables,Netfilter)