Raspberry Pi 的應用 - 瀏覽器不只可以當 SSH Client,居然還能變跳板

by 5月 16, 2016 2 意見        


我們已經在 [CentOS 7] 你說什麼?! 瀏覽器直接變身成 SSH Client 連上 Server 文章裡,讓瀏覽器變成了 SSH Client 端程式來連線,不過有些朋友提到直接在 SSH Server 本機裝套件、搶 80 Port 會不會太危險?!

的確,這樣子的資安考量是非常正確的。
既然如此 ,那我們可不可以用 Raspberry Pi 當跳板,變成另一台 SSH Server 的中繼介面呢???

事前準備

請先參閱  [Raspberry Pi 3] 老朋友,新功能!關於那些開箱後馬上要作的事,完成初始設定。


安裝 Wetty


這次用的方法與 [Raspberry P 3] 內建藍牙能幹嘛?來試試 Google 物聯網計畫的關鍵之一:Eddystone Beacon 如何! 裡的不同,我們直接從 node-arm 下載 *.deb 檔來安裝。
wget http://node-arm.herokuapp.com/node_latest_armhf.deb
sudo dpkg -i node_latest_armhf.deb

因為 wetty 放在 GitHub 上,為了日後更新方便,所以把 git 安裝起來。
sudo apt-get -y install git

再把 wetty 專案從 GitHub 複製下來。
git clone https://github.com/krishnasrinivas/wetty.git

開始安裝。
cd wetty
npm install

剛剛出現了一個錯誤訊息,提醒我們要更新 graceful-fs,依照它的提示來更新。
npm ls graceful-fs


啟動服務


先確認一下 Raspberry Pi 的 IP 位址。
ifconfig eth0 | grep inet

單純的用 HTTP 協定來啟動。
node app.js -p 8008

按 Ctrl + C 可以停止。

如果要走 HTTPS 協定的話,要先產生金鑰和憑證。
openssl req -x509 -newkey rsa:2048 -keyout wetty-key.pem -out wetty-cert.pem -days 1825 -nodes

接著加上指定參數就可以用 HTTPS協定來啟動。
node app.js --sslkey wetty-key.pem --sslcert wetty-cert.pem -p 8080


連線測試


打開瀏覽器,輸入 Raspberry Pi 的 IP 位址與 wetty 的通訊埠,就可以連上了。
http://192.168.88.23:8008

如果走 HTTPS 協定的話,會多一個確認憑證的畫面。
https://192.168.88.23:8008

同樣可以正確的連上 Raspberry Pi 的 SSH Server 了。


說好的跳板呢?


有些朋友或許會因為安全的考量,把 SSH Server 預設的通訊埠改掉,例如從 22 改成了 12345,那 Wetty 同樣可以使用嗎?

如果我們什麼參數都沒改,當然會連不上去。

同時 Wetty 也會吐一堆錯誤訊息給我們。

所以,我們要加上一些參數:
  • --sshhost 指定 SSH Server 的 IP 位址或 Domain Name。
  • --sshport 指定 SSH Server 的通訊埠。
  • --sshuser 指定登入 SSH Server 的帳號。
我們指定 wetty 走 HTTP 協定,通訊埠是 8008,SSH Server 的 IP 是 127.0.0.1,通訊埠是 12345,登入的帳號改用 root。
node app.js -p 8008 --sshhost 127.0.0.1 --sshport 12345 --sshuser root

這時候再用瀏覽器連線上去,就看到訊息不一樣了,可以正確的跟 SSH Server 互動,只不過 root 帳號預設是不准登入的,所以告訴我們權限被拒。

既然有這些參數可以用,那可以用在其他台 SSH Server 上面嗎?

試試看不就知道了,我們就來連連看 CentOS 7 上面的 SSH Server 好了。

結果證明是可行的。


參考資料


圖片來源

  • https://pixabay.com
  • https://www.raspberrypi.org/

更新紀錄

  • 2016/05/16 撰文。

Heracles Jam,江湖人稱「海公公」

IT 技術家 - 創站部落客

一個常用 Windows、慣用 macOS、愛用 Linux 的 3C 阿宅
現職 MIS / 業界講師 / 資訊顧問 / 部落客

2 則留言 :

  1. 奇怪,我試好幾次都無法跳轉耶?

    回覆刪除
    回覆
    1. 幾個重點檢查一下:
      1. Raspberry Pi 本機的 SSH 可不可以用 wetty 連上去
      2. 別台 SSH Server 是否正常
      3. 別台 SSH Server 是否有轉 port、對外的防火牆有沒有開 port forwarding

      刪除