Linux Shell Web超級終端工具shellinabox

安全劍客發表於2019-09-16

Shell 是 核心應用程式,是指“為使用者提供操作介面”的軟體,也是命令解析器,它類似於Windows作業系統DOS下的cmd.exe應用程式。它接收使用者命令,然後呼叫相應的應用程式,使用者一般管理Linux伺服器都是習慣用putty、Xshell、SecureCRT、secure shell等客戶端端工具,但是使用這些客戶端都是需要在本地安裝後才能使用,如果換其它電腦也是需要重新安裝,這樣非常使用起來非常麻煩,所以,我們今天就來介紹一塊非常方便的shell客戶端工具,使用系統自帶的瀏覽器來管理Linux服務終端,是一款能隨時在任何終端上面管理,這一款執行在linux下面的工具 shellinabox,只需要在Linux伺服器上面安裝並配置好shellinabox。

 

shellinabox 是由Markus Gutschke建立的基於Web的終端模擬器。它具有內建的Shell Web服務端,在指定埠上作為基於Web的SSH客戶端執行,並提示您使用任何支援AJAX/JavaScript和CSS的瀏覽器遠端訪問和控制Linux Server SSH Shell,而無需任何其他瀏覽器外掛,使用非常方便 ,不過安裝和配置是需要有點點Linux基礎,如果覺得自己完全不懂Linux,可以建議去購買 這本教程,非常適合初學者入門,或者去此教程的官網檢視詳細的資料,直接在百度輸入此書名就可以直接進入官網

 

shellinbox 是一款在Linux伺服器下有一個內建的web server作為基本的web ssh client,允許你透過指定的埠訪問linux伺服器的ssh shell,只要你的瀏覽器支援AJAX/JS/CSS就可以訪問,不過現在主流的作業系統自帶的瀏覽器都支援,shellinabox是一款開源的輕量級軟體,在安裝shellinabox之前要確定Linux服務端是否安裝了openssl庫;debian和ubuntu官方還提供有deb安裝包,而centos也有rpm包,也可以透過yum源安裝,安裝及配置也比較簡單,下面我們來詳細的安裝和配置shellinabox。

 

一、在RHEL、 CentOS系統上面安裝及配置步驟如下

# yum install openssl shellinabox

Loaded plugins: fastestmirror

Determining fastest mirrors

epel/x86_64/metalink                                                                            | 9.2 kB  00:00:00    

 * base: mirrors.aliyun.com

 * epel: mirrors.aliyun.com

 * extras: mirrors.aliyun.com

 * updates: mirrors.aliyun.com

base                                                                                            | 3.6 kB  00:00:00    

epel                                                                                            | 3.2 kB  00:00:00    

extras                                                                                          | 3.4 kB  00:00:00    

updates                                                                                         | 3.4 kB  00:00:00    

(1/6): extras/7/x86_64/primary_db                                                               | 156 kB  00:00:00    

(2/6): base/7/x86_64/group_gz                                                                   | 166 kB  00:00:01    

(3/6): epel/x86_64/updateinfo                                                                   | 940 kB  00:00:08    

(4/6): updates/7/x86_64/primary_db                                                              | 1.3 MB  00:00:10    

(5/6): epel/x86_64/primary                                                                      | 3.6 MB  00:00:21    

(6/6): base/7/x86_64/primary_db                                                                 | 6.0 MB  00:00:26    

epel                                                                                                       12745/12745

Resolving Dependencies

--> Running transaction check

---> Package openssl.x86_64 1:1.0.2k-12.el7 will be updated

---> Package openssl.x86_64 1:1.0.2k-16.el7 will be an update

--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.2k-16.el7 for package: 1:openssl-1.0.2k-16.el7.x86_64

---> Package shellinabox.x86_64 0:2.20-5.el7 will be installed

--> Running transaction check

---> Package openssl-libs.x86_64 1:1.0.2k-12.el7 will be updated

--> Processing Dependency: openssl-libs(x86-64) = 1:1.0.2k-12.el7 for package: 1:openssl-devel-1.0.2k-12.el7.x86_64

---> Package openssl-libs.x86_64 1:1.0.2k-16.el7 will be an update

--> Running transaction check

---> Package openssl-devel.x86_64 1:1.0.2k-12.el7 will be updated

---> Package openssl-devel.x86_64 1:1.0.2k-16.el7 will be an update

--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================

 Package                        Arch                    Version                            Repository             Size

======================================================================================

Installing:

 shellinabox                    x86_64                  2.20-5.el7                         epel                  136 k

Updating:

 openssl                        x86_64                  1:1.0.2k-16.el7                    base                  493 k

Updating for dependencies:

 openssl-devel                  x86_64                  1:1.0.2k-16.el7                    base                  1.5 M

 openssl-libs                   x86_64                  1:1.0.2k-16.el7                    base                  1.2 M

 

Transaction Summary

======================================================================================

Install  1 Package

Upgrade  1 Package (+2 Dependent packages)

 

Total download size: 3.3 M

Is this ok [y/d/N]: y

Downloading packages:

No Presto metadata available for base

(1/4): openssl-1.0.2k-16.el7.x86_64.rpm                                                         | 493 kB  00:00:01    

(2/4): shellinabox-2.20-5.el7.x86_64.rpm                                                        | 136 kB  00:00:01     

(3/4): openssl-devel-1.0.2k-16.el7.x86_64.rpm                                                   | 1.5 MB  00:00:05    

