2014-02-13 40 views
1

我有一個運行Fedora的基於Linux的Web服務器。我已經創建並託管了幾個HTML頁面。在該Web服務器的HTML頁面中提供Shell

我有此服務器上運行,但必須是所有用戶訪問,從他們的瀏覽器

我還沒有開始信息提供CLI工具,這些都是我的要求

  1. 如何提供服務器shell(BASH)通過HTML頁面?有哪些軟件可以實現?
  2. 我可以提供自動登錄的shell嗎?

我只是想避免打開SSH會話到服務器的多個用戶。我還可以使用HTML頁面提供指令和終端訪問。

+0

有一個一定的可能性,以打開外殼或通過PHP執行命令,但我真的不想推薦那。爲什麼SSH不是解決方案? – frlan

+0

是的,SSH是一個直接的解決方案。如果可行,我正在尋找任何替代品。此外,Web服務器位於專用網絡上。安全性是基於PHP的解決方案的唯一問題嗎? –

+0

@bhp:好的......安全性應該是你不在網上做某些事情的首要原因之一;)但事實上,無論你將要部署什麼解決方案,你都必須用用戶帳號和密碼來模糊,你的服務,防止他們以及用戶權利 - 誰可以做什麼。 – frlan

回答

3

ShellInABox出現通過Ajax提供一種有色終端接口的瀏覽器。 (homepage)由於它作爲單獨的網絡服務器運行,因此可能需要將用戶鏈接到站點上的其他端口。那裏肯定有更多的替代品(像這樣的其他項目)。

以下建議適用,無論您使用ShellInABox或繼續提供SSH訪問。

如果你不完全瞭解和信任所有你的用戶,再假設其中至少有一個是whizzkid 餅乾,決心崩潰打入您的系統。他可能會嘗試做的第一件事是登錄並運行forkbomb

因此,您應該盡力爲沙箱用戶,以便它們不會損害系統或彼此。將他們的訪問權限(文件/文件夾/網絡訪問權限)限制爲完成您允許的任務所需的權限。 SELinux和AppArmor爲此提供了設施。你可以找到更多的沙盒技術herehereDocker是一個值得研究的新系統。

這將是非常明智的,從你的主要的Web服務器託管單獨虛擬機上登錄服務器,層次分明,讓誰做任何用戶成功突破了沙箱會不會在同一機器作爲您的其他服務。 (但是請注意,他仍然會在你的局域網內!)User-mode-linux是一個不太安全的選擇,而且chroot更糟糕,但總比沒有好!

如果用戶應該能夠保存文件,那麼我會建議爲每個用戶分配一個單獨的賬號,特別是如果他們的文件應會話之間保持。當然,作爲一種解決辦法是自動登錄你可以爲所有用戶提供一個guest帳戶密碼guest555,但隨後,惡意用戶可以通過刪除文件或將骯髒的東西在shell啓動腳本麻煩別人。 (當然,我不建議guest/guest因爲餅乾定期掃描網的SSH服務器託管帳戶!)

+0

我運行了'shellinabox'。我可以通過瀏覽器訪問我的服務器終端,這非常棒。 Docker似乎也是我打算實現的。我將探討這一點。謝謝。 –

相關問題