CentOS下SQLAdmin安全设置指南
sudo yum update -y命令定期更新CentOS操作系统及已安装的SQLAdmin、数据库服务(如MySQL)等软件包,及时修复已知安全漏洞。systemctl stop <service_name>或systemctl disable <service_name>命令禁用FTP、Telnet、rpcbind等不需要的服务,减少系统攻击面。userdel <username>命令删除adm、lp、sync等默认账户,避免未授权用户利用这些账户登录系统。Aa1@2025),长度不少于10位;通过修改/etc/login.defs文件设置密码有效期(如PASS_MAX_DAYS 90)、最小长度(如PASS_MIN_LEN 10)等参数,强制定期更换密码。GRANT命令为用户分配仅满足其工作需求的最低权限(如GRANT SELECT, INSERT ON mydb.* TO 'appuser'@'localhost'),避免授予ALL PRIVILEGES等过度权限;定期通过REVOKE命令回收闲置账户权限。/etc/ssh/sshd_config文件中的PermitRootLogin no),使用普通用户登录后再通过su -切换至root,降低root账户泄露风险。firewalld(推荐)或iptables限制对SQLAdmin服务端口的访问(如MySQL默认3306端口),仅允许信任IP地址(如运维人员IP)访问:sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="3306" accept'
sudo firewall-cmd --reload
ALTER USER 'sqladmin'@'localhost' REQUIRE SSL;命令强制用户使用SSL连接,或在SQLAdmin配置文件中指定SSL证书路径。auditd服务记录用户操作(如登录、权限变更、数据库操作),通过ausearch和aureport工具分析日志,及时发现异常行为(如频繁的失败登录尝试)。配置示例:sudo yum install audit -y
sudo systemctl start auditd
sudo systemctl enable auditd
sudo auditctl -a always,exit -F arch=b64 -S execve -k user_commands # 监控命令执行
/var/lib/mysql)进行加密,防止物理磁盘丢失或被盗时数据泄露。操作步骤包括:sudo cryptsetup luksFormat /dev/sda1 # 加密磁盘分区
sudo cryptsetup open /dev/sda1 mysql_crypt # 打开加密设备
sudo mkfs.ext4 /dev/mapper/mysql_crypt # 格式化加密设备
sudo mount /dev/mapper/mysql_crypt /var/lib/mysql # 挂载加密分区
mysqldump命令定期备份数据库(如每日增量备份、每周全量备份),并将备份文件存储在异地或离线介质(如NAS、磁带)中,确保数据可恢复。备份示例:mysqldump -u sqladmin -p --all-databases > /backup/sql_backup_$(date +%F).sql
/etc/profile文件,添加TMOUT=300(300秒后自动注销root会话),防止root账户长时间闲置被他人利用。/etc/pam.d/su文件,添加auth required pam_wheel.so use_uid,仅允许wheel组的用户使用su命令切换至root,提升账户安全性。/etc/issue和/etc/issue.net文件,删除系统版本、内核信息等内容,避免向攻击者暴露系统脆弱性。