inux 2.4有状态防火墙设计(二).docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
inux 2.4有状态防火墙设计(二)

Linux 2.4有状态防火墙设计(二) ???? 第三章 定义规则 (小)改进 在本示例中,假设我们正在为有两个网络接口 eh0 和 eth1 的机器设计防火墙。eth0 网卡连接到 LAN,而 eth1 网卡连接到 DSL 路由器,这是与因特网的连接。对于这种情况,通过添加以下几行命令就可以改进我们的“终极防火墙”: iptables -P INPUT DROP iptables -A INPUT -i ! eth1 -j ACCEPT 这行附加的 iptables -A 将一个新的包过滤规则添加到 INPUT 链的末端。添加此规则之后,INPUT 链就包含了一个规则和缺省删除策略。现在,让我们看一下这个半成品防火墙有什么功能。 有关 INPUT 链 当包进入任何一个接口(lo、th0 或 eth1)时,netfilter 代码会将它定向到 INPUT 链,并检查该包是否与第一个规则匹配。如果匹配,则接受包,并且不再执行处理。如果不匹配,则实施 INPUT 链的缺省策略,废弃(删除)该包。 那是概念性的概述。具体情况中,第一个规则会匹配来自 eth0 和 lo 的所有包,并立即允许它们进入。而所有来自 eth1 的包都将被删除。因此,如果我们在机器上启用这个防火墙,它可以与 LAN 交互,但却会彻底断开因特网连接。让我们看一些启用因特网通信流的方法。 传统防火墙,第 1 部分 显然,如果要使防火墙变得实用,需要有选择性地允许某些进入包经由因特网到达机器。有两种方法可以使防火墙开放到实用的程度 -- 一种是使用静态规则,另一种是使用动态规则,即有状态规则。 传统防火墙,第 2 部分 让我们使用下载网页作为示例。如果想要机器能够从因特网下载网页,可以添加一个静态规则,此规则永远允许每个进入 http 包,不管它来自何处: iptables -A INPUT --sport 80 -j ACCEPT 由于所有标准 Web 通信流都来自源端口 80,实际上此规则允许机器下载网页。虽然可以勉强接受这种传统方法,但是它却有许多问题。 传统防火墙的缺点,第 1 部分 这里有个问题:虽然大多数 Web 通信流来自端口 80,但有些不是这样。因此,虽然此规则在大部分时间中有效,但仍有少量情况并不适用此规则。例如,您可能看到过类似于 :81 的 URL。这个 URL 示例通过端口 81 连接到网站,而不是缺省端口 80,因此在防火墙后面就看不到这个网站。考虑所有这些特殊情况可以将相当安全的防火墙迅速变成瑞士干酪, 并迅速将许多规则添加到 INPUT 链以处理偶尔遇到的奇特网站。 传统防火墙的缺点,第 2 部分 但是,这个规则的主要问题与安全性相关。的确,只有使用源端口 80 的通信流才能通过我们的防火墙。但是包的源端口并不是我们所能控制的,闯入者可以轻易地改变它。例如,如果闯入者知道我们的防火墙是如何设计的,他只要确保其所有进入连接都来自其机器的 80 端口就可以绕过我们的防火墙。由于这个静态防火墙规则很容易被利用,因此需要一个更安全的动态方法。幸好,iptables 和内核 2.4 提供了启用动态、有状态过滤所需要的一切条件。 第四章 有状态防火墙 状态基础知识 与其在基于静态协议特征的防火墙上开一个洞,还不如使用 Linux 新的连接跟踪功能来使防火墙根据包的动态连接状态做出判定。conntrack 通过将每个包与一个独立的双向通信信道或连接相关联来进行判定。 例如,设想一下,当使用 Telnet 或 ssh 连接远程机器时会发生什么情况。如果查看包级的网络通信流,您所看到的许多包从一台机器传递到另一台机器。但是,从更高级别的角度看,这种包交换是您的本地机器与远程机器之间的双向通信信道。传统(过时)的防火墙只看到独立的包,并没有看出它们实际上是一个更大的整体(连接)的一部分。 conntrack 内幕 那正是产生连接跟踪技术的原因。Linux 的 conntrack 功能可以“看到”正在发生的更高级别的连接,从而将 ssh 会话看作是单一的逻辑实体。conntrack 甚至可以将 UDP 和 ICMP 包交换看作是逻辑“连接”,即使 UDP 和 ICMP 实际上是非连接方式;这是非常有用的,因为它可以让我们使用 conntrack 来处理 ICMP 和 UDP 包交换。 如果已经重新启动,并且正在使用支持 netfilter 的新内核,那么通过输入 cat /proc/net/ip_conntrack 可以查看您的机器参与的活动网络连接。即使没有配置防火墙,Linux 的 conntrack 功能也可以在幕后工作,跟踪您

文档评论(0)

181****2553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档