Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1536501
  • 博文数量: 416
  • 博客积分: 10061
  • 博客等级: 上将
  • 技术积分: 3287
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-05 11:12
个人简介

技术在于专研

文章分类

全部博文(416)

文章存档

2021年(3)

2015年(34)

2013年(2)

2012年(1)

2011年(2)

2010年(5)

2007年(344)

2006年(25)

分类: LINUX

2007-09-22 12:36:27

用户在登录时, 验证完passwd后, 根据shell的不同, 系统首先执行/etc下的某个
文件. sh,ksh是profile, csh是csh.cshrc, bash是bashrc. 在这时对用户登陆地点
加以验证, 可防止某些可能的intruder. 下面是我用在西门子RM600并行机上的
/etc/profile的一段程序.

....
....
# check for authenication
if [ -r /etc/checkfrom.awk ]; then
VALID=`finger | awk -f /etc/checkfrom.awk`
if [ "$VALID" != "WELCOME" ]; then
echo "Intruder, GET AWAY FROM HERE!!!"
exit
fi
fi
.....
......

/etc/checkfrom.awk是一个awk程序, 内容如下:

BEGIN {site["aft01"]=1;
site["aft02"]=1;
site["aft03"]=1;
site["aft04"]=1;
site["aft05"]=1;
site["rs6000"]=1;
}
$1==ENVIRON["LOGNAME"] {
if ($NF !~ /[0-9]+:[0-9]+/){
i = NF - 3
if("/dev/"$i == ENVIRON["TTY"]){
if(ENVIRON["TTY"] != "/dev/console"){
if($NF in site)print "WELCOME"
else print "GETAWAY"
}
else print "WELCOME"
exit 0
}
}
else{
i = NF - 2
if("/dev/"$i == ENVIRON["TTY"]){
print "WELCOME"
exit 0
}
}
}

注: 请注意你的机器上的finger显示的格式, 我机器上的格式如下:
$ finger
lsad% finger
Login Name TTY Idle When Where
tiger Wang Shuhu console Mon 00:41
lsad%
上面的awk程序是针对这种格式编写的, 仅供参考.

 
阅读(930) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~