如何通过调整Ubuntu中sqladmin的安全配置来显著增强数据库的安全性?

更新于
2026-08-10 17:39:47
4阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

在如今网络攻击层出不穷的环境下许多站长和程序管理员都面临着一个共同的痛点:如何让Ubuntu中的sqladmin账户既能正常工作,又不成为攻击者的目标?

痛点一这方面。root或sa账号暴露风险

很多人习惯直接使用root或sa账号来管理数据库,一旦凭据泄漏,整个数据库瞬间失去安全屏障。是Web应用经常将这些超级权限账号写入配置文件,极易被扫描器发现。老实说,

如何通过调整Ubuntu中sqladmin的安全配置来显著增强数据库的安全性?

至于痛点二。远程访问开放导致暴力

默认情况下MySQL/MariaDB会监听0.0.0.0,这代表着任何IP都能尝试连接。怎么说呢,缺乏强密码策略和防火墙限制,暴力的机会大大增加。按理说,

至于痛点三,缺乏监控与审计机制

没有日志分析和异常检测。即使设置了安全措施,也无法及时发现被入侵后的行为,导致数据泄露后果不可估量。

1️⃣ 先升级程序与软件包

sudo apt update && sudo apt upgrade -y

如何通过调整Ubuntu中sqladmin的安全配置来显著增强数据库的安全性?

保持操作程序与所有数据库相关软件处于最新状态,可以修补已知漏洞。

2️⃣ 配置防火墙限制访问

# 只允许SSH
sudo ufw allow OpenSSH
# 仅允许本地IP访问MySQL端口3306
sudo ufw allow from 192.168.x.x to any port 3306
# 启用UFW
sudo ufw enable

3️⃣ 强化SSH服务

  • 禁用root登录:Edit /etc/ssh/sshd_config: PermitRootLogin no
  • 开启公钥认证:Add your public key to ~/.ssh/authorized_keys and disable password auntication.
  • 更改默认端口:Edit /etc/ssh/sshd_config: Port 2222
  • 限制可登录使用者:Add 'sqladmin' to a dedicated group and allow only that group in sshd_config.

4️⃣ 创建专属sqladmin程序账户并授予最小权限

# 创建程序使用者
sudo adduser sqladmin
# 将其加入sudo组
sudo usermod -aG sudo sqladmin
# 在MySQL中创建对应使用者
mysql -u root -p -e "
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY '强密码';GRANT SELECT,INSERT,UPDATE。DELETE ON your_database.* TO 'sqladmin'@'localhost';FLUSH PRIVILEGES;"

*为什么不是* 'ALL PRIVILEGES'?因为'db_owner'会让账号拥有完全控制权,一旦泄露即为灾难。 采用最小权限原则,只给定必要操作。

5️⃣ 限制数据库远程访问 & 开启SSL/TLS加密

  • `bind-address` 设置为127.0.0.1:`/etc/mysql/mariadb.conf.d/50-server.cnf` 或 `mysqld.cnf` 中改为 `bind-address = 127.0.0.1` 并重新启动。
  • `require_secure_transport=ON` 开启SSL/TLS:`my.cnf` 添加以下行,并生成证书:
    /path/to/ca.pem
    /path/to/server-cert.pem
    /path/to/server-key.pem
  • `--require-secure-auth=ON` 强制客户端使用SSL连接。

6️⃣ 强化密码策略 & 定期更换密码

  • Sudoers 文件仅允许受信任使用者使用 sudo;不要在全局配置中暴露 root 密码。
  • Mysql_secure_installation:移除匿名使用者、禁止 root 远程登录、开启强密码验证。
  • 从MFA来看,码验证层。
  • PAM 配置:在 /etc/pam.d/common-password 加入复杂度检查规则,例如:
    # Minimum length of password
    password requisite pam_pwquality.so retry=5 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
    

7️⃣ 审计日志与实时监控

  • Mysql 自带 AUDIT LOG插件或 MariaDB Audit Log)来记录所有登录尝试、DDL/DML 操作。
  • Nginx / Apache 的访问日志结合 Fail2Ban 配置针对 MySQL 登录失败的 IP 自动封禁。其实,
  • PAM 日志与 Logwatch/Nagios/Zabbix 联合监测硬盘空间、内存使用及异常进程。形成完整告警链路,

*日常维护建议*

  • - 每周检查 sudoers 与 mysql 使用者组成员是否仍需要相应权限;若无,则及时撤销,
  • - 每月执行一次安全审计脚本,例如扫描未授权文件、查看打开的端口列表等。
  • - 定期更新 ssl 证书并重新启动,以免证书过期导致连接失败。

标签:Ubuntu

在如今网络攻击层出不穷的环境下许多站长和程序管理员都面临着一个共同的痛点:如何让Ubuntu中的sqladmin账户既能正常工作,又不成为攻击者的目标?

痛点一这方面。root或sa账号暴露风险

很多人习惯直接使用root或sa账号来管理数据库,一旦凭据泄漏,整个数据库瞬间失去安全屏障。是Web应用经常将这些超级权限账号写入配置文件,极易被扫描器发现。老实说,

如何通过调整Ubuntu中sqladmin的安全配置来显著增强数据库的安全性?

至于痛点二。远程访问开放导致暴力

默认情况下MySQL/MariaDB会监听0.0.0.0,这代表着任何IP都能尝试连接。怎么说呢,缺乏强密码策略和防火墙限制,暴力的机会大大增加。按理说,

至于痛点三,缺乏监控与审计机制

没有日志分析和异常检测。即使设置了安全措施,也无法及时发现被入侵后的行为,导致数据泄露后果不可估量。

1️⃣ 先升级程序与软件包

sudo apt update && sudo apt upgrade -y

如何通过调整Ubuntu中sqladmin的安全配置来显著增强数据库的安全性?

保持操作程序与所有数据库相关软件处于最新状态,可以修补已知漏洞。

2️⃣ 配置防火墙限制访问

# 只允许SSH
sudo ufw allow OpenSSH
# 仅允许本地IP访问MySQL端口3306
sudo ufw allow from 192.168.x.x to any port 3306
# 启用UFW
sudo ufw enable

3️⃣ 强化SSH服务

  • 禁用root登录:Edit /etc/ssh/sshd_config: PermitRootLogin no
  • 开启公钥认证:Add your public key to ~/.ssh/authorized_keys and disable password auntication.
  • 更改默认端口:Edit /etc/ssh/sshd_config: Port 2222
  • 限制可登录使用者:Add 'sqladmin' to a dedicated group and allow only that group in sshd_config.

4️⃣ 创建专属sqladmin程序账户并授予最小权限

# 创建程序使用者
sudo adduser sqladmin
# 将其加入sudo组
sudo usermod -aG sudo sqladmin
# 在MySQL中创建对应使用者
mysql -u root -p -e "
CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY '强密码';GRANT SELECT,INSERT,UPDATE。DELETE ON your_database.* TO 'sqladmin'@'localhost';FLUSH PRIVILEGES;"

*为什么不是* 'ALL PRIVILEGES'?因为'db_owner'会让账号拥有完全控制权,一旦泄露即为灾难。 采用最小权限原则,只给定必要操作。

5️⃣ 限制数据库远程访问 & 开启SSL/TLS加密

  • `bind-address` 设置为127.0.0.1:`/etc/mysql/mariadb.conf.d/50-server.cnf` 或 `mysqld.cnf` 中改为 `bind-address = 127.0.0.1` 并重新启动。
  • `require_secure_transport=ON` 开启SSL/TLS:`my.cnf` 添加以下行,并生成证书:
    /path/to/ca.pem
    /path/to/server-cert.pem
    /path/to/server-key.pem
  • `--require-secure-auth=ON` 强制客户端使用SSL连接。

6️⃣ 强化密码策略 & 定期更换密码

  • Sudoers 文件仅允许受信任使用者使用 sudo;不要在全局配置中暴露 root 密码。
  • Mysql_secure_installation:移除匿名使用者、禁止 root 远程登录、开启强密码验证。
  • 从MFA来看,码验证层。
  • PAM 配置:在 /etc/pam.d/common-password 加入复杂度检查规则,例如:
    # Minimum length of password
    password requisite pam_pwquality.so retry=5 minlen=12 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1
    

7️⃣ 审计日志与实时监控

  • Mysql 自带 AUDIT LOG插件或 MariaDB Audit Log)来记录所有登录尝试、DDL/DML 操作。
  • Nginx / Apache 的访问日志结合 Fail2Ban 配置针对 MySQL 登录失败的 IP 自动封禁。其实,
  • PAM 日志与 Logwatch/Nagios/Zabbix 联合监测硬盘空间、内存使用及异常进程。形成完整告警链路,

*日常维护建议*

  • - 每周检查 sudoers 与 mysql 使用者组成员是否仍需要相应权限;若无,则及时撤销,
  • - 每月执行一次安全审计脚本,例如扫描未授权文件、查看打开的端口列表等。
  • - 定期更新 ssl 证书并重新启动,以免证书过期导致连接失败。

标签:Ubuntu