CentOS环境下保障sqladmin安全的实践指南
yum update更新CentOS操作系统及sqladmin相关软件包(如数据库客户端、管理工具),及时修复已知安全漏洞。systemctl disable命令关闭FTP、Telnet等不需要的网络服务;通过userdel删除adm、lp、sync等默认无用账户,减少攻击面。/etc/login.defs文件,设置密码长度≥10位、包含大小写字母+数字+特殊字符的组合要求;使用passwd -S检查空口令账户并强制整改;通过chattr +i命令锁定/etc/passwd、/etc/shadow等口令文件,防止未授权修改。firewalld或iptables仅开放sqladmin服务必需的端口(如MySQL默认3306),例如执行firewall-cmd --permanent --zone=public --add-port=3306/tcp && firewall-cmd --reload允许指定IP访问数据库端口。/etc/ssh/sshd_config文件,设置PermitRootLogin no,禁止root用户通过SSH远程登录;使用普通用户登录后通过su -切换至root,降低root账户泄露风险。GRANT ALL PRIVILEGES ON *.* TO 'sqladmin'@'localhost' IDENTIFIED BY 'StrongPassword'。ALL PRIVILEGES。例如,仅需管理数据库时可执行GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'sqladmin'@'localhost',而非全局权限。mysql -u root -p -e "SELECT user, host, privilege_type FROM mysql.db WHERE user='sqladmin'"命令检查sqladmin用户的权限,及时撤销不再需要的权限(如REVOKE DROP ON *.* FROM 'sqladmin'@'localhost')。CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'ComplexPassword123!'创建专用账户,并通过GRANT命令分配权限。/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连接(如GRANT USAGE ON *.* TO 'sqladmin'@'localhost' REQUIRE SSL)。INSERT INTO users (username, password) VALUES ('admin', AES_ENCRYPT('MySecretPassword', 'encryption_key'));访问时使用AES_DECRYPT解密。SET GLOBAL general_log = 'ON'和SET GLOBAL log_output = 'FILE',日志默认存储在/var/log/mysqld.log;或修改/etc/my.cnf添加[mysqld] log_error=/var/log/mysqld.log。grep、ausearch等工具定期检查日志,重点关注异常操作(如批量删除、非工作时间登录)。例如,执行grep 'sqladmin' /var/log/mysqld.log | grep -i 'delete\|drop'查找删除操作记录。yum check-update更新相关RPM包;若sqladmin是基于Web的管理界面,确保PHP、Apache/Nginx等依赖组件也保持最新版本。setenforce 1)并设置为强制模式,通过semanage命令配置sqladmin相关进程的安全上下文,限制其对系统资源的访问权限。例如,执行semanage port -a -t mysqld_port_t -p tcp 3306将3306端口标记为MySQL专用端口。