当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 1.什么是状态检测 每个网络连接包括以下信息:源地址、目的地址、源端口和目的端口,叫作套接字对(socket pairs);协议类型、连接状态(TCP协议)和超时时间等。
 

 

 ·iptables防火墙应用之动态dns    »显示摘要«
    摘要:一、核心思想 配置动态dns服务器的核心思想是:在dns服务器上运行多个bind,每个bind为来自不同区 域的用户提供解析,因此每个bind都应具有不同的配置文件和域文件,并且分别监听在不同 的端口。在接到客户端dns请求时,根据客户的ip地址将请求重定向不同的bind服务端口。 bind响应时,再改写相应包的服务端口为标准的53端口。这样就可以根据客户端的ip地址将 不同的解析结果返回给客户端......
 ·基于linux的防火墙不安全    »显示摘要«
    摘要:美国的sco公司,控告ibm公司盗用sco拥有的unix技术并擅自植入linux内,要求赔偿10亿美元以上。5月14日,sco继续扩大法律行动,再次发函给全球1500家大企业,警告称,使用linux的用户可能触犯法津。sco公司近一步要求这些公司为每台的linux服务器支付 699美元的使用许可费用。9月4日,一些大客户要求戴尔向他们做出保证,一旦sco起诉他们使用戴尔安装了linux产品的计算机......


iptables的状态检测机制
1.什么是状态检测

【程序编程相关:快速构架Linux防火墙

【推荐阅读:Linux 2.4 内核中的iptabl

每个网络连接包括以下信息:源地址.目的地址.源端口与目的端口,叫作套接字对(socket pairs);协议类型.连接状态(tcp协议)与超时时间等.防火墙把这些信息叫作状态(stateful),能够检测每个连接状态的防火墙叫作状态包过滤防火墙.它除了能够完成简单包过滤防火墙的包过滤工作外,还在自己的内存中维护一个跟踪连接状态的表,比简单包过滤防火墙具有更大的安全性. 【扩展信息:为Linux加防火墙:APF的安装与设置

iptables中的状态检测功能是由state选项来实现的.对这个选项,在iptables的手册页中有以下描述:

state

这个模块能够跟踪分组的连接状态(即状态检测).

--state state

这里,state是一个用逗号分割的列表,表示要匹配的连接状态.有效的状态选项包括:invaild,表示分组对应的连接是未知的; established,表示分组对应的连接已经进行了双向的分组传输,也就是说连接已经建立;new,表示这个分组需要发起一个连接,或者说,分组对应的连接在两个方向上都没有进行过分组传输;related,表示分组要发起一个新的连接,但是这个连接与一个现有的连接有关,例如:ftp的数据传输连接与控制连接之间就是related关系.

对于本地产生分组,在prerouting或者output链中都可以对连接的状态进行跟踪.在进行状态检测之前,需要重组分组的分片.这就是为什么在iptables中不再使用ipchains的ip_always_defrag开关.

udp与tcp连接的状态表由/proc/net/ip_conntrack进行维护.稍后我们再介绍它的内容.

状态表能够保存的最大连接数保存在/proc/sys/net/ipv4/ip_conntrack_max中.它取决于硬件的物理内存.

2.iptables的状态检测是如何工作的?

2.1.iptables概述

在讨论iptables状态检测之前,我们先大体看一下整个netfilter框架.如果要在两个网络接口之间转发一个分组,这个分组将以以下的顺序接收规则链的检查:

prerouting链

如果必要对这个分组进行目的网络地址转换(dnat)与mangle处理.同时,iptables的状态检测机制将重组分组,并且以以下某种方式跟踪其状态:

分组是否匹配状态表中的一个已经实现(established)的连接.

它是否是与状态表中某个udp/tcp连接相关(related)的一个icmp分组.

这个分组是否要发起一个新(new)的连接.

如果分组与任何连接无关,就被认为是无效(invalid)的.

forward链

把分组的状态与过滤表中的规则进行匹配,如果分组与所有的规则都无法匹配,就使用默认的策略进行处理.


...   下一页
    摘要:第1 章、基于路由器的包过滤防火墙1.1 包过滤防火墙的一般概念1.1.1 什么是包过滤防火墙包过滤防火墙是用一个软件查看所流经的数据包的包头(header),由此决定整个包的命运。它可能会决定丢弃(drop)这个包,可能会接受(accept)这个包(让这个包通过),也可能执行其它更复杂的动作。在linux系统下,包过滤功能是内建于核心的(作为一个核心模块,或者直接内建),同时还有一些可以运用于数......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE