iptables介绍

来源:互联网 发布:太原淘宝电动三轮价 编辑:程序博客网 时间:2024/06/08 16:05

                                                                     iptables



iptables原作者生锈罗素开发者Netfilter核心团队初始发行1998年 稳定的释放
1.6.1 / 2017年1月27日; 2个月前
存储库混帐://git.netfilter.org/iptables,http://git.netfilter.org/iptables/,https://git.netfilter.org/iptables/写在C操作系统Linux类型包过滤执照GPL网站www .netfilter .org

iptables是一个用户空间应用程序,允许系统管理员配置由Linux内核防火墙(实现为不同的Netfilter模块)及其存储的链和规则提供不同的内核模块和程序目前用于不同的协议; iptables适用于IPv4,ip6tables到IPv6,arptables到ARP,ebtables适用于以太网帧。

iptables需要提升的权限才能运行,并且必须由用户root执行,否则无法运行。在大多数Linux系统上,iptables安装为/ usr / sbin / iptables并在其手册页中记录,可以在安装man iptables时打开它。它也可能在/ sbin / iptables中找到,但由于iptables更像是一个服务而不是“必需的二进制”,所以首选的位置仍然是/ usr / sbin

术语iptables也常用于包含内核级组件。x_tables是承载所有四个模块所使用的共享代码部分的内核模块的名称,它们还提供用于扩展的API; 随后,Xtables或多或少被用来指代整个防火墙(v​​4,v6,arp和eb)架构。

iptables的继承者是nftables,它被合并到内核版本3.13 的Linux内核主干线,该版本于2014年1月19日发布。

内容

  [ 隐藏 ] 
  • 1概述
  • 2用户空间实用程序
    • 2.1前端
    • 2.2其他工具(按字母顺序)
  • 3另见
  • 4参考文献
  • 5文学
  • 6外部链接

概述

Xtables允许系统管理员定义包含用于处理数据包的规则链。每个表与不同类型的数据包处理相关联。通过顺序遍历链中的规则来处理数据包。链中的规则可以导致goto或跳转到另一个链,并且可以重复任何级别的嵌套。(跳转就像一个“呼叫”,即跳出的点被记住。)从计算机到达或离开的每个网络数据包遍历至少一个链。

分组流路径。数据包从一个给定的框开始,并且将根据具体情况沿一定的路径流动。

分组的来源决定了它最初遍历哪个链。有五个预定义的链(映射到五个可用的Netfilter钩子),尽管一个表可能没有所有链。预定义链具有策略,例如DROP,如果到达链的末尾,则应用于该分组。系统管理员可以根据需要创建任意数量的其他链。这些连锁店没有政策; 如果一个数据包到达链的末尾,它将返回到被称为链的链。链可能是空的。

  • PREROUTING:在进行路由决策之前,数据包将进入该链。
  • INPUT:数据包将被本地传送。它与具有打开的套接字的进程无关; 本地交货由“本地交货”路由表控制:ip route show table local
  • FORWARD:已经路由并且不用于本地传递的所有数据包将遍历此链。
  • OUTPUT:从机器本身发送的数据包将访问此链。
  • POSTROUTING:已经做出路由决定。数据包在将它们交给硬件之前进入该链。

链中的每个规则包含与哪个数据包匹配的规范。它还可能包含目标(用于扩展)或判定(其中一个内置决策)。当一个数据包穿过一个链时,每个规则依次被检查。如果规则与数据包不匹配,则数据包将被传递到下一个规则。如果规则与数据包匹配,则规则将采用目标/判定指示的操作,这可能导致数据包被允许沿着链路继续运行,也可能不会。匹配构成规则集的大部分,因为它们包含测试条件的条件。这些可能发生在OSI模型中的任何层,例如--mac-source-p tcp --dport参数,还有与协议无关的匹配,例如-m time

分组继续遍历链,直到任一个

  1. 规则中的数据包匹配,并通过调用的一个决定该分组的最终命运,例如ACCEPTDROP,或模块返回这样的最终命运; 要么
  2. 一个规则称之为RETURN判决,在这种情况下处理返回到呼叫链; 要么
  3. 链条的末端到达; 遍历还是在父链中继续(就好像RETURN被使用)一样,或者使用作为终极命运的基本链策略。

目标也会返回一个判断结果ACCEPTNAT模块将执行此操作)或DROP(例如REJECT模块),但也可能意味着CONTINUE(例如,LOG模块; CONTINUE是内部名称)继续下一个规则,就好像没有指定目标/判定一样。

用户空间的实用程序

前端

iptables有许多第三方软件应用程序可以方便设置规则。文本或图形方式的前端允许用户点击生成简单的规则集; 脚本通常是指借助一个简单的配置文件,使用一组预定义规则或从模板扩展的规则来调用iptables或(更快)的shell脚本(但是其他脚本语言也是可能的)iptables-restore。Linux发行版通常采用后一种使用模板的方案。这种基于模板的方法实际上是规则生成器的有限形式,并且这样的生成器也以独立的方式存在,例如作为PHP网页。

这样的前端,生成器和脚本通常受到其内置模板系统的限制,模板为用户定义的规则提供替代点。此外,生成的规则通常不针对用户希望的特定防火墙效果进行优化,因为这样做可能会增加开发人员的维护成本。建议合理理解iptables并希望优化其规则集的用户构建自己的规则集。

其他工具(按字母顺序)

  • abyle-firewall一个基于python / xml的iptables包装
  • FireHOL是一个外壳脚本,包含易于理解的纯文本配置文件的iptables。
  • IPFire是基于Linux的防火墙分发,具有用于配置防火墙规则的基于Web的用户界面,可以生成一组iptables规则,而无需使用命令行。
  • NuFW,Netfilter的验证防火墙扩展
  • Shorewall网关/防火墙配置工具使得可以使用更简单的规则,并承担将其翻译成iptables语言并维护它的负担。
   
     此博文转自:https://en.wikipedia.org/wiki/Iptables

0 0
原创粉丝点击