CentOS系统安全清理指南
定期更新系统软件包是安全清理的基础,可修复已知漏洞、提升系统稳定性。使用以下命令更新所有已安装的软件包(包括内核):
sudo yum update -y # CentOS 7及以下 sudo dnf update -y # CentOS 8及以上 更新后重启系统使内核变更生效:sudo reboot。
无用软件包会占用磁盘空间并增加安全风险,需彻底清理:
sudo yum autoremove -y # CentOS 7及以下 sudo dnf autoremove -y # CentOS 8及以上 /etc/<package_name>、/usr/share/<package_name>),避免敏感信息残留。包管理器(yum/dnf)的缓存会占用大量磁盘空间,清理后可释放资源:
sudo yum clean all # CentOS 7及以下 sudo dnf clean all # CentOS 8及以上 sudo rm -rf /var/cache/yum/* # CentOS 7及以下 sudo rm -rf /var/cache/dnf/* # CentOS 8及以上 sudo sync && sudo echo 3 > /proc/sys/vm/drop_caches 临时文件和旧日志会占用磁盘空间,甚至包含敏感信息,需定期清理:
sudo rm -rf /tmp/* sudo find /var/tmp -type f -mtime +7 -exec rm -f {} \; journalctl管理系统日志,保留最近2周的日志:sudo journalctl --vacuum-time=2weeks .log.开头的压缩文件):sudo rm -rf /var/log/*.log.* adm、lp等默认账户),避免未授权访问:sudo userdel -r username # 删除用户及主目录 /etc/ssh/sshd_config),禁用root远程登录、修改默认端口(如22改为2222),并启用公钥认证:sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config sudo systemctl restart sshd chage命令强制用户定期修改密码(如每90天),并设置密码复杂度要求(如包含大小写字母、数字和特殊字符)。systemctl命令禁用不再需要的服务(如Telnet、FTP等明文传输服务),防止潜在攻击:sudo systemctl stop service_name # 停止服务 sudo systemctl disable service_name # 禁用开机启动 systemctl list-unit-files --type=service查看开机启动的服务,禁用不必要的项(如cups打印服务)。sudo firewall-cmd --permanent --add-port=2222/tcp # 允许SSH端口 sudo firewall-cmd --permanent --remove-service=telnet # 禁用Telnet sudo firewall-cmd --reload /etc/pam.d/su文件,仅允许wheel组的用户使用su切换到root,提升root账户安全性。sudo yum install lynis -y # 安装Lynis sudo lynis audit system # 执行系统审计 rsync或tar命令备份关键数据(如/etc、/home、数据库文件)到外部存储设备或云存储,确保数据可恢复。