一、为什么需要对CentOS服务器进行安全加固
CentOS作为企业级Linux发行版,虽然默认配置已经具备一定的安全性,但面对日益复杂的网络攻击手段,仍需要进行针对性的安全加固。服务器安全加固的核心目的是减少攻击面、强化身份认证、保护关键数据、提升系统韧性。
二、账户安全加固
2.1 清理不必要的系统账户
CentOS系统默认存在多个系统账户,这些账户如果不使用,应该锁定或删除。常见需要锁定的账户包括:adm、lp、sync、shutdown、halt、news、uucp、operator、games、gopher等。使用passwd -l命令锁定账户。
2.2 强化密码策略
密码是账户安全的第一道防线。编辑/etc/login.defs文件设置密码最长有效期90天、最小长度10位。编辑/etc/security/pwquality.conf设置密码复杂度要求,至少包含3种字符类型。
2.3 限制密码错误次数
防止暴力破解,需要在密码错误多次后锁定账户。编辑/etc/pam.d/system-auth添加faillock配置,密码错误5次锁定账户15分钟。
三、SSH服务安全配置
3.1 禁止root直接登录
这是SSH安全最基本也是最重要的配置。编辑/etc/ssh/sshd_config设置PermitRootLogin no。修改前务必先创建一个普通用户并设置sudo权限。
3.2 修改SSH默认端口
将SSH端口改为非标准端口(建议10000以上)可以减少大量自动化扫描攻击。同时需要更新防火墙规则开放新端口。
3.3 使用密钥认证替代密码
密钥认证比密码更安全,使用ssh-keygen生成ed25519密钥对,服务器端禁用密码登录启用密钥认证。
四、防火墙配置
CentOS 7及以上版本默认使用firewalld。启动并设置开机自启,开放必要的端口如SSH、HTTP、HTTPS。可使用富规则限制特定IP访问特定服务。
五、SELinux安全策略
SELinux有Enforcing、Permissive、Disabled三种模式。生产环境建议使用Enforcing模式。常用命令包括getenforce、sestatus、chcon、restorecon、getsebool、setsebool等。
六、文件系统安全
设置关键文件权限为600,使用chattr +i锁定关键文件防止修改。设置umask为077,定期查找SUID/SGID文件和无主文件。
七、服务与端口管理
关闭不必要的服务减少攻击面。使用systemctl list-units查看运行中的服务,使用ss -tulpn检查监听端口。
八、系统更新与日志审计
定期执行yum update更新系统,启用yum-cron自动安全更新。安装auditd进行日志审计,监控关键文件变更。
九、网络安全优化
编辑/etc/sysctl.conf优化内核网络参数:禁用IP转发、启用SYN Cookie防护、增加SYN队列长度、禁用源路由、启用反向路径过滤等。
十、安全加固检查清单
root禁止直接SSH登录、SSH端口已修改、密钥认证已启用、密码策略已强化、防火墙已启用、SELinux已启用、不必要账户已锁定、关键文件权限已加固、不必要服务已关闭、系统更新已完成、日志审计已启用。
总结
CentOS服务器安全加固是一个系统工程,需要从账户管理、SSH配置、防火墙规则、SELinux策略、文件权限、服务管理等多个层面综合考虑。安全加固不是一劳永逸的,需要定期检查和更新。
版权声明
本文仅代表个人观点。
本文系AI辅助作者原创,未经许可,转载请保留原文链接。

发表评论