Web_ssh 通过paramiko,shellinabox实现

今天看见运维堡垒机,感觉很有意思,就学着搭建了一个简单的。可以实现进行中专,记录命令等基本功能。
原理:这里写图片描述
如图所示,运维区人员访问堡垒机,通过堡垒机再访问工作区域。在堡垒机上的一切操作,都将被记录下来,从而达到追踪目的。
而shellinabox则是将登陆过程web化。

shellinabox下载地址:

http://shellinabox.googlecode.com/files/shellinabox-2.14.tar.gz     #谷歌已经被封,挂VPN下载

或者各位大哥,打赏我一点积分,这里面有paramiko,shellinabox两个的包 :

https://download.csdn.net/download/zfx1997/10336230

=================================================
安装部署成功后,查看paramiko下的demos中的demo.py。该文件是封装SSH的,运行它可以连接登陆其余的主机。

168     print('*** Here we go!\n')
169     interactive.interactive_shell(chan)     ##运行后判断该句是调用的登陆模块
170     chan.close()
171     t.close()

再查看interactive.py:

 33 def interactive_shell(chan):
 34     if has_termios:
 35         posix_shell(chan)            ##很明显,linux系统调用的是posix_shell
 36     else:
 37         windows_shell(chan)

 40 def posix_shell(chan):
 41     #f=file('/tmp/audit.log','a+')   ##这句为我修改的,创建了一个file,可以往里面添加东西,其实就是添加执行的语句
 42     import select
 43     
 44     oldtty = termios.tcgetattr(sys.stdin)
 45     try:
 46         tty.setraw(sys.stdin.fileno())
 47         tty.setcbreak(sys.stdin.fileno())
 48         chan.settimeout(0.0)
 49         
 50         while True:
 51             r, w, e = select.select([chan, sys.stdin], [], [])
 52             if chan in r:
 53                 try:
 54                     x = u(chan.recv(1024))
 55                     if len(x) == 0:
 56                         sys.stdout.write('\r\n*** EOF\r\n')
 57                         break
 58                     sys.stdout.write(x)
 59                     sys.stdout.flush()
 60                 except socket.timeout:
 61                     pass
 62             if sys.stdin in r:
 63                 x = sys.stdin.read(1)
 64                 #f.write(x)             ##将输入行的命令写入我所创建的文件
 65                 #f.flush()            ##刷新
 66                 if len(x) == 0:
 67                     break
 68                 chan.send(x)
 69 
 70     finally:
 71         termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)

之后进行测试。通过demo.py连接一台主机。连接成功后,查看/tmp/audit.log是否有记录。

安装shellinabox后,修改登陆用户的.bashrc,使得该用户一登陆即执行demo.py文件
然后执行./shellinabox -t(可以跳过认证)
之后访问“主机IP:4200”进行登陆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值