在 Linux VPS 上加密 MySQL 數據庫?
我正在為我們的教堂開發一個 Rails 應用程序,它在 MySQL 數據庫中儲存了一些關於我們人員的相當敏感的資訊。
我們有自己的執行 Hyper-V 的 Windows 伺服器,所以最初的意圖是在那裡啟動一個虛擬機和主機。
從長遠來看,這聽起來是最好的解決方案,但目前我們教會的網際網路連接(家庭 ADSL)相當差,我不想浪費時間現在維護基礎設施和與服務提供商交談,因為我可以投入更多時間和精力建構一個偉大的應用程序。
在最初階段,我想將我們的應用程序託管在帶有 Linode、Rackspace 或 Amazon 的 VPS 上。
我們領導層的擔憂(非常正確)是我們員工數據的安全性,雖然我可以向他們保證,所有通信都將通過 HTTPS 進行 SSL 加密,但他們仍然擔心將我們的數據儲存在第 3 方。
在事物的計劃中,我們的數據不是攻擊者的主要目標,但我希望能夠向他們保證,即使我們的伺服器對任何公眾都可以登錄和瀏覽數據將保持安全。
這可能嗎?
MySQL 數據庫是否可以在磁碟上加密到這個級別,但仍然可以通過 MySQL 連接(通過套接字或 TCP 埠)訪問?
再三考慮,我認為無論如何它都會有點多餘,因為無論如何數據庫連接憑據都需要儲存在磁碟上以供 rails 應用程序使用!
再三考慮,我認為無論如何它都會有點多餘,因為無論如何數據庫連接憑據都需要儲存在磁碟上以供 rails 應用程序使用!
你基本上總結了你的問題。
即使您可以加密 MySQL 儲存 - 他們所要做的“全部”就是破壞您的 Web 伺服器,並且他們會獲得您的數據庫憑據並可以愉快地轉儲您的數據庫。事實上,如果他們可以在任何時候獲得與您相同級別的訪問權限 - 您所有的安全工作都付諸東流。
以下是一些一般性提示,但它們不能取代您的專業安全建議:
- 盡量減少訪問。從來沒有一個使用者可以從任何 IP 地址訪問數據庫伺服器,你只是在乞求暴力攻擊。相反,調整外部防火牆(例如稱為“安全組”的一個 EC2),以便只有您的 Web 伺服器甚至可以連接到您的數據庫伺服器。知道您的 VPS 是數據庫伺服器的人越少越好。
- 確保其他一切都是安全的。這意味著您的電子郵件密碼、安全答案等。如果他們可以訪問您的 EC2 帳戶或您的電子郵件帳戶,那麼您完全浪費了保護實例的時間。社會工程攻擊如今風靡一時,不要讓自己成為下一個。
- 確保您的 VPS 實例是裸機。那裡沒有不需要的軟體,甚至可以用於sendmail(這只是一個範例,說明當時您可能會認為“sendmail 可以繼續使用!”)。那裡有任何東西,請經常更新並註意安全通知。
- 盡量避免使用任何面向公眾的服務,尤其是 SSH 之類的服務。如果必須,請禁用密碼身份驗證並將 SSH 放在非標準埠上(然後像
ssh -p <port> user@host
往常一樣連接到它。說了這麼多,它不會讓你的客戶更好。您仍然會說“它盡可能安全”,但不會說“數據在磁碟上加密”。