Linux平台网络管理控制模块功能的设计(Netfilter)(C语言)
本文首先介绍了Linux的一些发展历史和系统基本概况;其次介绍了一些系统自带的常用的网络管理控制工具IPTABLES;然后介绍了网络管理系统的一些基本框架;之后是重点介绍了用Netfilter编写网络管理控制模块的方法和具体实现过程;最后介绍了模块的编译环境和一些使用加载和卸载模块的常用命令。
摘 要
随着网络的逐步普及,网络的管理和控制的重要性已经越来越突出,它关系着网络的进一步发展和普及,甚至关系着网络的生存。为了促进网络的发展,在现有的技术条件下,可以开发出成熟的网络控制系统对网络进行管理和控制。可以通过对网络的管理和控制为本地网络和外部网络之间建立一道屏障,从而控制和管理进出网络的数据。网络管理控制系统的核心是制定一套完整的网络控制指令集和设计控制管理的功能模块。本系统在Linux-2.4.20-8内核下完成网络管理控制系统的设计,使用控制管理命令实现对网络数据的管理。控制和管理模块的设计使用了netfilter数据控制过滤机制来实现对网络的管理。模块可以实现对固定端口,网页访问以及不同数据协议类型的数据进行管理和控制。从实际应用中可以得出结论在Linux-2.4.20-8的内核下可以成功的使用netfilter网络数据控制机制过滤和管理进出系统的网络数据。本文首先介绍网络管理控制系统的一些基本概念以及一些在Linux下的C语言编译环境,其次介绍Linux netfilter控制模块在内核中的实现,在此着重介绍了netfilter在IPv4中的结构以及在Linux 2.4.x内核中实现,最后介绍了网络数据管理的策略、模块编程以及如何设计网络管理控制的功能模块。在了解这些技术的基础之上,成功的在Linux-2.4.20-8内核下开发出一套简单的网络管理控制模块。这些模块通过程序发出的控制指令进行动态的插入和卸载。这些模块分别实现了对ICMP网络数据,HTTP站点,FTP服务器的管理控制。
[资料来源:www.doc163.com]
关键词:内核模块;数据包;netfilter
Design and Development of Simple Internet Management and Controlling System under Linux
Abstract
With the permeation of Internet,the importance of Internet management and controlling becomes more prominent, It is related to the further development and permeation even the existence of Internet. To promote the development of Internet, it is possible to develop a mature Internet controlling system which can be managed and controlled under the current technical conditions. It can build a natural defense between internal and external network through managing and controlling the data of Internet. It is the core of this system that builds an overall Internet controlling agreement and realizes the model function of controlling and management. This system realizes the management and controlling of Internet data successfully by doing its design whose modules mainly based on the data controlling and filtering mechanism of Netfilter, under Linux. The modules have success in realizing the data managements. From practice, it concludes that data controlling mechanism of Netfilter can succeed in managing and filtering the whole data under Linux. This thesis introduces some basic concepts of MCS and edition environment of C language under Linux, firstly. Then it introduced realization of controlling module of Linux, Netfilter in Kernel, which highlight the structure of Netfilter in IPv4 and realization of Linux. Lastly it mentioned the strategy of MCS modules edition and how to design the function modules of MCS. So one simple modules of MCS of which doing dynamic insertion and suddenly unloading through controlling agreement sent by programs is designed successfully under Linux, following these skills. These modules also realize the management and controlling of ICMP data, HTTP websites and FTP Servers, respectively. [资料来源:http://Doc163.com]
Key words: Kernel Module;Packet;Netfilter
本课题研究方法
在Linux-2.4.20-8操作系统平台下使用C语言开发环境。通过使用netfilter网络数据包管理控制机制进行网络控制模块功能的开发和编译,并且运用C语言编程开发出可以发出控制协议的管理控制平台进行相应的管理和控制模块的运行。其次研究网络通讯中的传输协议,以及数据报的传输过程,以及一些可以控制和管理网络数据的传输端口,制定出一套网络管理控制协议,即一套完整的控制字节。最终在Linux操作系统环境下实现完成该网络管理控制程序,并且用netfilter实现控制功能模块的设计。
目 录 16000字 [资料来源:http://doc163.com]
1 引言 1
1.1 课题背景 1
1.2 国内外研究现状 1
1.3 课题意义 1
1.4 本课题研究方法 1
2 Linux开发环境介绍 2
2.1 Linux简介 2
2.2 Linux下的C语言开发环境 2
2.3 常用的网络数据控制工具介绍 3
3 Linux网络管理控制核心技术 5
3.1 SOCKET网络编程 5
3.1.1 Linux网络编程 5
3.1.2基本套接字函数 5
3.2 基于TCP协议的通讯 7
3.2.1 TCP传输协议简介 7
3.2.2控制字符的制定 7
4 NETFILTER-网络控制模块设计基础 8
4.1 netfilter介绍 8
4.2 netfilter中的重要返回值 8
4.3 netfilter在IPv4中的框架 9
4.4 netfilter核心模块 10
4.5 netfilter可以实现的基本控制功能 11
5 测试Linux网络管理系统的设计实现 13
5.1 系统设计整体框架 13
5.2 用SOCKET实现控制端和管理端的通讯 14
5.2.1管理端的设计与实现 15
5.2.2控制端的设计与实现 16
5.3 用netfilter设计控制功能模块 18
5.3.1设计控制ICMP数据报的模块 18
5.3.2用netflter设计管理控制FTP服务器的模块 20
5.3.3设计控制HTTP网站访问的模块 22
5.4 用GCC编译生成模块 23
5.5 管理控制系统测试 23
5.6 程序设计中遇到的问题和解决方法 24
5.6.1解决模块编译的环境问题 24
5.6.2解决程序异常退出问题 25
5.6.3解决模块自动加载问题 26
结 论 26
参考文献 27
致 谢 28
声 明 29
参考文献
[1] 林宇,郭凌云.Linux网络编程[M].北京:人民邮电出版社,2004。
[2] W.Richard Stevens[美].TCP/IP祥解[M].北京:机械工业出版社,2000。
[3] 潭浩强.C语言程序设计[M].北京:清华大学出版社,2003。
[4] Robert L.Ziegler[美].Linux防火墙[M].北京:机械工业出版社,2006。
[5] Mitchell Krell[美].Linux系统安全[M].北京:电子工业出版社,2004。
[6] Arnold Robbins[美].Linux程序设计[M].北京:机械工业出版社,2005。
[7] 博佳科技.Linux防火墙探密[M].北京:国防科技出版社,2002。
[资料来源:www.doc163.com]
[8] 森林图书工作室.Linux & Unix C程序设计[M].北京:国防工业出版社,2001。
[9] 位元文化工作室.Linux C/C++入门与进阶[M].北京:科学出版社,2004。
[10] 孟庆昌,吴健.Linux教程[M].北京:电子工业出版社,2004。 [资料来源:http://www.doc163.com]