阅读量:3
在Debian系统上对MySQL进行安全设置是确保数据库系统稳定性和数据安全性的重要步骤。以下是一些关键的安全设置措施:
1. 绑定MySQL到本地地址
- 目的:限制MySQL只监听本地连接,防止远程访问。
- 操作:编辑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并按照提示操作。
3. 删除匿名用户
- 目的:移除匿名用户,减少潜在的安全风险。
- 操作:登录MySQL并执行以下SQL命令:
-
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。
5. 限制用户权限
- 目的:遵循最小权限原则,仅授予用户必要的权限。
- 操作:创建特定用户并授予最小权限,例如:
-
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数据库的安全性。建议定期审查和更新安全设置,以应对新的安全威胁。
以上就是关于“Debian MySQL安全设置有哪些”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm