首页主机资讯Linux下MySQL如何进行安全加固

Linux下MySQL如何进行安全加固

时间2025-10-20 08:27:03发布访客分类主机资讯浏览1110
导读:1. 账户与权限安全管理 最小权限原则:仅授予用户完成工作所需的最低权限(如应用账户仅需SELECT、INSERT、UPDATE权限),禁止使用GRANT ALL PRIVILEGES分配全部权限。例如,为报表应用创建只读账户:GRANT...

1. 账户与权限安全管理

  • 最小权限原则:仅授予用户完成工作所需的最低权限(如应用账户仅需SELECTINSERTUPDATE权限),禁止使用GRANT ALL PRIVILEGES分配全部权限。例如,为报表应用创建只读账户:GRANT SELECT ON mydb.* TO 'report_user'@'192.168.1.%';
  • 禁用高危权限:不授予DROP(删除表/数据库)、ALTER(修改表结构)、FILE(读写服务器文件)、SUPER(执行KILL、CHANGE MASTER等管理命令)等高危权限,避免恶意操作或误操作破坏数据。
  • 限制登录主机:避免使用%通配符,仅为用户指定具体IP或网段(如'user'@'192.168.1.100'),减少非法IP访问的风险。
  • 删除匿名用户与测试数据库:安装后执行DROP USER ''@'localhost'; DROP DATABASE test; 清除默认匿名账户和测试数据库,防止未授权访问。

2. 网络与连接安全加固

  • 修改默认端口:将MySQL默认端口3306修改为非标准端口(如3307),降低端口扫描攻击的概率。修改/etc/mysql/mysql.conf.d/mysqld.cnf中的port参数并重启服务。
  • 绑定本地地址:修改bind-address = 127.0.0.1,限制MySQL仅监听本地回环接口,禁止远程直接访问,仅允许本地应用或通过SSH隧道连接。
  • 启用SSL/TLS加密:生成SSL证书(sudo mysql_ssl_rsa_setup),修改配置文件添加ssl-cassl-certssl-key参数,强制用户使用加密连接(GRANT ... REQUIRE SSL; ),防止数据传输过程中被窃听。
  • 配置防火墙规则:使用ufwsudo ufw allow from 192.168.1.100 to any port 3307)或firewalldsudo firewall-cmd --permanent --add-port=3307/tcp)限制MySQL端口的访问,仅允许受信任IP地址连接。

3. 安全配置与审计监控

  • 禁用远程root登录:修改root用户的host为localhostUPDATE mysql.user SET Host='localhost' WHERE User='root' AND Host='%'; FLUSH PRIVILEGES; ),禁止root用户从远程主机登录,降低管理员账户被攻击的风险。
  • 使用专用管理员账户:创建具有有限权限的管理账户(如CREATE USER 'admin'@'192.168.1.100' IDENTIFIED BY 'StrongPass123!'),替代root账户执行日常管理操作,避免权限滥用。
  • 启用日志审计:开启通用日志(general_log = ONgeneral_log_file = /var/log/mysql/general.log)记录所有SQL操作,或使用企业版审计插件(如MySQL Enterprise Audit)实现细粒度审计,便于追溯异常操作。
  • 启用SQL安全模式:在my.cnf中添加sql_safe_updates = 1,防止无WHERE条件的DELETEUPDATE语句执行(如DELETE FROM users; 会被拒绝),减少误操作导致的数据丢失。

4. 系统与环境安全维护

  • 定期更新MySQL版本:使用包管理器(如aptyum)及时升级到最新稳定版本,修复已知安全漏洞(如sudo apt update & & sudo apt upgrade mysql-server)。
  • 使用强密码策略:为所有用户设置包含大小写字母、数字和特殊字符的强密码(如TEst@123!]),并定期更换(每90天)。可通过validate_password插件强制密码复杂度(INSTALL PLUGIN validate_password SONAME 'validate_password.so'; )。
  • 定期备份数据:使用mysqldumpmysqldump -u root -p --all-databases > backup.sql)或Percona XtraBackup工具定期备份数据库,将备份文件加密存储并离线保存(如移动硬盘),确保数据丢失或勒索攻击时能快速恢复。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Linux下MySQL如何进行安全加固
本文地址: https://pptw.com/jishu/729712.html
Linux中MySQL如何进行集群部署 MySQL在Linux中如何实现数据加密

游客 回复需填写必要信息