作者:backend 【程序编程相关:安装DNS服务器】
【推荐阅读:安装imap服务器】 【扩展信息:http://www.myfaq.com】 日期:2000-07-10 ---[[ 前言 ]]-------------------------------------------- 本文主要介绍几个在unix系统平台上开发网络安全工具时最常用的library.此外还提供一些如何使用这些开发库进行网络安全工具开发的设计框架与流程.希望能与对网络安全工具开发有兴趣的朋友共同交流,互相促进. 众所周知,基于socket的网络编程已成为当今不可替代的编程方法.这种编程思想将网络通讯当作“文件”描述字进行处理,对这个“网络文件”(即 socket,套接字/套接口)的操作从编程者的角度来讲与普通的文件操作(如读.写.打开.关闭等)大同小异,从而极大地简化了网络程序开发过程. 在众多的网络安全程序.工具与软件中都是基于socket设计与开发的.由于在安全程序中通常需要对网络通讯的细节(如连接双方地址/端口.服务类型.传 输控制等)进行检查.处理或控制,象数据包截获.数据包头分析.数据包重写.甚至截断连接等,都几乎在每个网络安全程序中必须实现.为了简化网络安全程序 的编写过程,提高网络安全程序的性能与健壮性,同时使代码更易重用与移植,最好的方法就是将最常用与最繁复的过程函数,如监听套接口的打开/关闭.数据包 截获.数据包构造/发送/接收等,封装起来,以api library的方式提供给开发人员使用. ---[[ c开发库简介 ]]------------------------------------- 在unix系统平台上的网络安全工具开发中,目前最为流行的c api library有libnet.libpcap.libnids与libicmp等.它们分别从不同层次与角度提供了不同的功能函数.使网络开发人员能够 忽略网络底层细节的实现,从而专注于程序本身具体功能的设计与开发.其中, * libnet提供的接口函数主要实现与封装了数据包的构造与发送过程. * libpcap提供的接口函数主要实现与封装了与数据包截获有关的过程. * libnids提供的接口函数主要实现了开发网络入侵监测系统所必须的一些结构框架. * libicmp等相对较为简单,它封装的是icmp数据包的主要处理过程(构造.发送.接收等). 利用这些c函数库的接口,网络安全工具开发人员可以很方便地编写出具有结构化强.健壮性好.可移植性高等特点的程序,如scanner.sniffer.firewall.ids等. ---[[ libnet ]]------------------------------------------ libnet库的最新版本为1.0.0,它一共约7600行c源代码,33个源程序文件,12个c头文件,50余个自定义函数,提供的接口函数包含15种 数据包生成器与两种数据包发送器(ip层与数据链路层).目前只支持ipv4,不支持ipv6.已经过测试的系统平台包括: * openbsd 2.6snap, 2.5, 2.4, 2.3, 2.2 (i386) * freebsd 4.0-stable, 3.3-stable, 3.2-release, 3.1-current, 3.0, 2.2 (i386) * netbsd 1.3.2 (i386) * bsd/os 3.x (i386) * bsdi 3.0 (i386) ... 下一页