跳板机安全防范规划:
跳板机-> 中心机 -> 后端服务器
跳板机:用来做跳板登陆中心机用的
中心机:一般用来做分发用的,用来登陆后端服务器
在内网:一般直接连中心机,然后直接连接后端服务器
在外网:为了安全,一般会先通过普通用户连接跳板机,然后再连接中心机,然后再在中心机连接后端服务器
注意:普通用户是不让登陆到跳板机终端的
三层目录跳板脚本实现功能:
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)普通用户登陆
2)第一层目录
3)第二层目录
4)第三层目录和登陆成功展示
注意:在三层任意一层普通用户都按crtl+c都是无效的,且在第三层选择exit退出会回到第二层,在第二层选择exit会回到第一层,在第一层选择exit会注销终端重新执行跳板脚本,普通用户是没法登陆到跳板机终端的,周知