centos下sqladmin安全设置有哪些
导读:CentOS下SQLAdmin安全设置指南 1. 系统基础安全加固 定期更新系统与软件:通过sudo yum update -y命令定期更新CentOS操作系统及已安装的SQLAdmin、数据库服务(如MySQL)等软件包,及时修复已知安...
CentOS下SQLAdmin安全设置指南
1. 系统基础安全加固
- 定期更新系统与软件:通过
sudo yum update -y
命令定期更新CentOS操作系统及已安装的SQLAdmin、数据库服务(如MySQL)等软件包,及时修复已知安全漏洞。 - 禁用非必要系统服务:使用
systemctl stop < service_name>
或systemctl disable < service_name>
命令禁用FTP、Telnet、rpcbind等不需要的服务,减少系统攻击面。 - 删除默认无用账户:通过
userdel < username>
命令删除adm、lp、sync等默认账户,避免未授权用户利用这些账户登录系统。
2. SQLAdmin账户与权限管理
- 强化账户口令策略:为用户(尤其是root、sqladmin等关键账户)设置强密码,要求包含大写字母、小写字母、数字和特殊字符(如
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
命令回收闲置账户权限。 - 限制root远程访问:禁止root用户通过SSH远程登录(修改
/etc/ssh/sshd_config
文件中的PermitRootLogin no
),使用普通用户登录后再通过su -
切换至root,降低root账户泄露风险。
3. 网络与访问控制
- 配置防火墙规则:使用
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
- 启用SSL/TLS加密:为SQLAdmin与数据库之间的通信配置SSL/TLS,防止数据在传输过程中被窃取或篡改。以MySQL为例,可通过
ALTER USER 'sqladmin'@'localhost' REQUIRE SSL;
命令强制用户使用SSL连接,或在SQLAdmin配置文件中指定SSL证书路径。
4. 审计与监控
- 开启系统日志审计:使用
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 # 监控命令执行
- 监控SQLAdmin日志:启用SQLAdmin的日志功能(如访问日志、错误日志),定期检查日志中的异常请求(如大量无效登录、非法SQL语句),快速响应安全事件。
5. 数据与应用安全
- 数据库文件系统加密:使用LUKS(Linux Unified Key Setup)对数据库存储目录(如
/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
6. 其他安全措施
- 设置root账户自动注销:修改
/etc/profile
文件,添加TMOUT=300
(300秒后自动注销root会话),防止root账户长时间闲置被他人利用。 - 限制su命令使用:编辑
/etc/pam.d/su
文件,添加auth required pam_wheel.so use_uid
,仅允许wheel
组的用户使用su
命令切换至root,提升账户安全性。 - 隐藏系统信息:修改
/etc/issue
和/etc/issue.net
文件,删除系统版本、内核信息等内容,避免向攻击者暴露系统脆弱性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos下sqladmin安全设置有哪些
本文地址: https://pptw.com/jishu/717704.html