Linux下堡垒机认证

加进自己的验证机制来控制ssh到某台Linux机的用户。

比如,给三个用户登进该Linux主机的权限。

用户名和密码 如下。

Lucy:123

Ben:456

Jerry:789

如果某个用户输入密码错误达到三次,则将该用户账户锁住。


也就是在ssh 登录之前进行验证。 

脚本如下

AccountFile=自行定义。


# pre


if [ ! -e $AccountFile ];then

        cat >$AccountFile<<EOF

Lucy:123:0

Ben:456:0

Jerry:789:0

EOF


fi                   如果文件不存在,使用默认

# main process

while true;do

        echo -e "\033[32m Welcome to Linux Club\033[0m"   输出欢迎菜单

    read -p "Please input your username: " username

    AccountUser=`awk -F: '{print $1}' $AccountFile`       awk获取文件的第一列,得到用户名

    # echo Account user is $AccountUser

    for Name in $AccountUser;do                                在文件的用户名中遍历查找与用户输入一致的

        if [ x$Name == x$username ];then

                        Pass=$(grep $username $AccountFile|awk -F: '{print $2}')

                                Count=$(grep $username $AccountFile|awk -F: '{print $3}')

                                if [ $Count -lt 3 ];then                                验证密码已经 错误的次数是否小于三次

                                read -s -p "Please input your passwd: " passwd

                                        echo ""

                                if [ x$Pass == x$passwd ];then

                                                sed -i "/$username/s/:[0-9]$/:0/" $AccountFile密码正确,将错误次数置零

                                                echo welcome

                                                bash

                                        else

                                                echo wrong pass

                                                let Count=$Count+1

                                                sed -i "/$username/s/:[0-9]$/:$Count/" $AccountFile 将错误次数写回文件

                                                break

                                        fi

                                else

                                        echo Your account has been locked

                                        exit 5

                                fi

                fi

        done

done



将该脚本加进/etc/profile里。

sh /root/xcui/account.sh


之后再ssh进来的运行结果如下:

wKiom1ltzVXhcEc1AAAjpqPzwmE925.png-wh_50

输入正确密码进入bash

wKioL1ltzcmy5awmAABM8BAIl1M905.png-wh_50

输入错误密码,大于三次时锁账户。