Linux
Nginx + 乘客多主機的安全最佳實踐
我計劃為基於機架的 ruby 框架提供免費的多主機,使用 nginx 和乘客來服務這些應用程序。我正在研究幾個選項,我想就多主機環境中此類設置的最佳安全實踐徵求一些建議:
- 我正在研究的第一個選項是基於 Web 的前端,它允許使用者上傳他們的應用程序。為了使其相當自動化,我可以建構一個解析器來檢查 ruby/框架程式碼是否不包含任何惡意命令,例如 %x( 和其他命令。我不確定是否真的有可能涵蓋所有可能性,但這應該是由於在上傳時創建了一個 unix 使用者(連同一個 nginx 子域),並且上傳的應用程序將在使用者目錄內執行,並且該使用者在他自己的目錄之外沒有特殊的伺服器範圍的權限,這一事實減輕了這種影響;
- 第二個選項是允許 sftp 訪問(或 sftp/ssh 訪問),而在其目錄之外基本上沒有權限。在這種情況下,必須對成員進行篩選(訂閱表格),但可能會提供更大的靈活性。
根據您的經驗,最合適的選擇是什麼?其次,對於帶有 sftp 甚至 sftp 和 ssh 訪問的選項 2,這將是一個合適的安全設置嗎?請記住,nginx 需要在整個 /users/…. 樹中進行讀取訪問,因此它不能太嚴格。提前感謝您的建議!
你不會喜歡這樣的.. 共享主機有點死。再也沒有人真正這樣做了。
你最好提供一個 VPS 服務來控制他們正在使用的圖像。等一下。 亞馬遜擊敗了你,Heroku和EngineYard等所有其他公司也是如此。
VPS在本季更流行,共享主機的原因是什麼?
安全是一個重點。保護虛擬伺服器比保護目錄要容易得多。
限制使用者分配的 CPU、RAM 和磁碟使用以及他們的 IO 頻寬也更容易。
如果您真的想將其作為共享伺服器/多使用者的事情來做,那麼第二個選項可能是最好的,儘管坦率地說,它們都有些糟糕。
不要給他們 SSH 訪問權限。給他們Git訪問權限,比如 PHPFog 等。這限制了他們只上傳文件。
您無法有效地解析/過濾他們上傳的程式碼,因為您只會找到您知道如何尋找的漏洞。新的攻擊會與你擦肩而過,然後就為時已晚。