Mysql

MySQL:停用“綁定地址”設置是否存在安全風險?

  • February 20, 2019

我的 webapp 正確連接到 MySQL 伺服器時遇到問題,為了解決它,我嘗試註釋掉bind-address文件中的設置my.ini

這似乎解決了這個問題,但是我想知道這是否是關於安全性的問題。對於當然受使用者/密碼限制訪問的生產環境,這是一個正確的設置嗎?將其註釋掉和將其設置為有什麼區別bind-address=0.0.0.0

註釋掉設置的影響取決於bind-address之前設置的值。

註釋掉一個設置與將其設置為預設值相同。該手冊將向您顯示預設值: https ://dev.mysql.com/doc/refman/8.0/en/server-options.html#option_mysqld_bind-address

**bind-address

預設值:** *

該手冊還解釋了該設置的含義以及它與使用 0.0.0.0 的區別:

如果地址為*****,則伺服器在所有伺服器主機 IPv4 介面上接受 TCP/IP 連接,如果伺服器主機支持 IPv6,則在所有 IPv6 介面上接受 TCP/IP 連接。**使用此地址可允許所有伺服器介面上的 IPv4 和 IPv6 連接。**此值為預設值。如果該選項指定了多個值的列表,則不允許使用此值。

如果地址是**0.0.0.0,則伺服器接受所有伺服器主機 IPv4 介面**上的 TCP/IP 連接。如果該選項指定了多個值的列表,則不允許使用此值。

如果您的伺服器沒有使用限制訪問 TCP 埠 3306(MySQL 的預設埠)的防火牆保護,那麼使用 * 或 0.0.0.0 將接受伺服器配置的所有 IPv4 地址上的傳入連接以及 TCP 連接在環回地址 127.0.0.1/8 和 * 將另外允許所有傳入的 IPv6 流量。

通常,僅配置服務的最低網路訪問權限被認為是良好的安全實踐。

  • 和 0.0.0.0 在許多情況下都可能過於寬鬆,但例如在應該允許使用單個介面/IP 地址(即 192.0.2.1)遠端 MySQL 訪問的系統上, bind-address = 192.0.2.1bind-address = 0.0.0.0或之間沒有有效的安全差異bind-address = *

建議在不需要允許遠端 MySQL 訪問的伺服器(典型的 LAMP 伺服器)bind-address = ::ffff:127.0.0.1上使用。

引用自:https://serverfault.com/questions/954848