|
|
51CTO旗下网站
|
|
移动端

1.8.8 iptables-save与iptables-restore

《Linux防火墙》全面剖析了Linux防火墙 iptables,并通过大量真实的例子和源代码,讲述了如何应用作者自己开发的3个开源软件psad、fwsnort和fwknop,最大限度地发挥 iptables检测和防御攻击的效力。第1章将探讨iptables防火墙的一些基本内容,本节说的是iptables-save与iptables-restore。

作者:陈健 译来源:人民邮电出版社|2009-04-21 15:11

1.8.8 iptables-save与iptables-restore

前面iptables.sh脚本中的所有iptables命令都是按顺序依次执行以便即时启用新规则、设置链的默认策略或删除旧的规则。每个命令都需要单独执行iptables的用户层二进制程序以创建iptables策略。因此,这并不是一个在系统启动时快速建立iptables策略的最优解决方法,特别是当iptables规则数增加到数百个时更是如此(正如我们将在第10章中看到的那样,当通过fwsnort建立策略时就会发生这种情况)。一个要比上述方法快得多的机制是由命令iptables-save和iptables-restore提供的,这两个命令和iptables主程序安装在同一个目录中(在本书的情况中指的是/sbin目录)。iptables-save命令建立一个文件,其中包含了在一个正在运行的策略中所包含的所有iptables规则,而且是以一种可读的格式提供的。这种格式可以被iptables-restore程序解释,该程序将读取ipt.save文件中的每一个规则并在运行内核中立即启用它。执行一次iptables-restore程序就可以在内核中重建整个iptables策略,而不需要多次执行iptables程序。这使得iptables-save和iptables-restore命令对于解决iptables规则集的快速部署问题是非常理想的,下面两个命令阐明了这一过程:

 

ipt.save文件的内容是由iptables的表组成的,该文件的每个段落专用于一个表,每个表再进一步由iptables的链组成。ipt.save文件中以一个星号(*)开头,其后跟随一个表名(如filter)的行表示描述一个特定表的段落的开始。在该行下面的几行显示了这个表中每个链所跟踪的数据包和字节计数。

ipt.save文件的下一个部分是对每个链中所有iptables规则的完整描述。这些行允许通过iptables-restore命令重建iptables规则集,甚至当我们对iptables-save命令使用了-c选项以包括每个规则的数据包和字节计数时也是如此。

最后,以COMMIT单词自身所构成的行结束了ipt.save文件中的一个iptables表段落。该行表示与一个表相关联的所有信息的结束标记。当执行了在本章中迄今为止所有的iptables命令后,filter表段落将如下所示:

 
 

  
  

此时,我们已有了一个可以正常工作的iptables策略,它对试图通过防火墙接口的数据包执行高度的控制。我们还有一个便捷的方法快速地重新启用该策略--只需针对ipt.save文件执行iptables-restore命令即可。这对加快系统的启动周期有着明显的帮助,它同时也适用于对新策略的测试,因为它使得返回到一个已知的良好状态变得非常容易。但有一件事需要注意:如果要调整iptables策略,通过编辑脚本文件来完成要比直接编辑ipt.save文件容易得多(这是因为后者有着严格的语法要求,而这一要求并不像Bourne shell脚本中的语法要求那样广为人知)。

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

The Ruby Way(第二版)中文版

本书采用“如何解决问题”的方式阐述Ruby编程,涵盖了以下内容:Ruby术语和基本原理;数字、字符串等低级数据类型的操作;正则表达式;国际...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