通過 DMZ 移動上傳的文件
我正在將 Web 應用程序(在 LAMP 上執行)從單個主機轉換為在 DMZ 中面向公眾的伺服器上執行的 php/apache 應用程序的配置。該應用程序連接到位於 DMZ 後面的專用網路中的 mysql。我得到的主要標準是將所有使用者數據(在數據庫或使用者上傳的文件中)完全排除在 DMZ 之外,並且只允許通過 ACL 訪問它。即通過網路和身份驗證/訪問將應用層與數據層隔離開來。
我已經很好地使用 mysql 進行了這種隔離,但是對於如何從 Web 伺服器訪問文件伺服器上的文件儲存,我沒有提出任何好的想法。我目前在安裝在 Web 伺服器上的 NFS 導出上執行它,但這會使文件伺服器及其所有數據對任何有權訪問 Web 伺服器(基本上)而無需身份驗證的人開放。
我意識到任何嚴肅的解決方案都可能需要大量的開發時間,我準備這樣做。如果需要正確完成工作,還準備花一些錢購買現成的解決方案。我覺得我在這裡遺漏了一些非常明顯的東西。
你真的不能同時擁有它:如果你想從 Web 伺服器訪問文件伺服器上的資源,你需要為它打開一個防火牆漏洞。
NFS 與 MySQL 打孔確實沒有區別——如果有人闖入您的 Web 伺服器,他們可以獲取您的 MySQL 數據庫(或至少獲取憑據並訪問使用者可以訪問的任何數據庫)。同樣,如果他們闖入 Web 伺服器,他們可以訪問 Web 伺服器被授權訪問的任何內容,但受您對 NFS 導出設置的任何限制。
在這種情況下,您可以做的最好的事情是將 NFS 導出限制在文件伺服器的最小實用視窗(保護您免受 Web 伺服器的危害),並通過 Kerberos 對 NFS 客戶端使用強身份驗證(保護您免受 DMZ 的附帶違反)。這裡還有一些用nfs標記的問題,這些問題涉及授權和身份驗證問題、安全性等,可以為您提供一些建議。