(4/4): openssl-libs-1.0.2k-16.el7.x86_64.rpm                                                    | 1.2 MB  00:00:05    

-----------------------------------------------------------------------------------------------------------------------

Total                                                                                  469 kB/s | 3.3 MB  00:00:07    

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Updating   : 1:openssl-libs-1.0.2k-16.el7.x86_64                                                                 1/7

  Updating   : 1:openssl-1.0.2k-16.el7.x86_64                                                                      2/7

  Installing : shellinabox-2.20-5.el7.x86_64                                                                       3/7

  Updating   : 1:openssl-devel-1.0.2k-16.el7.x86_64                                                                4/7

  Cleanup    : 1:openssl-devel-1.0.2k-12.el7.x86_64                                                                5/7

  Cleanup    : 1:openssl-1.0.2k-12.el7.x86_64                                                                      6/7

  Cleanup    : 1:openssl-libs-1.0.2k-12.el7.x86_64                                                                 7/7

  Verifying  : 1:openssl-libs-1.0.2k-16.el7.x86_64                                                                 1/7

  Verifying  : 1:openssl-devel-1.0.2k-16.el7.x86_64                                                                2/7

  Verifying  : shellinabox-2.20-5.el7.x86_64                                                                       3/7

  Verifying  : 1:openssl-1.0.2k-16.el7.x86_64                                                                      4/7

  Verifying  : 1:openssl-devel-1.0.2k-12.el7.x86_64                                                                5/7

  Verifying  : 1:openssl-1.0.2k-12.el7.x86_64                                                                      6/7

  Verifying  : 1:openssl-libs-1.0.2k-12.el7.x86_64                                                                 7/7

Installed:

  shellinabox.x86_64 0:2.20-5.el7                                                                                     

Updated:

  openssl.x86_64 1:1.0.2k-16.el7                                                                                      

Dependency Updated:

 openssl-devel.x86_64 1:1.0.2k-16.el7                       openssl-libs.x86_64 1:1.0.2k-16.el7                     

Complete!

 

二、 配置shellinaboxd

192.168.3.160 是SSH伺服器IP地址 ,

# vim /etc/sysconfig/shellinaboxd

# TCP port that shellinboxd's webserver listens on

PORT =6175

# specify the IP address of a destination SSH server

OPTS="-s /:SSH:192.168.3.160" #(https 協議)

#OPTS="-t -s /:SSH:192.168.3.160" #(http 協議)

# if you want to restrict access to shellinaboxd from localhost only

# 下面配置是僅主機訪問,其它主機不能訪問

#OPTS="-s /:SSH:192.168.3.160 --localhost-only"

 

shellinaboxd 預設埠是:4200,我這裡修改為6175。

 

Shellinaboxd 常用引數使用的幫助手冊

# shellinaboxd --help

List of command line options:

  -b, --background[=PIDFILE]  run in background

  -c, --cert=CERTDIR          set certificate dir (default: $PWD)

      --cert-fd=FD            set certificate file from fd

      --css=FILE              attach contents to CSS style sheet

      --cgi[=PORTMIN-PORTMAX] run as CGI

  -d, --debug                 enable debug mode

  -f, --static-file=URL:FILE  serve static file from URL path

  -g, --group=GID             switch to this group (default: nobody)

  -h, --help                  print this message

      --linkify=[none|normal|aggressive] default is "normal"

      --localhost-only        only listen on 127.0.0.1

      --no-beep               suppress all audio output

  -n, --numeric               do not resolve hostnames

  -m, --messages-origin=ORIGIN allow iframe message passing from origin

      --pidfile=PIDFILE       publish pid of daemon process

  -p, --port=PORT             select a port (default: 4200)

  -s, --service=SERVICE       define one or more services

  -t, --disable-ssl           disable transparent SSL support

      --disable-ssl-menu      disallow changing transport mode

      --disable-utmp-logging  disable logging to utmp and wtmp

  -q, --quiet                 turn off all messages

      --unixdomain-listen on unix socket

  -u, --user=UID              switch to this user (default: nobody)

      --user-css=STYLES       defines user-selectable CSS options

  -v, --verbose               enable logging messages

      --version               prints version information

      --disable-peer-check    disable peer check on a session

 

三、啟動、停止、自啟動服務

Centos 6

# service shellinaboxd start                   // 啟動服務   

# service shellinaboxd stop               // 停止服務

# service shellinaboxd restart            // 重啟服務

# chkconfig shellinaboxd on               // 自啟服務

 

Centos 7

# systemctl start shellinaboxd.service

# systemctl stop shellinaboxd.service

# systemctl restart shellinaboxd.service

# systemctl enable shellinaboxd.service

 

強制關閉 Shellinaboxd

查詢到 Shellinaboxd 的程式 pid ,kill 即可

# ps -aux|grep shellinaboxd | grep -v grep | awk ‘{print $1}’

也可在啟動時加上 -p 引數,將程式 pid 儲存到指定的檔案中,需要關閉時讀取它並進行 kill

 

四、檢視服務狀態

# netstat -nap | grep shellinabox

tcp      0      0 0.0.0.0:6175    0.0.0.0:*     LISTEN     118916/shellinaboxd

https://192.168.3.160:6175/

預設60s不登入自動斷開

登入成功

退出web Shell終端:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2657200/,如需轉載,請註明出處,否則將追究法律責任。

相關文章