CentOS环境下SQLAdmin安全配置指南
sudo yum update -y更新CentOS操作系统及已安装的SQLAdmin、数据库服务(如MySQL)等软件包,及时修复已知安全漏洞。adm、lp、sync等),禁用不需要的网络服务(如FTP、Telnet),减少潜在攻击面。/etc/profile中的TMOUT参数(如TMOUT=300),设置root账户自动注销时限;禁止root用户通过SSH远程登录(编辑/etc/ssh/sshd_config,设置PermitRootLogin no),强制使用普通用户登录后通过sudo授权管理。sqladmin)并分配最小必要权限。例如,通过MySQL命令行执行:CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'sqladmin'@'localhost';
FLUSH PRIVILEGES;
GRANT语句中多余的ALL PRIVILEGES),确保权限与用户职责匹配。@#$%),长度不少于10位;定期(每3个月)强制更换密码。firewalld开放SQLAdmin及数据库服务必要端口(如HTTP/HTTPS的80/443端口、MySQL的3306端口),并限制访问源IP。例如:sudo firewall-cmd --permanent --zone=public --add-port=80/tcp # SQLAdmin Web界面
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp # MySQL数据库
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
Enforcing模式(setenforce 1),并通过semanage命令配置SQLAdmin进程的安全上下文,防止未授权访问。例如:sudo setenforce 1
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/path/to/sqladmin(/.*)?"
sudo restorecon -Rv /path/to/sqladmin
/etc/my.cnf)中添加:[mysqld]
ssl-ca=/path/to/ca.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem
并在SQLAdmin连接配置中启用SSL选项。config.inc.php、sqladmin.conf)包含敏感信息(如数据库密码、加密密钥),需设置严格权限。例如:sudo chown root:root /path/to/sqladmin/config.inc.php
sudo chmod 600 /path/to/sqladmin/config.inc.php
blowfish_secret参数),需修改默认值为空字符串或弱密钥。例如,在config.inc.php中设置:$cfg['blowfish_secret'] = 'YourRandomStringHereAtLeast16CharactersLong!';
debug参数),避免泄露系统路径、数据库结构等敏感信息。sudo mysql_secure_installation脚本,完成以下操作:设置root密码、移除匿名用户、禁止root远程登录、移除测试数据库。mysqldump命令定期备份数据库(如每日增量备份、每周全量备份),并将备份文件存储在异地或云存储中。例如:mysqldump -u root -p --all-databases > /backup/sql_backup_$(date +%F).sql
/var/log/mysqld.log),定期检查异常登录、慢查询等日志;使用监控工具(如Prometheus+Grafana)监控数据库性能及安全指标(如连接数、CPU使用率)。