在Debian系統上設置MySQL網絡時,有一些關鍵的技巧和步驟需要注意,以確保數據庫的安全性和性能。以下是一些有用的信息:
默認情況下,MySQL可能配置為監聽所有網絡接口。為了提高安全性,建議將MySQL綁定到本地地址(127.0.0.1),這樣可以防止外部直接訪問MySQL服務器。
# 編輯MySQL配置文件
sudo nano /etc/mysql/my.cnf
# 在[mysqld]部分添加或修改以下行
bind-address = 127.0.0.1
# 保存文件并重啟MySQL服務
sudo systemctl restart mysql
如果你不需要MySQL監聽所有網絡接口,可以關閉3306端口的外部訪問。
# 編輯MySQL配置文件
sudo nano /etc/mysql/my.cnf
# 找到并注釋掉以下行
# skip-networking
# 保存文件并重啟MySQL服務
sudo systemctl restart mysql
為了增加安全性,可以使用SSH隧道來連接MySQL服務器,而不是直接暴露MySQL端口。
# 在本地機器上創建SSH隧道
ssh -L 3307:localhost:3306 user@your_mysql_server_ip
# 然后使用本地端口3307連接MySQL
mysql -u root -p
安裝MySQL后,運行安全安裝腳本來設置強健的密碼策略和其他安全選項。
sudo mysql_secure_installation
刪除或禁用匿名用戶,以防止未經授權的訪問。
# 登錄MySQL
mysql -u root -p
# 刪除匿名用戶
DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;
為了防止MySQL直接與本地文件系統通信,可以禁用local-infile功能。
# 編輯MySQL配置文件
sudo nano /etc/mysql/my.cnf
# 在[mysqld]部分添加或修改以下行
local-infile=0
# 保存文件并重啟MySQL服務
sudo systemctl restart mysql
對于Debian 12及以上版本,可以使用netplan來管理網絡配置。
# 編輯/etc/netplan/01-netcfg.yaml文件
network:
version: 2
renderer: networkd
ethernets:
ens4:
dhcp4: no
addresses: [192.168.200.251/24]
然后應用配置:
sudo netplan apply