CentOS环境下SQLAdmin安全管理指南
sudo yum update -y命令更新CentOS操作系统及SQLAdmin相关软件包(如MySQL、phpMyAdmin),及时修复已知安全漏洞。systemctl disable ftp telnet命令关闭FTP、Telnet等高风险服务;删除系统默认无用账户(如adm、lp、sync),降低攻击面。/etc/ssh/sshd_config,设置PermitRootLogin no);启用公钥认证(PubkeyAuthentication yes)替代密码登录,提升账户安全性。CREATE USER 'db_admin'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT, INSERT, UPDATE ON mydatabase.* TO 'db_admin'@'localhost';
FLUSH PRIVILEGES;
REVOKE命令收回不再需要的权限(如用户离职后,立即执行REVOKE ALL PRIVILEGES ON *.* FROM 'username'@'host'; FLUSH PRIVILEGES;)。/etc/login.defs文件设置密码复杂度(如PASS_MIN_LEN 12要求密码长度≥12位,PASS_REQUIRE_MIXED_CASE要求大小写混合),并定期强制用户更换密码(如每90天更换一次)。firewalld开放SQLAdmin服务必要端口(如MySQL默认3306端口),并限制访问源IP:sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="3306" protocol="tcp" accept'
sudo firewall-cmd --reload
CREATE USER 'remote_admin'@'192.168.1.100' IDENTIFIED BY 'SecurePassword456!';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'remote_admin'@'192.168.1.100';
FLUSH PRIVILEGES;
/etc/my.cnf),添加以下内容:[mysqld]
ssl-ca=/etc/mysql/ssl/ca.pem
ssl-cert=/etc/mysql/ssl/server-cert.pem
ssl-key=/etc/mysql/ssl/server-key.pem
并强制用户使用SSL连接(GRANT USAGE ON *.* TO 'db_admin'@'localhost' REQUIRE SSL;)。auditd服务记录用户操作,便于追溯安全事件。安装并配置auditd:sudo yum install audit -y
sudo systemctl start auditd
sudo systemctl enable auditd
添加审计规则(记录所有MySQL相关操作):sudo auditctl -w /usr/bin/mysql -p x -k mysql_access
ausearch和aureport工具查看审计日志,重点关注异常操作(如频繁的失败登录、未授权的数据库修改)。例如,查看最近的MySQL访问日志:sudo ausearch -k mysql_access | aureport -f -i
Prometheus+Grafana监控服务器CPU、内存、磁盘使用率及数据库连接数,设置告警阈值(如CPU使用率超过80%时触发告警),及时发现潜在风险。mysqldump命令定期备份数据库,备份文件存储在安全位置(如异地服务器、云存储)。示例备份命令:mysqldump -u sqladmin -p --all-databases > /backup/mysql_backup_$(date +%F).sql
每周执行一次全量备份,每天执行增量备份。AES_ENCRYPT函数加密数据:INSERT INTO users (username, password) VALUES ('john', AES_ENCRYPT('mypassword', 'encryption_key'));
查询时使用AES_DECRYPT函数解密。/var/lib/mysql分区:sudo cryptsetup luksFormat /dev/sdb1
sudo cryptsetup open /dev/sdb1 mysql_crypt
sudo mkfs.ext4 /dev/mapper/mysql_crypt
sudo mount /dev/mapper/mysql_crypt /var/lib/mysql
记录加密密钥并妥善保管(如使用密码管理器)。Enforcing模式,需配置允许SQLAdmin相关服务的网络连接。例如,允许Apache访问MySQL:sudo setsebool -P httpd_can_network_connect_db 1
ausearch -m avc命令查看SELinux拒绝日志,根据日志调整策略(如添加自定义布尔值或上下文)。通过以上措施,可全面保障CentOS环境下SQLAdmin的安全性,降低数据泄露、未授权访问等风险。需定期审查安全配置,适应新的安全威胁。