- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验三 实验目的:掌握Linux下开源网络软件的安装、分析与使用。 实验 ...
实验三
实验目的:掌握Linux下开源网络软件的安装、分析与使用。
实验内容:
1)在Linux下安装广泛使用的libpcap, libnids 开源软件,了解其工作原理。
2)通过分析libnids的部分代码,了解IP分片重组、TCP连接建立与关闭在Linux中的实现。
3)通过分析相关代码了解libnids中端口扫描攻击的检测机制,安装tcpreplay 开源软件,学会使用tcpreplay来模拟网络环境进行网络测试。
4)(选做)通过修改scan.c来扩充攻击检测能力。
注:实验1)、2)和3)为必做,标注为challenge的内容及实验4)libpcap-1.0.0.tar.gz)。
通过命令 tar zxf libpcap-1.0.0.tar.gz进行解压。
进入解压后的目录,依次运行 ./configure make make install 进行安装。
根据第一页链接下载 libnids (通常为libnids-1.24.tar.gz)
通过命令 tar zxf libnids-1.24.tar.gz 进行解压。
进入解压后的目录,阅读README文件。
运行 ./configure --disable-libglib --disable-libnet 命令。
依次运行make make install 进行安装。
安装完成后进入目录 libnids-1.24/samples 运行 make 命令,运行成功的话 printall.c 会被编译为 printall。
在终端中运行 ./printall (Hint: 若程序提示“error while loading shared libraries: libpcap.so.1”,请温习Linux下动态库的知识并自行解决。)。之后本机中所有与外界的TCP连接(例如FTP连接,HTTP连接,SMTP连接等)的数据包内容都会被打印在终端上。如下图为通过FTP连接时printall截获的数据包内容。
(1)问题:结合本实验,请解释TELNET协议为什么不安全?
(2)Challenge: 找一台开通Telnet的服务器,在本机通过telnet登录到服务器,运行printall,打印出telnet用户尽可能多的信息。
2.分析libnids代码
Libnids中的TCP/IP协议栈代码主要是从Linux kernel 2.0中移植到userspace上改写而成,很大程度上体现了TCP/IP协议栈在Linux中的具体实现,具有很好的教学价值。
本实验中,我们从libnids中抽出两个比较典型的网络协议栈实现代码片段。同学们可以挑选其中一个感兴趣的代码片段,结合理论知识分析相关代码。
IP分片重组:
实现代码为libnids.c 中gen_ip_frag_proc()函数的 384-395行(包括相关的子函数)。请同学们结合网络教材中IP分片重组的理论知识对libnids中的代码(特别是ip_defrag_stub 函数)进行分析,结合代码回答以下问题:
对IP分片重组有影响的IP头标志位有哪些?
IP分片重组中,丢弃超时的分片是怎么实现的?
IP分片乱序到达时的处理流程是怎样的?
给出完整的IP分片重组状态图(或详细描述)。
TCP连接的建立与关闭:
实现代码为 tcp.c 中 process_tcp()函数(包括相关的子函数)。请同学们结合网络教材中TCP建立与关闭的理论知识对libnids中的代码进行分析,结合代码回答以下问题:
给出完整的TCP连接状态图。
结合代码,描述TCP连接状态图在libnids中的实现。
对异常的TCP包,协议栈是怎么处理的?(例如,收到两个连续的SYN数据包,或先收到SYN-ACK数据包再收到SYN包)
3.libnids端口扫描攻击检测的实现
端口扫描攻击的检测代码为scan.c中detect_scan函数。理论知识可查看wikipedia中“port scanner”的“SYN scanning”部分。请同学们结合理论知识对libnids中的代码进行分析,并结合代码回答以下问题:
Libnids中port scan的原理是什么?通过什么办法检测到网络中port scan攻击?
为模拟端口扫描和检测,在局域网中按照下图建立实验环境。一台PC机上安装tcpreplay软件,从网上下载开源的包含端口扫描攻击的packet trace文件,也可以自己生成或下载教学主页上的trace文件,利用tcpreplay回放这些数据包来模拟网络流,另一台PC机上安装libnids 进行攻击检测。
要求:对于所选用的trace文件,统计检测到的端口扫描攻击的次数。
4.扩充scan.c的功能
仔细分析scan.c文件,提出你的功能扩充设想。比
文档评论(0)