|
| |
精品推荐 |
 |
|
| |
|
|
|
|
监控和截获远程计算机的登录信息
|
日期:2007年4月29日 作者: 查看:[大字体
中字体 小字体]
|
随着计算机的普及,企业局域网中的计算机越来越多。许多计算机具备用telnet、rlogin、ftp、rcmd等远程登录方式进入服务器的能力。而在实际工作中各联网计算机之间相互远程登录进行业务处理的情况也是日益频繁,如何对这些登录计算机进行监控呢? 问题的提出 网络监管是各种服务器管理的重中之重。如果有一款简捷实用的Unix网络监控软件,该软件能迅速截获并显示所有远程登录计算机的IP地址、以太网地址、远程登录方式、远程登录的用户身份、远程登录的具体时间以及远程登录的进程号,打入命令后即可全方位监控远程登录计算机的各种关键信息,将会给网管人员的工作带来极大的方便。经过一段时间的试验,我们用Shell语言编制了这款监控和截获远程登录计算机的全方位信息的程序,实践效果较好。运行后,所有远程登录计算机的全部关键信息都一目了然地显示出来。一旦发现有非法远程登录者,只须用kill命令杀掉本程序显示的相应的进程号即可迅速清除该非法远程入侵者。 问题的解决 以下是该程序的具体代码,其中netstat命令用于获取远程登录计算机的IP地址,arp命令用于获取远程登录计算机的以太网地址。 rm jlog.* #检查有无远程登录的计算机 ps -efgrep rlogindgrep -v grep >jlog.tmp ps -efgrep telnetdgrep -v grep>>jlog.tmp ps -efgrep ftpdgrep -v grep >>jlog.tmp if [ -f jlog.tmp ] then echo “您的电脑已被下列计算机远程登录: ” echo “IP地址 以太网地址 登录方式 登录用户 进程号 登录时间” sort +4 jlog.tmp >jlog.ps rm jlog.tmp cat jlog.psgrep -v ftpd >jlog.pnet cat jlog.psgrep ftpd >jlog.pftp #区分远程登录方式 netstat -n grep ESTABLISHED>jlog.net if [ -f jlog.net ] then nsum=丶wc jlog.netawk ‘{print $1}’丶 i=0 while [ $i -lt $nsum ] do i=丶expr $i + 1丶 na=丶head -$i jlog.nettail -1丶 nmode=丶echo $na awk ‘{print $4}’cut -f5 -d.丶 if [“$nmode” -eq 21 -o “$nmode” -eq 23 -o “$nmode” -eq 513 ] then echo $na >>jlog.tmp fi done fi #获取以telnet、rlogin远程登录的计算机的登录关键信息 if [ -f jlog.pnet ] then cat jlog.tmpgrep -v “.21 ”awk ‘{print $5}’cut -f1,2,3,4 -d. >jlog.nett who sort +4 grep ttypawk ‘{print $1}’>jlog.who #获取远程登录计算机的总数 tsum=丶wc jlog.pnetawk ‘{print $1};’丶 i=0 while [ $i -lt $tsum ] do i=丶expr $i + 1丶 ta=丶head -$i jlog.pnettail -1丶 #获取远程登录的计算机的用户 tuser=丶head -$i jlog.whotail -1丶 #获取远程登录的计算机的IP地址 tip=丶tail -$i jlog.netthead -1丶 tb=丶head -$i jlog.pnettail -1awk ‘{print $8}’丶 #获取远程登录的计算机的登录方式 if [“$tb” = “telnetd” ] then tmode=“telnet” else tmode=“rlogin” fi #获取远程登录的计算机的登录时间 tpro=丶echo $taawk ‘{print $2}’丶 #获取远程登录的计算机的进程号 ttime=丶echo $taawk ‘{print $5}’丶 #获取远程登录的计算机的以太网地址 teth=丶arp -agrep $tip head -1awk ‘{print $4}’丶 if [“$teth” = “” ] then teth=“ ” fi echo “$tip $teth $tmode $tuser $tpro $ttime” done fi #获取以ftp远程登录的计算机关键信息 if [ -f jlog.pftp ] then cat jlog.tmpgrep “.21” awk ‘{print $5}’cut -f1,2,3,4 -d. >jlog.netf #获取以ftp远程登录的计算机的总数 fsum=丶wc jlog.pftpawk ‘{print $1}’丶 i=0 while [ $i -lt $fsum ] do i=丶expr $i + 1丶 fa=丶head -$i jlog.pftptail -1丶 #获取以ftp远程登录的计算机的用户 fuser=丶echo $faawk ‘{print $1}’丶 #获取以ftp远程登录的计算机的登录时间 ftime=丶echo $faawk ‘{print $5}’丶 #获取以ftp远程登录的计算机的IP地址 fip=丶tail -$i jlog.netfhead -1丶 #获取以ftp登录的计算机的登录方式 fb=丶echo $faawk ‘{print $8}’丶 fmode=“ftp” #获取以ftp登录的计算机的进程号 fpro=丶echo $faawk ‘{print $2}’丶 #获取以ftp登录的计算机以太网地址 feth=丶arp -agrep $fip head -1awk ‘{print $4}’丶 if [“$feth” = “” ] then feth=“ ” fi echo “$fip $feth $fmode $fuser $fpro $ftime” done fi else echo “未发现远程登录的计算机!” fi 以上程序在SCO openserver 5.0.5和Unix 3.2.4中调试通过。
上一篇:解析Elf文件DT_RPATH后门
下一篇:Snort入侵检测系统分析
|
| 监控和截获远程计算机的登录信息 相关文章: |
|
|
|
| 监控和截获远程计算机的登录信息 相关软件: |
|
|
|
|