会员登陆  支付方式  联系我们  在线客服  网站地图       
首页 关于域浪 互联网数据中心业务、主机托管、主机租用、机架租用、带宽租用、机房介绍、机房对比、CCN网络加速 adsl专线、深圳adsl专线 虚拟主机、域名注册、数据库、企业邮局、动态域名 网络安全、网络临近平台、安全服务、防火去墙租用、安全产品、域浪抗DDOS防火墙、NetScreen防火墙 技术支持  
   当前位置:首页 >> 技术支持 >> SHELL技巧 >> 在LinuxShell程序中进行身份验证
 
精华文章
    AIX shell工具集  
    I/O重定向 详解及例子  
    Shell 编程实例集锦  
    Linux下Shell基础知识...  
    Linux下Shell基础知识...  
    Linux下Shell基础知识...  
    Linux下Shell基础知识...  
    Linux Shell 下的输出...  
    几个shell程序设计小知...  
    几种常见shell简介  
    shell基础十二篇  
    Shell编程基础  
    Bourne Shell及shell编...  
    shell命令(三)  
    shell命令(二)  
    shell命令(一)  
    shell基础:输入和输出...  
    shell命令  
    shell编程入门及脚本测...  
    Linux Shells简介  
    TCSH Shell编程  
    Korn Shell编程  
    Shell基础及编程(二)  
    Shell基础及编程(一)  
    shell基础知识  
    shell编程例子 -- 一个...  
    在LinuxShell程序中进...  
    SHELL病毒简介  
  更多>>  
   SHELL技巧
 在LinuxShell程序中进行身份验证
一.缘起 



    Linux系统管理员常常碰到的头痛问题是,在确定系统没有被入侵的前提下,不知道哪个人不小心运行了某个特定用途的Shell程序,把系统搞得一塌糊涂。而且,系统记录显示该人使用的是公用帐号(root或者admin),你无法知道这个人在现实生活中具体对应的是哪一人。 



二.开场



    针对以上问题,解决方案有二:其一,追查时间和ip,根据时间和ip,可以追查到该人是从哪里出来的。这套解决方案只能确定以某人为首的一群可疑人。if大家都是通过代理连服务器的话,那除了one by one查log之外更无良策了。其二,在Shell程序中通过身份验证记录log,明确责任。 



三.求解



本文利用Qmail作者D. J. Bernstein大师编写的checkpassword工具进行身份验证。



1. 下载:

http://cr.yp.to/checkpwd/checkpassword-0.90.tar.gz



2. 安装:

tar xvfz checkpassword-0.90.tar.gz

cd checkpassword-0.90

make

make setup check



3. 如果可执行文件checkpassword没有在/bin下出现的话,goto 1 



再加上下面这段程序就大功告成了: 

--------------------------------

#!/bin/sh

#

# Filename: auth.sh

# Author: hutuworm 

# @Copyleft 2003 hutuworm.org

#

function auth_failed () {

echo "你耍我啊?"

exit 1

}

echo "※※※※※※※※※※※"

echo "※猪圈重地 闲人莫入※"

echo "※※※※※※※※※※※"

printf "请输入帐号:"

read ACCOUNT

if [ $ACCOUNT = 'admin' -o $ACCOUNT = 'root' ]

then

echo "本圈不欢迎admin&root!"

exit 1

fi

printf "请输入密码:"

stty -echo

read PASSWORD

stty echo

echo ""

printf "$ACCOUNT\0$PASSWORD\0Y123456\0" | /bin/checkpassword logger "$ACCOUNT used auth.sh" 3<&0 || auth_failed

echo "欢迎光临糊涂馋寺附属斋堂之猪圈! :P"

--------------------------------



四.验收 



$ chmod +x auth.sh

$

$ ./auth.sh 

※※※※※※※※※※※

※猪圈重地 闲人莫入※

※※※※※※※※※※※

请输入帐号:hutuworm

请输入密码:

你耍我啊?

$

$ ./auth.sh 

※※※※※※※※※※※

※猪圈重地 闲人莫入※

※※※※※※※※※※※

请输入帐号:admin

请输入密码:

本圈不欢迎admin&root!

$

$ ./auth.sh 

※※※※※※※※※※※

※猪圈重地 闲人莫入※

※※※※※※※※※※※

请输入帐号:hutuworm

请输入密码:

欢迎光临糊涂馋寺附属斋堂之猪圈! :P

$

$ tail -1 /var/log/messages

May 5 13:51:45 hutuworm.org 5月 5 13:51:45 logger: hutuworm used auth.sh
  • 上一篇文章: shell编程例子 -- 一个简单的目录菜单
  • 下一篇文章: SHELL病毒简介
  • 域浪网络ISP经营许可证 深圳地址:深圳市罗湖区宝安北路国际商品交易大厦七楼C30室
    Tel:0755-82266883/82267566 Fax:0755-82261966
    邮编:518000 
                        Copyright © 2006-2008 elang.cn All Rights Reserved 深圳市域浪网络技术有限公司版权所有