在Debian系统上对MySQL进行安全设置是确保数据库系统稳定性和数据安全性的重要步骤。以下是一些关键的安全设置措施:
/etc/mysql/my.cnf 或 /etc/mysql/mysql.conf.d/mysqld.cnf),将 bind-address 设置为 127.0.0.1。 [mysqld] bind-address = 127.0.0.1
- **重启服务**:使用 `sudo systemctl restart mysql` 或 `sudo systemctl restart mariadb` 重启MySQL服务。 ### 2. 禁用远程root登录 - **目的**:防止root用户通过远程连接访问MySQL。 - **操作**:在MySQL配置文件中设置 `skip-networking` 选项,然后通过 `mysql_secure_installation` 脚本进一步配置。 - ```bash # 在my.cnf中添加或确认以下行 skip-networking sudo mysql_secure_installation 并按照提示操作。 DELETE FROM mysql.user WHERE User=‘’; FLUSH PRIVILEGES;
### 4. 设置强密码策略 - **目的**:确保用户密码复杂且难以破解。 - **操作**:在 `/etc/pam.d/system-auth` 文件中配置 `pam_pwquality.so` 模块,设置密码复杂度规则。 - ```bash password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= minlen=8 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root PASS_MAX_DAYS 为90天,PASS_MIN_DAYS 为0,PASS_WARN_AGE 为7。 CREATE USER ‘newuser’@‘localhost’ IDENTIFIED BY ‘password’; GRANT SELECT, INSERT, UPDATE ON database_name.* TO ‘newuser’@‘localhost’; FLUSH PRIVILEGES;
- **定期审计**:定期检查和更新用户权限。 ### 6. 启用安全日志记录 - **目的**:记录系统活动,便于监控和调查安全事件。 - **操作**:启用 `auditd` 或 `rsyslog` 服务,并配置日志记录策略。 ### 7. 使用SSH隧道进行远程连接 - **目的**:通过SSH隧道加密MySQL连接,增加安全性。 - **操作**:设置SSH隧道并使用本地端口转发连接到MySQL服务器。 ### 8. 配置登录失败策略 - **目的**:限制登录失败尝试次数,防止暴力破解。 - **操作**:在 `/etc/pam.d/sshd` 文件中配置 `pam_tally2.so` 模块,设置锁定时间和尝试次数。 ### 9. 设置会话超时 - **目的**:防止长时间闲置的会话被利用。 - **操作**:在 `/etc/profile` 文件中设置 `TMOUT` 变量,例如 `TMOUT=1800`(30分钟)。 通过以上步骤,可以显著提高Debian系统上MySQL数据库的安全性。建议定期审查和更新安全设置,以应对新的安全威胁。