|
其实就是个小玩意,论坛有发过的,这里总结再加自己的:
SSH代理-openssh定时改密码+断开用户脚本:
#!/bin/bash
#使用expect生成8位数字密码,并应用为用户freessh的密码
pass=`mkpasswd -l 8 -d 8 -c 0 -C 0 -s 0 freessh`
#保存新密码到password.txt-路径自定义
echo $pass > password.txt
#结束用户freessh的所有进程
killall -u freessh
SSH代理-dropbear定时改密码+断开用户脚本:
改密码的就不用多说了,同openssh
dropbear断开用户想到两个方案,
一个是另开一个端口专门用来做定时密码,这样知道这个端口对应的父进程,然后获取下面的子进程,然后kill掉:
#! /bin/sh
#获取dropbear -p 505所有父进程为1的PID
pidf=`ps -ef|grep "dropbear -p 505"|awk '{if(1==$3){print $2}}'`
for pid in ${pidf}
do
#获取父进程为pid的子进程PID。
pidc=`ps -ef|grep "dropbear -p 505"|awk '{if('$pid'==$3){print $2}}'`
for pidd in ${pidc}
do
kill ${pidd}
done
done
(备注:大多数情况用一个循环也可以)
第二个就是根据日志获取用户名为freessh的所有pid,然后kill掉:
#!/bin/bash
for ipad in $(netstat -apn|grep dropbear|awk -F ":" '{print $2}' |awk -F ' ' '{print $2}' |sed '/^$/d' |sort|uniq )
do
for ipadd in $(cat /var/log/secure | awk '/'$ipad'/&&/freessh/&&/succeeded/'|tail -n 1 |awk -F '[' '{print $2}' |awk -F ']' '{print $1}' )
do
kill $ipadd
done
done
(备注:这个是基于IP地址判断的,会忽略一些局域网同IP用户)
脚本搞好后,最后设置好执行权限+定时任务。发布到网页上也有不少方法,以后更新吧,该睡觉了。

[ 本帖最后由 SSH自动开通 于 2011-12-18 10:15 编辑 ] |
评分
-
查看全部评分
|