跳板机安全防范规划:

跳板机-> 中心机 -> 后端服务器

跳板机:用来做跳板登陆中心机用的

中心机:一般用来做分发用的,用来登陆后端服务器

在内网:一般直接连中心机,然后直接连接后端服务器

在外网:为了安全,一般会先通过普通用户连接跳板机,然后再连接中心机,然后再在中心机连接后端服务器

注意:普通用户是不让登陆到跳板机终端的


三层目录跳板脚本实现功能:

1、通过普通用户连接跳板再直接连接后端服务器

2、ssh+key认证,CRT代理转发功能开启,自别识别用户,无需用户再输入用户名、密码和端口

3、trap信号捕捉不允许用户Crtl+C退出脚本,跳板脚本普通用户一登陆就会自动运行

注意:这里只展示qqandroid平台的其中一台服务器的ssh连接,其他平台服务器的ip连接原理一样



#创建脚本目录

mkdir -p /scripts/tiaoban/{qqandroid,qqios,qqwxandroid,wxios}


#禁止普通用户登陆

cat /etc/profile.d/tiaoban.sh
[ $UID -ne 0 ] && . /scripts/tiaoban/tiaoban.sh


#脚本目录结构

[root@Master /]# tree /scripts/tiaoban/
/scripts/tiaoban/
├── qqandroid
│   ├── 1_100.sh
│   ├── ip.txt
│   └── qqandroid.sh
├── qqios
├── qqwxandroid
├── tiaoban.sh
└── wxios

4 directories, 4 files


#跳板脚本第一层目录,

cat /scripts/tiaoban/tiaoban.sh                             
#!/bin/bash
function trapper() {
trap ':' 1 2 3 20 15
}
while :
do 
trapper
clear
cat <<menu                       
    1)qqandroid 
    2)qqios(功能未开发)
    3)wxandroid(功能未开发)
    4)wxios(功能未开发)
    5)exit
menu
read -p 'please select a num:' num
case "$num" in
1)
 sh /scripts/tiaoban/qqandroid/qqandroid.sh
 ;;
2)
 sh /scripts/tiaoban/qqios/qqios.sh
 ;;
3)
 sh /scripts/tiaoban/wxandroid/wxandroid.sh
 ;;
4)
 sh /scripts/tiaoban/wxios/wxios.sh
 ;;
5)
 exit
 esac
done


#跳板机脚本第二层目录 

cat /scripts/tiaoban/qqandroid/qqandroid.sh
#!/bin/bash
function trapper() {
        trap ':' 1 2 3 20 15
}
while :
do
        trapper
        clear
        cat <<menu                     
        1)qqandroid1-100服
        2)qqandroid101-200服(功能未开发)
        3)qqandroid201-300服(功能未开发)
        4)qqandroid301-400服(功能未开发)
        5)返回上一级
        6)exit
menu
read -p 'please select a num:' num
case "$num" in
1)
 sh /scripts/tiaoban/qqandroid/1_100.sh
 ;;
2)
 sh /scripts/tiaoban/qqandroid/101_200.sh
 ;;
3)
 sh /scripts/tiaoban/qqandroid/201_300.sh
 ;;
4)
 sh /scripts/tiaoban/qqandroid/301_400.sh
 ;;
5)
 sh /scripts/tiaoban/tiaoban.sh
 ;;
6)
 exit
 esac
done


#跳板机脚本第三层目录

cat /scripts/tiaoban/qqandroid/1_100.sh
#!/bin/bash
function trapper() {
        trap ':' 1 2 3 20 15
}
while :
do                                    
        trapper
        clear
        cat <<menu               
        1)qqandroid1服
        2)qqandroid2服(功能未开发)
        3)qqandroid3服(功能未开发)
        4)qqandroid...服(功能未开发)
        5)返回上一级目录
        6)返回首页
        7)退出
menu
read -p 'please select a num:' num
function connect() {
        yh=`id`
        user=`echo $yh | awk -F" " '{print $2}' | awk -F"gid=" '{print $2}' | awk -F"(" '{print $2}' | awk -F")" '{print $1}'`
        ip=`head -$num /scripts/tiaoban/qqandroid/ip.txt | tail -1`
        ssh -p 22 $user@$ip
}
if [ "$num" == 5 ];then
        sh /scripts/tiaoban/qqandroid/qqandroid.sh
elif [ "$num" == 6 ];then
        sh /scripts/tiaoban/tiaoban.sh
else
        connect
fi
done


#ip.txt文件展示

[root@Master ~]# cat /scripts/tiaoban/qqandroid/ip.txt 
192.168.17.215
192.168.17.216
192.168.17.217
192.168.17.218
192.168.17.219
192.168.17.220
192.168.17.221
192.168.17.222
192.168.17.223
192.168.17.224
192.168.17.225


#脚本执行展示

 1)普通用户登陆

wKioL1dqpy2y2umGAACcUuLyiY0667.png-wh_50


 2)第一层目录

wKiom1dqp0ziUdcTAABOE6pB-cs739.png-wh_50


 3)第二层目录

wKiom1dqp2bC-nVpAABi-nxFlt8270.png-wh_50


 4)第三层目录和登陆成功展示

wKioL1dqp4zjK0mgAAD_cc_pWdo917.png-wh_50


注意:在三层任意一层普通用户都按crtl+c都是无效的,且在第三层选择exit退出会回到第二层,在第二层选择exit会回到第一层,在第一层选择exit会注销终端重新执行跳板脚本,普通用户是没法登陆到跳板机终端的,周知