2010-04-14 90 views
3

我想知道是否有人可以告訴我是否有任何潛在的安全威脅可能通過連接到不在'localhost'的MySQL數據庫發生,即通過IP地址?MySQL連接和安全

+0

可能將此問題移至severfault.com? – Unreason 2010-04-14 18:08:42

回答

6

是的,通過不保護與數據庫的連接來實現違規。與應用程序的安全問題相比,這是一個網絡安全問題。因此,這個答案完全取決於你的網絡地形。

如果攻擊者可以訪問網絡的一部分,那麼您必須使用密碼技術來保護自己。例如,你有一個惡意攻擊者在你的網絡上侵入了一臺機器,然後他們可以對交換網絡上的「Sniff」甚至MITM設備進行攻擊。這可以用來查看流入和流出數據庫的所有數據,或修改數據庫對特定查詢的響應(如登錄!)。如果與您的數據庫的網絡連接與您的httpd服務器之間的單個rj45雙絞線連接都位於鎖定的機櫃內,那麼您不必擔心黑客竊聽此事。但是,如果你的httpd在WiFi網絡上,然後連接到中國的數據庫,那麼你可能想考慮加密。

您應該使用MySQL's built-in SSL ability連接到您的MySQL數據庫。這確保所有傳輸的數據都受到高度保護。您應該創建自簽名x509證書並對其進行硬編碼。這是免費的,你不需要像Verisign這樣的CA。如果有證書異常,那麼有一個MITM,因此這會阻止你泄漏密碼。

另一個選項是VPN,如果您有多個需要安全點對點連接的守護程序,則這更適合。

+0

哇......我在服務器等方面的經驗確實不多......我將從heartinternet租用一臺專用服務器,用於我的最新項目。該網站的99%將駐留在那裏,小百分比(1頁)將位於不同的服務器上(經銷商帳戶),該服務器將僅用於顯示用戶個人資料頁面(個人資料網址是域的通配符子域比之前的唯一原因要短)。 – 2010-04-14 17:19:15

+0

將兩個域都保留在專用服務器上是明智的做法嗎? – 2010-04-14 17:25:27

+2

爲了簡單和安全,我會在同一臺服務器上託管經銷商頁面。如果您需要在服務器之間共享用戶帳戶信息,我會根據您的需求查看oAuth/OpenID或可能的自定義SOAP服務。 – rook 2010-04-14 17:57:02

2

通常情況下,更大的問題在於另一方面,MySQL服務器中的漏洞被不可信的客戶端利用。

但是,是的,過去也存在客戶端漏洞(eg.),這會讓不可信的服務器攻擊客戶端。

當然,你應該保持你的MySQL客戶端庫是最新的,以避免這種可能性,以及更新服務器。

如果您的服務器連接正在通過互聯網(而不是專用網絡),您應該考慮通過加密鏈接(MySQL自己的SSL方案或使用隧道)來運行它。否則,任何中間人都會擺弄進出數據庫的數據,如果存在客戶端或服務器漏洞,那麼這些漏洞也可能成爲攻擊目標。

+0

在這種情況下,防火牆/用戶帳戶設置比隧道更適合。有一個遠程數據庫時+1流氓客戶端是一個有效的關注點。 – rook 2010-04-14 16:58:14

0

如果服務器位於同一機架中,則可以使用專用的高速MySQL電纜,或使用交換機VLAN隔離,並保護數據庫操作系統。在虛擬雲網絡的雲中,您可以通過arp欺騙無法實現的方式將其連接起來,對於地理IP複製,您可以使用用戶/密碼和防火牆,然後測量性能,然後設置隧道並測量性能再次提升,如果它不壞,它可能會抵擋未知的威脅,或僅僅在使用空閒的cpu週期方面有用。作爲經驗法則,您絕不會將開放數據庫連接發佈給任何人,並且可以在單獨的子網上進行嚴格的防火牆過濾,以便處理敏感數據具有非常好的ARP欺騙保護,否則它是可以破解的,系統的主要部分可以使用多種技術進行妥協,而且它非常好,有時很容易以這種方式處理,例如通過硬件層來控制,監控和管理MySQL流量 - 這確實能夠完成這項工作,並且實現真正的改變。

可選地,您可以將其保存在加密硬盤驅動器中與開關一起保存在物理安全的位置,因此在關閉電源並關閉私鑰並擦除私鑰後,可以保護第1層和第2層。

在交換機上使用靜態ARP表加上靜態條目與端口的過濾很容易,因爲它也是物理層 - 端口號。