基于linux的嵌入IPv4协议栈的内容过滤防火墙系统(4)-包过滤模块和内容过滤模块

二。包过滤模块和内容过滤模块

2。1 技术背景

采用技术

2。1。1 模块编程

2。1。2 netfilter

Netfilter是linux2.4内核实现数据包过滤/数据包处理/NAT等的功能框架。它在网络上设置了五个钩(hook),我们可以在我们所需要的一个钩对数据进行过滤,在本程序中,我们对所有进入服务器的数据包进行过滤。

2。1。3 TCP/IP协议

一般网络上传输的数据包有IP包、TCP包和UDP包,由于UDP包不包含文件内容,所以我们不对UDP包进行过滤,而IP包和TCP包都包含我们所需要的数据,我们要获得这些包里面的数据,则必须熟悉这些包的内部结构,熟悉TCP/IP协议。

2。1。4 socket编程(socket buff)

在Linux内核中,分不同的层次,使用两种数据结构来保存数据。在BSD Socket层内使用msghdr{}结构保存数据;在INET Socket层以下都使用sk_buff{}(socket buff)数据结构保存数据。在本程序中,我们所需要的数据包就保存在sk_buff{}里面。我们要对数据包进行过滤,就必须先获得sk_buff{}里面的数据,所以我们必须先了解sk_buff的结构。

2。1。5 rar文件过滤

这是本程序的重点之一,我们要过滤rar文件,首先要先熟悉rar文件里面的内部结构,才可以获得我们所需要的数据(rar文件里面的文件名和目录名),由于rar文件通常比较大,在进行网络传输的时候经常被分割为很多小块,这可能出现很多的情形,我们进行文件过滤的时候,需要一一对这些情况进行判断。

2。2 开发工具

2。2。1 开发平台:linux

2。2。2 编程工具和编程语言:linux下的c编程

2。3 程序工作流程:

在本程序中,内容过滤模块是嵌套在包过滤模块之中,而这两个模块都使用了模块编程,放在同一个模块中(这里的模块是Linux的内核编程方式,不同于前两个模块所讲的意思),我们要进行内容过滤,首先必须先插入模块(当我们不再进行检测的时候,我们可以卸载模块),那么程序就可以在我们指定的过滤点(系统有五个过滤点,每个过滤点叫做一个钩)进行检测,当有IP包和TCP包通过过滤点时,系统就会捕获到这些数据包,我们就可以读取数据包,获得我们所需要的数据(比如,IP包里面的源地址和目的地址,TCP包里面的源端口和目的端口),当TCP包里面包含有rar文件或rar文件的一部分时,我们就调用内容过滤模块对对这个TCP包进行分析,过滤,所获得的结果除了把它们写入日记文件外,还将通过数据交互模块将其显示在用户界面上。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏好好学java的技术栈

「文末赠书」http协议简介看这篇就够了

协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要...

963
来自专栏企鹅号快讯

Webpack 持久化缓存实践

作者:happylindz https://github.com/happylindz/blog/issues/7 前言 最近在看 webpack 如何做持久化...

3375
来自专栏F-Stack的专栏

F-Stack Q&A 第一期

Q1:F-Stack有中断模式吗,有计划支持吗?在计算密集型的应用中,轮询模式会占用更多的CPU资源? A1:F-Stack暂时只支持轮询模式,后续会支持中断+...

7345
来自专栏安智客

GP规范中定义的四种SE访问控制架构

GP规范给人的感觉好像有点晦涩难懂,由于是规范,所以比较抽象,而且GP这个组织的专家们来自世界各地,大家都用英语文档交流,所以不同的文档风格不同,难免大家阅读起...

1992
来自专栏Django Scrapy

Centos 7下 FTP 服务器

MicrosoftInternetExplorer4 0 2 DocumentNotSpecified 7.8 磅 Normal 0 @font-fac...

9269
来自专栏HTML5学堂

Gulp 定制专属提速“外挂”(下)

友情提示:推荐阅读时间10分钟 + 练习时间10分钟 上一期给大家分享了Gulp插件的安装与使用,只要掌握了Gulp插件安装的流程与配置,对于其他Gulp插件的...

3118
来自专栏刘明的小酒馆

事务与一致性:刚性or柔性?

在高并发场景下,分布式储存和处理已经是常用手段。但分布式的结构势必会带来“不一致”的麻烦问题,而事务正是解决这一问题而引入的一种概念和方案。我们常把它当做并发操...

91010
来自专栏好好学java的技术栈

http简介看这篇就够了

协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要...

1132
来自专栏Timhbw博客

小白搭建博客教程-域名解析(3)

2016-06-1015:56:17 发表评论 1,115℃热度 上一回说道:小白搭建博客教程之流程,这次趁着端午节写完它,也算是一个了结。 ? 教程有4篇:...

1.1K7
来自专栏小文网

查看QQ闪照的方法

来源http://www.xiaowennet.com/Study/date20180722-id101.html

4874

扫码关注云+社区

领取腾讯云代金券