Ubuntn16 部署shellinabox--web shell工具

shellinabox简介

    一般状况下,咱们在访问任何远程服务器时,会使用常见的通讯工具如OpenSSH和Putty等。可是,有可能咱们在防火墙后面不能使用这些工具访问远程系统,或者防火墙只容许HTTPS流量才能经过。不用担忧!即便你在这样的防火墙后面,咱们依然有办法来访问你的远程系统。并且,你不须要安装任何相似于OpenSSH或Putty的通信工具。你只须要有一个支持JavaScript和CSS的现代浏览器,而且你不用安装任何插件或第三方应用软件。css

这个 Shell In A Box,发音是shellinabox,是由Markus Gutschke开发的一款自由开源的基于Web的Ajax的终端模拟器。它使用AJAX技术,经过Web浏览器提供了相似原生的 Shell 的外观和感觉。linux


这个shellinaboxd守护进程实现了一个Web服务器,可以侦听指定的端口。其Web服务器能够发布一个或多个服务,这些服务显示在用 AJAX Web 应用实现的VT100模拟器中。默认状况下,端口为4200。你能够更改默认端口到任意选择的任意端口号。在你的远程服务器安装shellinabox之后,若是你想从本地系统接入,打开Web浏览器并导航到:http://IP-Address:4200/。输入你的用户名和密码,而后就能够开始使用你远程系统的Shell。看起来颇有趣,不是吗?确实 有趣!web

免责声明:shell

shellinabox不是SSH客户端或任何安全软件。它仅仅是一个应用程序,可以经过Web浏览器模拟一个远程系统的Shell。同时,它和SSH没有任何关系。这不是可靠的安全地远程控制您的系统的方式。这只是迄今为止最简单的方法之一。不管如何,你都不该该在任何公共网络上运行它。浏览器

 

安装shellinabox

 

在Debian / Ubuntu系统上:

shellinabox在默认库是可用的。因此,你可使用命令来安装它:安全

  1. $ sudo apt-get install shellinabox服务器

 

在RHEL / CentOS系统上:

首先,使用命令安装EPEL仓库:网络

  1. # yum install epel-releasetcp

而后,使用命令安装shellinabox:ide

  1. # yum install shellinabox

完成!

 

配置shellinabox

正如我以前提到的,shellinabox侦听端口默认为4200。你能够将此端口更改成任意数字,以防别人猜到。

在Debian/Ubuntu系统上shellinabox配置文件的默认位置是/etc/default/shellinabox。在RHEL/CentOS/Fedora上,默认位置在/etc/sysconfig/shellinaboxd

若是要更改默认端口,

在Debian / Ubuntu:

  1. $ sudo vi /etc/default/shellinabox

在RHEL / CentOS / Fedora:

  1. # vi /etc/sysconfig/shellinaboxd

更改你的端口到任意数字。由于我在本地网络上测试它,因此我使用默认值。

  1. # Shell in a box daemon configuration

  2. # For details see shellinaboxd man page

  3. # Basic options

  4. USER=shellinabox

  5. GROUP=shellinabox

  6. CERTDIR=/var/lib/shellinabox

  7. PORT=4200

  8. OPTS="--disable-ssl-menu -s /:LOGIN"

  9. # Additional examples with custom options:

  10. # Fancy configuration with right-click menu choice for black-on-white:

  11. # OPTS="--user-css Normal:+black-on-white.css,Reverse:-white-on-black.css --disable-ssl-menu -s /:LOGIN"

  12. # Simple configuration for running it as an SSH console with SSL disabled:

  13. # OPTS="-t -s /:SSH:host.example.com"

重启shelinabox服务。

在Debian/Ubuntu:

  1. $ sudo systemctl restart shellinabox

或者

  1. $ sudo service shellinabox restart

在RHEL/CentOS系统,运行下面的命令能在每次重启时自动启动shellinaboxd服务

  1. # systemctl enable shellinaboxd

或者

  1. # chkconfig shellinaboxd on

若是你正在运行一个防火墙,记得要打开端口4200或任何你指定的端口。

例如,在RHEL/CentOS系统,你能够以下图所示容许端口。

  1. # firewall-cmd --permanent --add-port=4200/tcp
    # firewall-cmd --reload

 

使用

如今,在你的客户端系统,打开Web浏览器并导航到:https://ip-address-of-remote-servers:4200

注意:若是你改变了端口,请填写修改后的端口。

你会获得一个证书问题的警告信息。接受该证书并继续。

并且注意访问URL时记得用“https”的方式


输入远程系统的用户名和密码。如今,您就可以从浏览器自己访问远程系统的外壳。

wKioL1mRWviwUYApAAEX5KvUynw549.png

右键点击你浏览器的空白位置。你能够获得一些有颇有用的额外菜单选项。

wKioL1mRW4XTyVJcAAD083Snltc341.png


从如今开始,你能够经过本地系统的Web浏览器在你的远程服务器随意操做。

当你完成工做时,记得输入exit退出。

当再次链接到远程系统时,单击链接按钮,而后输入远程服务器的用户名和密码。

wKioL1mRW-7xxpMAAACrpXgDOOc929.png

若是想了解shellinabox更多细节,在你的终端键入下面的命令:

# man shellinabox

或者

# shellinaboxd -help

同时,参考shellinabox 在wiki页面的介绍,来了解shellinabox的综合使用细节。

 

结论

正如我以前提到的,若是你在服务器运行在防火墙后面,那么基于web的SSH工具是很是有用的。有许多基于web的SSH工具,但shellinabox是很是简单而有用的工具,能够从的网络上的任何地方,模拟一个远程系统的Shell。由于它是基于浏览器的,因此你能够从任何设备访问您的远程服务器,只要你有一个支持JavaScript和CSS的浏览器。

相关文章
相关标签/搜索