如果我們需要允許遠程訪問自己的MySQL服務器,一個好的安全做法是只允許從一個或多個特定IP地址進行訪問。這樣,我們就不會不必要地將攻擊向量暴露給整個互聯網。在本教程中,小編我將逐步指導大家從Linux系統上的特定IP地址遠程連接到MySQ服務器。
默認情況下,MySQL服務器被配置為只接受來自同一臺計算機的連接。換句話說,綁定地址設置為本地環(huán)回地址127.0.0.1。在我們可以接受來自任何其他IP地址的連接之前,我們需要在MySQL配置文件中更改此設置。因此,允許從特定IP地址遠程連接到我們的MySQL數據庫是一個三步過程。
首先,我們需要通過在 MySQL 配置文件中配置公共綁定地址,將 MySQL 服務設置為可從遠程機器訪問。
其次,我們需要允許通過我們的系統防火墻進行遠程訪問。默認情況下,MySQL在端口3306上運行,因此需要允許到該端口的連接通過,并且只允許來自我們指定的IP地址的那些連接是沒有問題的。
最后,我們需要創(chuàng)建一個新用戶或編輯現有用戶,使其可以從特定IP 地址訪問。
一、配置MySQL綁定地址
我們將從打開/etc/mysql/mysql.cnf文件開始。使用root權限,在nano 或我們最喜歡的文本編輯器中打開它。
$ sudo nano /etc/mysql/mysql.cnf
bind-address找到該部分下方的設置[mysqld]。默認情況下,當前應將其配置為環(huán)回地址127.0.0.1。刪除該地址并將服務器的公共 IP 地址放在原處。我們只是10.1.1.1為了示例而使用。
[mysqld]
綁定地址 = 10.1.1.1
如果需要,我們可以改為使用0.0.0.0綁定地址,這是一個通配符,應該將服務綁定到所有可訪問的接口。不建議這樣做,但如果我們以后遇到問題,這對故障排除很有幫助。
[mysqld]
綁定地址 = 0.0.0.0
進行更改后,將更改保存到文件并退出。然后,我們將需要重新啟動 MySQL服務以使更改生效。
$ sudo systemctl 重啟 mysql
在某些發(fā)行版上,可能會調用該服務mysqld:
$ sudo systemctl 重啟 mysqld
二、允許通過防火墻進行遠程訪問
假設我們的MySQL服務器使用端口3306,我們需要允許它通過系統防火墻。我們需要執(zhí)行的命令將取決于我們使用的發(fā)行版。請參閱下面的列表或根據需要調整命令以符合我們自己系統的防火墻語法。
在下面的示例中,我們允許從IP地址進行遠程訪問10.150.1.1。只需將自己的IP地址放入我們要允許遠程訪問的位置。
在Ubuntu系統和其他使用ufw(簡單防火墻)的系統上:
$ sudo ufw 允許從 10.150.1.1 到任何端口 3306
在使用firewalld的Red Hat、CentOS、Fedora和衍生系統上:
$ sudo firewall-cmd --zone=public --add-source=10.150.1.1 --permanent
$ sudo firewall-cmd --zone=public --add-service=mysql --permanent
$ sudo firewall-cmd --reload
iptables以及適用于任何系統的好舊命令:
$ sudo iptables -A INPUT -p tcp -s 10.150.1.1 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
三、允許從特定IP遠程連接到特定用戶
現在MySQL服務可以接受傳入連接并且我們的防火墻將允許特定IP 通過,我們只需要配置我們的用戶以接受來自該IP的遠程連接。
首先使用root帳戶打開MySQL。
$ 須藤 mysql
或者,在某些配置中,我們可能需要輸入以下命令并提供自己的root 密碼:$ mysql -u root -p
如果我們已經創(chuàng)建了一個用戶,并且需要將該用戶配置為可以從遠程 IP 地址訪問,我們可以使用MySQL命令RENAME USER。在下面的示例命令中, 我們將使我們的linuxconfig用戶可以從 IP 地址訪問,但根據您自己的配置需要對其進行調整。10.150.1.1
mysql> 將用戶 'linuxconfig'@'localhost' 重命名為 'linuxconfig'@'10.150.1.1';
或者,如果我們是第一次創(chuàng)建此用戶,我們將使用該CREATE USER命令。請務必將以下用戶名、IP地址和密碼替換為自己的。
mysql> 創(chuàng)建用戶 'linuxconfig'@'10.150.1.1' IDENTIFIED BY 'password_here';
這里的所有都是它的。授予我們的用戶訪問一個或多個數據庫后,我們將能夠使用帳戶憑據從自己指定的IP遠程訪問數據庫。
以上是在Linux系統上的特定IP遠程連接到MySQL服務器三部分過程。由于MySQL在所有發(fā)行版中的工作原理基本相同,因此這些步驟應該適用于所有人。
Copyright ? 2013-2020. All Rights Reserved. 恒訊科技 深圳市恒訊科技有限公司 粵ICP備20052954號 IDC證:B1-20230800.移動站