还剩5页未读,继续阅读
文本内容:
用VB
6.0实现网络实时监控系统作者邓传军阅读人次1610文章来源CSDN开发高手发布时间:2007-8-14网友评论()条计算机网络技术的日益发展和普及,为信息共享提供了一条全球性的高速通道,但目前采用的TCP/IP协议族潜在着安全漏洞,其安全机制并不健全,如何保护企业内部网络中的资源及信息不受外部攻击者肆意破坏或盗窃,是企业网络安全需要解决的重要问题当我们担心被黑客攻击或怀疑电脑被植入木马时,我们往往求助于防火墙本系统即通过实时监控全部TCP连接的方法来实现防黑客攻击同时网络管理人员在整个网络运行期间,能否实时监控联网计算机的运行状态和操作对网络安全具有极其重要的作用.下面就以VisualBasic
6.0作为开发工具讲述两个主要模块的设计和实现系统概述该系统由两个子系统组成服务器端系统和客户端(工作站)系统服务器端系统安装在网络管理人员的计算机上,用于实施各种对联网计算机的监控操作;客户端系统安装在每台联网的计算机上,它运行后以图标的方式出现在系统任务栏的提示区中,不影响工作站的其他操作,只用于响应服务器端的监控命令,并根据服务的需要,及时采样工作站的相应数据返回给服务器端该系统的运行环境可以运行于Win
98、Win95或WinNT、Win2000下在系统的开发中,引入『WINSOCK通讯控件,除此之外,为较好地实现各项监控操作,还用到了几个API函数系统功能
1、监控全部TCP连接实时监控所有服务器端口的连接情况、及时对异常连接发出警告并提示用户删除异常连接;
2、屏幕监控该功能允许服务器随时把被监控工作站的屏幕画面抓取到服务器中,网络管理人员对相应工作站所进行的操作一目了然,若发现有非法操作即可采取发送警告或强制措施,强迫其停止相应操作
3、对工作站进行锁机、关机、限制鼠标活动等;
4、服务器和工作站之间的信息互送功能的实现
1、监控全部TCP连接TCP/1P(TransmissionControlProtocol/InternetProtocol传输控制协议/互联网协议)是一个包括TCP、IP、UDP、ARP、RARP和ICMP等在内的网络协议集TCP/IP经常被称为“将Internet绑定在一起的粘合剂”,它允许在空间上分离的多个信息网络连接在一起形成一个巨大的虚拟网络TCP和UDP(用户数据报协议)是两个最常用的数据传输协议,它们都使用设置监听端口的方法来完成数据传输在本文中讨论TCP连接通过使用TCPInternet客户机可以打开到另一个Internet客户机的虚拟连接并传送数据流与UDP不同,TCP协议通过重传丢失的数据报保证传输的可靠性它也保证在接收端的应用程序按发送的顺序将接收到的位和字节重新组装起来以获取完整的数据要获得与服务器系统中全部有效的TCP连接,用到GctTcpTablc这个API函数,它定义如下PrivateDeclareFunctionGetTcpTableLibiphlpapi.dll*(ByRefpTcpTableAsMIBTCPTABLEByRefpdwSizcAsLongByVaibOrdcrAsLong)AsLong其中参数pPcpTable是己生成的TCP连接表缓冲区的指针,参数pdwsize是缓冲区大小(当缓冲区不够大时,该参数返回实际需要的大小),参数border指示连接表是否需要按MLocalIP、Localport、0RemoteIP、uRemoteportM依次进行排序,1为按此顺序通过•个TIMEER控件的TIMER的事件来比较前后两个TCP连接表,我们可以立即发现异常并发出警告本系统用声音和报警标志提醒用户注意可能的外界入侵收到警告信号后我们应首先将可疑连接删除掉,SetTcpEntry函数可以帮助我们删除可疑连接其定义为PrivateDeclareFunctionSctTcpEntryLibiphlpapi.dll*ByRefpTcpTableAsMIB_TCPROWAsLong其中参数pTcptable为指向tcp表行的指针然后将欲删连接的状态置为MIB_TCP_STATE_DELETE_TCB值为12即可删除该连接TIMER事件源代码PrivateSubTimerl_TimerDimReturn1AsLongiAsLongDimTmplAsLongTmp2AsLongDimIpBuf1To4AsByteDimWin_PathAsStringTmp3AsStringReturnl=GetTcpTableTCP1LenTCPl1IfLast_Num_0f_Entries0And_Last_Num_Of_Entries_Of_EntriesThen异常时发出警告le=True警告标志OnErrorResumeNextWin_Path=String1450利用API函数GetWindowsDirectory获得当前系统目录i=GetWindowsDirectoryWin_Path145WinPath=LeftWinPathi利用API函数sndPlaySound发出报警声音i=sndPlaySoundWin_Path+“\Media\H1OnErrorGoTo0ElseIfle=TrueThenle=FalseEndIfEndIfLast_Num_OfEntries=_0f_EntriesSelectCaseReturnlCase0:Textl=:Fori=0To_0f_Entries-1Tmp3=Stri+1+””SelectCase_Tablei.dwState显示连接状态Tmp3=Tmp3+*LAST_ACK*Tmp3=Tmp3+TIME_WAIT”Tmp3=Tmp3+*DELETETCB”EndSelectemTmp3填充列表以供用户删除本地IPTmp3=Tmp3+”:+vbCrLf+vbTab+Local:CopyMemory为API函数CopyMemoryIp_Buf1_Tablei.dwLocalAddr4Tmp3=Tmp3+CStrIpBufl++CStrIp_Buf2+CStrIp_Buf3_+CStrIp_Buf4Tmpl=_Tablei.dwLocalPort本地端口Tmp2=Tmpl/256+TmplMod256*256远程IPTmp3=Tmp3++StrTmp2+vbTab+Remote:CopyMemoryIp_Buf1_Tablei.dwRemoteAddr4Tmp3=Tmp3+CStrIpBufl++CStrdpBuf2+CStrIp_Buf3++CStrIp_Buf4‘远程端口Tmpl=Tablei.dwRemotePortTmp2=Tmpl/256+TmplMod256*256Tmp3=Tmp3++StrTmp2+vbCrLfTextl=Textl+Tmp3NextiCase50:MsgBox系统不支持该API函数EndCase87:MsgBox”无效的参数”:EndCase111:MsgBox”缓冲区溢出”:EndCase232:MsgBox”无数据EndEndSelectEndSub用于删除连接的CLICK齐件源代码:PrivateSubdeleteClickDimReturn1AsLongIfndex0ThenExitSub将欲删连接的状态置为值为12_Tablendex.dwState=12执行删除Return1=SetTcpEntry_TablendexIfReturn1=0ThenMsgBox删除成功”ElseMsgBox删除失败”EndIfTimerl_TimerEndSub
2、屏幕监控当服务器系统发现TCP异常连接时,可通过屏幕监控功能将局域网中被监控工作站的屏幕画面抓取到服务器中并实施相应措施如对工作站锁机或关机等此处用到WINSOCK控件其通讯原理请参阅相关资料,屏幕监控功能用到TCP协议,为了达到更好的效果,可在窗体中加入TIMER控件设定TIMER事件1工作站端侦听并响应服务器端发出的连接请求和屏幕抓取其中屏幕抓取功能可通过API函数实现DimaAsSiringtaavbStringSelectCaseaCasezpedraw=TrueMode=11Desktop=GetDesktopWindow1DC=GctDClDcsktopBitBlt00_tIDC00vbSrcCopy获取图像数组SavePicturefi1enameataokm”DimmyfileOAsByteCasefir传第一块图OpenfilenameForBinaryAs#1filelen=LOFlReDimmyfiledToblocksizeAsByteconstblocksize=3072Get#1myfileatamyfilecurpos=blocksizeCasenext,传其它块Ifcurpos=filelenThenataendClose#1ExitSubEndIfj=curpos+blocksizeIfjfilelenThenj=filelen-curposElsej=blocksizeEndIfReDimmyfilelTojAsByteGet#1myfileatamyfilecurpos=curpos+jEndSelect注意以上功能在WINSOCK的DataArrival事件中实现抓取的图象数据量较大,所以需要分块传输2服务器端DataArrival事件代码DimreceivefileOAsByteReDimreceivefilebytesTotalAsBytetareceivefilevbArray+vbByte告诉Winsock控件收到的是字节数组类型的数据IfChrreceivefi1e0=*o*And_Chrreceivefilel=*k*And_Chrreceivefi1e2=mThenIfDir$filenameThenKillfilename打开文件,准备存储图像OpenfilenameForBinaryAs#1filelen=0atafirExitSubEndIfIfChrreceivefile0=eAndChrreceivefilcD=nAnd_Chrreceivefile2=dThenon=endClose#1re=l.oadPicturefi1ename显示图象ExitSubEndIfPut#1rcceivcfilcatanext
3、其它功能主要用到一些API函数,如实现屏落锁定和解锁操作可使用EnableWindow实现关机功能用ExitWindowsEx服务器和工作站之间的信息互送用到WINSOCK控件的UDP协议,具体用法请参阅有关资料结束语通过在基本的网络监控系统增加入侵检测,就能够极大提高网络的整体安全性,使之更灵敏、更智能,大大降低入侵的成功率Case1:Tmp3=Tmp3+”CLOSED”Case2:Tmp3=Tmp3+”LISTENING”Case3:Tmp3=Tmp3+“SYN_SEN丁Case4:Tmp3=Tmp3+*SYN_RCVD*Case5:Tmp3=Tmp3+ESTABLISHEDCase6:Tmp3二Tmp3+*FIN_WAIT1*Case7:Tmp3=Tmp3+“FINWAIT2*Case8:Tmp3=Tmp3+*CLOSE_WAIT*Case9:Tmp3=Tmp3+”CLOSING”。
个人认证
优秀文档
获得点赞 0