易截截图软件、单文件、免安装、纯绿色、仅160KB

【转帖LINUX】netfilter中的conntrack内核阅读笔记(1)

2008-07-07 22:04状 态检测(stateful inspection)是由CheckPoint公司最先提出的,可算是防火墙技术的一项突破性变革,把包过滤的快速性和代理的安全性很好地结合在一起, 目前已经是防火墙最流行的检测方式。状态检测的根本思想是对所有网络数据建立“连接”的概念,此“连接”是面向“连接”的协议之“连接”的扩展,对非连接 协议数据也可以建立虚拟连接。既然是连接,必然是有一定的顺序的,通信两边的连接状态也是有一定顺序进行变化的。防火墙的状态检测就是事先确定好连接的合 法过程模式,如果数据过程符合这个模式,则说明数据是合法正确的,否则就是非法数据,应该被丢弃。
2.6内核的Linux中的防火墙代码netfilter中实现了状态检测 (stateful inspection)检测技术:Linux为每一个经过网络堆栈的数据包,生成一个新的连接记录项(Connection entry)。此后,所有属于此连接的数据包都被唯一地分配给这个连接,并标识连接的状态。linux在netfilter的hook点上为 contrack定义了如下几个挂接点,用来处理流经的ip包:
        NF_IP_PRE_ROUTING : ip_conntrack_defrag -> ip_conntrack_in
        NF_IP_LOCAL_IN :        ip_conntrack_help -> ip_confirm
        NF_IP_LOCAL_OUT :     ip_conntrack_defrag -> ip_conntrack_local
        NF_IP_POST_ROUTING :ip_conntrack_help -> ip_confirm
其中ip_contrack_defrag用来处理报文分 片;ip_conntrack_in和ip_conntrack_local(内部调用ip_conntrack_in)用于conntrack为每个连 接建立模式记录,ip_conntrack,并判断报文是否符合合法的模式,不符合则丢弃;ip_conntrack_help是针对使用动态协议和端口 的连接设计的数据结构,如一个ftp连接针对数据流和控制流分别用到了两个端口,;ip_confirm判断报文所属的模式ip_conntrack是否 已经存在系统哈希中,否则加入到系统的hash中。
 
Netfilter使用一张全局hash表来定义报文的连接状态,它定义在ip_conntrack_core.c中,用指针struct list_head *ip_conntrack_hash来描述该表。这个hash表的大小是有限制的,在模块装载的时候确定,可以由用户指定,由ip_con


相关文档:

study linux website

1. LinuxCommand
  LinuxCommand是一个学习Linux命令行最好的网站之一。网站分为:学习Shell、写Shell脚本、脚本库、超级MAN页面。
       http://linuxcommand.org/
2. O’Reilly的Linux命令指南目录
  O’Reilly的Linux命令指南目录是一个极好的快速参考指南,列出了大 ......

Linux LVM 的使用详解

Linux LVM 的使用详解
摘要: Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如Patition Magic等),但这都只是暂时解决办法,没有根本解决问题。随着L ......

读后感2 linux学习

果然是过了好久,这次又准备开始学习linux了。系统的学习和在网上找点只言片语的了解果然是不一样的。看完这点章节,自己就再做做总结吧。
我大概了解下来是这样的。对于linux的文件系统来说,下面有很多“文件”,这些“文件”包括了设备、磁盘驱动器等等。比如"\"表示根目录,而\user是用来装整个操 ......

建立ARM+Linux应用程序调试环境

 
建立ARM+Linux应用程序调试环境
 
Gdb+gdbserver+insight环境的搭建
1.    下载gdb源代码    http://ftp.gnu.org/gnu/gdb/
 
2.    配置安装gdb+gdbser
$ tar jxvf gdb-6.6.tar.bz2
$ cd x/gdb
$ ./configure --target=arm-linux --prefix=/usr/lo ......

Notes for Advanced Linux Programming 4. Threads

4.  Threads
To use the POSIX standard thread API (pthreads), link libpthread.so
to your program.
4.1. Thread Creation
Each thread in a process is identified by a thread ID,
pthread_t.
The pthread_self function returns the thread ID of the current
thread.
This thread IDs can be compared ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号