监控和截获远程计算机的登录信息
随着计算机的普及,企业局域网中的计算机越来越多。许多计算机具备用telnet、rlogin、ftp、rcmd等远程登录方式进入服务器的能力。而在实际工作中各联网计算机之间相互远程登录进行业务处理的情况也是日益频繁,如何对这些登录计算机进行监控呢?
问题的提出
网络监管是各种服务器管理的重中之重。如果有一款简捷实用的Unix网络监控软件,该软件能迅速截获并显示所有远程登录计算机的IP地址、以太网地址、远程登录方式、远程登录的用户身份、远程登录的具体时间以及远程登录的进程号,打入命令后即可全方位监控远程登录计算机的各种关键信息,将会给网管人员的工作带来极大的方便。经过一段时间的试验,我们用Shell语言编制了这款监控和截获远程登录计算机的全方位信息的程序,实践效果较好。运行后,所有远程登录计算机的全部关键信息都一目了然地显示出来。一旦发现有非法远程登录者,只须用kill命令杀掉本程序显示的相应的进程号即可迅速清除该非法远程入侵者。
问题的解决
以下是该程序的具体代码,其中netstat命令用于获取远程登录计算机的IP地址,arp命令用于获取远程登录计算机的以太网地址。
rm jlog.*
#检查有无远程登录的计算机
ps -ef|grep rlogind|grep -v grep >jlog.tmp
ps -ef|grep telnetd|grep -v grep>>jlog.tmp
ps -ef|grep ftpd|grep -v grep >>jlog.tmp
if [ -f jlog.tmp ]
then
echo “您的电脑已被下列计算机远程登录: ”
echo “IP地址 以太网地址 登录方式 登录用户 进程号 登录时间”
sort +4 jlog.tmp >jlog.ps
rm jlog.tmp
cat jlog.ps|grep -v ftpd >jlog.pnet
cat jlog.ps|grep ftpd >jlog.pftp
#区分远程登录方式
netstat -n |grep ESTABLISHED>jlog.net
if [ -f jlog.net ]
then
nsum=丶wc jlog.net|awk ‘{print $1}@#丶
i=0
while [ $i -lt $nsum ]
do
i=丶expr $i + 1丶
na=丶head -$i jlog.net|tail -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.tmp|grep -v “.21 ”|awk ‘{print $5}@#|cut -f1,2,3,4 -d. >jlog.nett
who |sort +4 |grep ttyp|awk ‘{print $1}@#>jlog.who
#获取远程登录计算机的总数
tsum=丶wc jlog.pnet|awk ‘{print $1};@#丶
i=0
while [ $i -lt $tsum ]
do
i=丶expr $i + 1丶
ta=丶head -$i jlog.pnet|tail -1丶
#获取远程登录的计算机的用户
tuser=丶head -$i jlog.who|tail -1丶
#获取远程登录的计算机的IP地址
tip=丶tail -$i jlog.nett|head -1丶
tb=丶head -$i jlog.pnet|tail -1|awk ‘{print $8}@#丶
#获取远程登录的计算机的登录方式
if [“$tb” = “telnetd” ]
then
tmode=“telnet”
else
tmode=“rlogin”
fi
#获取远程登录的计算机的登录时间
tpro=丶echo $ta|awk ‘{print $2}@#丶
#获取远程登录的计算机的进程号
ttime=丶echo $ta|awk ‘{print $5}@#丶
#获取远程登录的计算机的以太网地址
teth=丶arp -a|grep $tip |head -1|awk ‘{print $4}@#丶
if [“$teth” = “” ]
then
teth=“ ”
fi
echo “$tip $teth $tmode $tuser $tpro $ttime”
done
fi
#获取以ftp远程登录的计算机关键信息
if [ -f jlog.pftp ]
then
cat jlog.tmp|grep “.21” |awk ‘{print $5}@#|cut -f1,2,3,4 -d. >jlog.netf
#获取以ftp远程登录的计算机的总数
fsum=丶wc jlog.pftp|awk ‘{print $1}@#丶
i=0
while [ $i -lt $fsum ]
do
i=丶expr $i + 1丶
fa=丶head -$i jlog.pftp|tail -1丶
#获取以ftp远程登录的计算机的用户
fuser=丶echo $fa|awk ‘{print $1}@#丶
#获取以ftp远程登录的计算机的登录时间
ftime=丶echo $fa|awk ‘{print $5}@#丶
#获取以ftp远程登录的计算机的IP地址
fip=丶tail -$i jlog.netf|head -1丶
#获取以ftp登录的计算机的登录方式
fb=丶echo $fa|awk ‘{print $8}@#丶
fmode=“ftp”
#获取以ftp登录的计算机的进程号
fpro=丶echo $fa|awk ‘{print $2}@#丶
#获取以ftp登录的计算机以太网地址
feth=丶arp -a|grep $fip |head -1|awk ‘{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中调试通过。
- · sco 5.0.5上安装j2sdk
- · 用户安全
- · 关于计算机安全问题的论述
- · Unixware7目录层次结构和文件类型
- · 一台磁带机在两台scounix 使用大家参考
- · 在SCO OpenServer 5中用configure配置核心参数(一)
- · 在SCO OpenServer 5中用configure配置核心参数(二)
- · 在SCO OpenServer 5中用configure配置核心参数(三)
- · 在SCO OpenServer 5中用configure配置核心参数(四)
- · 在SCO OpenServer 5中用configure配置核心参数(五)
- · 在SCO OpenServer 5中用configure配置核心参数详解
- · SCO UNIX作业调度
- · UNIX下执行文件的减肥工具strip
- · 限制IP登录
- · uuencode编码和解码
- · 金融领域UNIX网络系统的安全管理策略
- · 文件特殊权限的解释
- · 从服务器能够到达的所有网络设备里面提取设备配置信息
- · 从服务器能够到达的所有网络设备里面提取设备配置信息
- · SQL SERVER 11.0.x FOR SCO OPENSERVER 5
- · unix下的动态链接库
- · 在UNIX 系统下得到字符点阵信息
- · 怎样在UNIX系统中使用自定义功能键
- · 如何自动杀死UNIX僵死的进程
- · 构建Apache+PHP4+MySQL+PGSQL for UnixWare 7.1.1
- · 装载----"菜鸟"救盘记
- · SCO OPENSERVER 下custom发布软件的制作方法
- · SCO OPENSERVER上安装apache
- · SCO UNIX做简单路由器
- · UNIX中的文件切割
- · SCO UNIX5 的打印管理
- · 构建SCO UNIX下的Web服务器
- · 关于Informix数据库灵活备份的探讨
- · Informix-Online数据库的查询优化策略
- · SCO UNIX系统网络风险防范
- · 在Unix系统下用shell制作通用界面
- · 自动杀死Unix僵死的进程
- · UNIX文件系统的挽救技巧
