centos如何防止安全漏洞
小樊
45
2025-11-14 02:04:44
CentOS 防止安全漏洞的实用清单
系统更新与最小化安装
- 保持系统与软件包为最新,及时修补已知漏洞:执行yum update或dnf update并配置自动安全更新(如 dnf-automatic)。
- 采用最小化安装,仅保留必需组件;使用**systemctl disable <服务名>**禁用不需要的服务,减少攻击面。
- 定期做漏洞扫描与评估(如 nmap、Nessus),对发现的问题闭环修复。
账户与权限加固
- 清理与锁定不必要的账号:删除或锁定adm、lp、sync等默认或废弃账号;检查是否存在空口令与UID=0的异常账号(如:awk -F: ‘($2==“”)’ /etc/shadow;awk -F: ‘($3==0)’ /etc/passwd)。
- 强化口令策略:在**/etc/login.defs设置PASS_MAX_DAYS 90、PASS_WARN_AGE 7**;使用pam_pwquality.so要求最小长度14且包含大小写字母、数字与特殊字符(如:minlen=14 lcredit=-1 ucredit=-1 dcredit=-1 ocredit=-1 enforce_for_root)。
- 登录失败锁定:在**/etc/pam.d/system-auth配置失败锁定(如:auth required pam_tally.so deny=6 unlock_time=300),必要时用faillog -u <用户> -r**解锁。
- 限制 su 到 root:在**/etc/pam.d/su启用pam_wheel.so**,仅允许wheel组切换;将运维账号加入 wheel。
- 会话超时:在**/etc/profile设置TMOUT=600**(10 分钟无操作自动注销)。
SSH 与远程访问
- 禁止 root 直连:在**/etc/ssh/sshd_config设置PermitRootLogin no**;仅允许特定用户登录(如:AllowUsers your_admin)。
- 优先使用SSH 密钥认证,禁用密码登录(PasswordAuthentication no),并更改默认端口以降低噪音扫描(如 Port 2222)。
- 隐藏登录横幅:在**/etc/ssh/sshd_config设置Banner none**,清理或定制**/etc/motd**,避免泄露系统信息。
- 防暴力破解:部署fail2ban,对多次失败登录的来源 IP 自动封禁。
防火墙与网络防护
- 启用并配置firewalld白名单策略:仅放行必要端口(如 22/TCP),变更后执行firewall-cmd --reload;可按业务划分zone精细化控制。
- 关闭或限制不必要服务与端口,遵循“默认拒绝、按需放行”原则。
- 可选:使用TCP Wrappers(/etc/hosts.allow、/etc/hosts.deny)做主机级访问控制。
SELinux 与文件系统、日志审计
- 启用并维持SELinux 为 enforcing模式(getenforce/setenforce;/etc/selinux/config 中 SELINUX=enforcing),用策略约束进程权限,降低漏洞利用影响。
- 文件系统与启动安全:设置umask 027;保护启动配置(如:chmod 600 /boot/efi/EFI/centos/grub.cfg);必要时为GRUB设置启动密码,防止单用户模式篡改。
- 日志与完整性:集中关注**/var/log/secure、/var/log/messages、/var/log/cron**;部署AIDE做文件完整性校验;定期备份关键数据与配置,确保可快速恢复。