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的瀏覽器。

相關文章
相關標籤/搜索