服务器CentOS安全设置的核心原则是:最小权限、纵深防御、持续监控、及时响应。
在Linux服务器安全防护中,CentOS作为企业级稳定发行版,其默认配置远未达到生产环境安全标准,以下从系统初始化、访问控制、服务加固、日志审计四大维度,提供可落地、可验证的安全加固方案。
系统初始化:筑牢第一道防线
- 禁用root远程登录
编辑/etc/ssh/sshd_config,设置PermitRootLogin no,重启SSH服务生效。 - 创建受限管理员账户
useradd -m -G wheel adminuser passwd adminuser
确保
/etc/sudoers.d/wheel中wheel组具有sudo权限(默认启用)。 - 关闭非必要服务
执行systemctl list-units --type=service --state=running,逐项评估:- 禁用
cups.service(打印服务) - 禁用
bluetooth.service(蓝牙服务) - 禁用
postfix.service(邮件服务,除非必需)
- 禁用
访问控制:实施最小权限原则
- SSH密钥认证替代密码
- 生成密钥对:
ssh-keygen -t ed25519 -C "admin@company" - 上传公钥至
~/.ssh/authorized_keys - 在
/etc/ssh/sshd_config中设置:PasswordAuthentication no PubkeyAuthentication yes
- 生成密钥对:
- 配置防火墙白名单
使用firewalld(CentOS 8+默认):firewall-cmd --permanent --add-service=ssh firewall-cmd --permanent --add-source=192.168.1.0/24 # 仅放行内网 firewall-cmd --reload
生产环境必须限制仅允许运维IP访问SSH(22端口)和业务端口(如80/443)。
- 文件系统权限加固
- 限制
/etc/passwd、/etc/shadow修改权限:chmod 644 /etc/passwd && chmod 400 /etc/shadow - 定期扫描高权限文件:
find / -perm -4000 -type f 2>/dev/null
- 限制
服务加固:消除默认配置风险
- SSH深度加固
在/etc/ssh/sshd_config中追加:MaxAuthTries 3 Protocol 2 LoginGraceTime 60 AllowUsers adminuser deployuser # 仅允许指定用户
- 禁用不安全协议
- 编辑
/etc/vsftpd/vsftpd.conf(若启用FTP):anonymous_enable=NO local_enable=YES ssl_enable=YES require_ssl_reuse=NO
- 优先使用SFTP替代FTP。
- 编辑
- 内核参数安全强化
编辑/etc/sysctl.conf,添加:net.ipv4.conf.all.rp_filter=1 net.ipv4.conf.default.rp_filter=1 net.ipv4.tcp_syncookies=1 kernel.yama.ptrace_scope=1
执行
sysctl -p生效。
日志审计:实现行为可追溯
- 启用审计日志(auditd)
yum install -y audit systemctl enable --now auditd
添加关键监控规则至
/etc/audit/rules.d/audit.rules:-w /etc/passwd -p wa -k identity -w /etc/shadow -p wa -k identity -w /etc/sudoers -p wa -k sudoers
- 集中日志管理
配置 rsyslog 将安全日志转发至中央服务器:# /etc/rsyslog.conf authpriv. @10.0.0.10:514
- 定期安全扫描
使用OpenSCAP工具:yum install -y scap-security-guide oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_standard \ --report /tmp/report.html /usr/share/xml/scap/ssg/content/ssg-centos8-ds.xml
相关问答
Q:CentOS 7与CentOS 8在安全设置上有何关键差异?
A:CentOS 8默认使用firewalld替代iptables,且auditd规则更严格;CentOS 7需手动安装auditd并配置规则,内核参数(如kernel.yama.ptrace_scope)在CentOS 8中默认启用,而CentOS 7需显式配置。
Q:如何验证SSH加固是否生效?
A:使用非授权用户尝试登录:ssh -o PubkeyAuthentication=no -o PasswordAuthentication=yes user@server,应返回“Permission denied”;同时检查/var/log/secure中无密码尝试记录。
服务器CentOS安全设置需结合业务场景动态调整,建议每季度执行一次全面审计。
您在实际运维中遇到过哪些CentOS安全陷阱?欢迎在评论区分享您的解决方案!
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/176461.html