SCO UNIX系统网络风险防范( 二 )
remote_ip=who -mx|awk ‘{print $6}"
PTTY=who -mx|awk ‘{ printf“%.4sn”, $2; }"
if [ “$PTTY” =“ttyp” ]
then
remote=who -mx
if [ -n “remote_ip” -a “x$remote_ip” != “x” ]
then
case $remote_ip in
130.30.1.100) echo “成功 $remote $LOGNAME” >> /usr/adm/telnet.log
130.30.1.201) echo “成功 $remote $LOGNAME” >> /usr/adm/telnet.log
sqls) echo “成功 $remote $LOGNAME”>> /usr/adm/telnet.log
*)
echo “被杀 $remote” >> /usr/adm/telnet.log
echo “ntt哈哈哈!你被我抓到了!你的地址($remote_ip)”
echo “ ”
exit
esac
fi
fi
以上代码用来记录远程登录到本机的历史,笔者创建的日志文件为/usr/adm/telnet.log,该文件会记录远程用户登录时的用户名、时间、终端号以及IP地址,可以随时查看此文件 。然后在所有用户的.profile文件里加入trap""0 1 2 3 14 15,屏蔽键盘中断,防止允许远程登录的主机用键盘中断进入操作系统的命令行提示符 。
5.清除SCO Unix系统中的大漏洞
完成上面的几步后,应该说已经比较安全了,但还是存在不安全因素,因为SCO Unix 有一个大BUG——任何普通用户都可以成为超级用户,笔者相信知道这个漏洞的人不会很多,但作为一个金融计算机工作者,有必要向国内所有同行提个醒,及早消除安全隐患 。可进行如下操作:
①用普通用户登录到系统,然后进入一个可以写的目录;
②ln /etc/shadow debug.log;
③/etc/sysadm.d/bin/userOsa >>ttt 。
则/etc/shadow文件被覆盖,任何人可以用/etc/passwd中存在的任何用户登录而无需密码 。若第二步改为ln /etc/passwd debug.log 则/etc/passwd被覆盖,谁也登录不上来了!之所以会出现这样的现象,主要是因为SCO Unix 中/etc/sysadm.d/bin/us-
erOsa 程序在运行时会生成一个名叫debug.log的文件,这个文件用户属于root 组,而且此程序有BUG,不会检查用户权限,因此可以覆盖任何文件,包括passwd和shadow 。你在一个可写目录中建立连接将某个文件指向debug.log文件,运行userOsa将出错信息写入debug.log文件时,实际上就覆盖了那个你想破坏的文件!奇怪的是,这个漏洞好像跟机器有关系,笔者单位有20%的计算机存在此漏洞,而其余的计算机做第二步连接时就报错 。要清除此漏洞,可用超级用户登录,进到/etc/sysadm.d/bin下,执行chmod o-x userOsa即可 。
推荐阅读
- SCO Unix系统文件的授权处理
- Win8系统中提高显卡性能具体操作步骤
- VMWare 中SCO的网络
- 手机卡的pin码怎么查
- UNIX下执行文件的减肥工具strip
- UNIX下用C写MODEM传输程序
- UnixWare 7.1安装
- X Window 系统使用指南--键盘和滑鼠--对应和参数
- UNIX SHELL脚本编程
- 对话 UNIX,第 4 部分: UNIX 所有权和权限管理