centos服务器防攻击需层层设防:禁用root远程登录、创建专用管理用户并设sudo权限;启用firewalld并设默认区域为drop;安装fail2ban防暴力破解;启用selinux enforcing模式;开启自动安全更新与日志审计。

CentOS服务器防攻击不是靠一两个开关,而是靠层层设防、环环收紧。核心思路是:缩小暴露面、提高入侵门槛、及时发现异常、快速响应阻断。
账户与登录安全
这是第一道防线,也是被攻破最多的环节:
- 禁用root远程登录:编辑/etc/ssh/sshd_config,设PermitRootLogin no,然后systemctl restart sshd
- 创建专用管理用户(如admin),并赋予sudo权限:useradd admin && passwd admin,再在/etc/sudoers中加admin ALL=(ALL) NOPASSWD:ALL
- 检查并锁定多余超级用户:cat /etc/passwd | awk -F ':' '{print $1,$3}' | grep ' 0$',对非root的UID=0账户执行passwd -l 用户名
- 删除默认无用账户:userdel adm lp sync shutdown halt mail operator games ftp
- 设置SSH空闲超时:/etc/ssh/sshd_config中添加ClientAliveInterval 600和ClientAliveCountMax 2,10分钟无响应自动断连
防火墙与端口管控
不让攻击者轻易“敲门”,比等他进门后再抓更有效:
CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离
- 启用firewalld并设为开机自启:systemctl enable --now firewalld
- 只开放必要端口,例如:firewall-cmd --permanent --add-service=http、--add-port=48489/tcp(建议改SSH端口避开22)
- 禁止所有其他入站连接:firewall-cmd --set-default-zone=drop(比public更严格)
- 限制特定IP访问关键服务:firewall-cmd --permanent --add-rich-rule='rule source address="203.0.113.5" port port="22" protocol="tcp" accept'
运行时防护与监控
即使有人绕过前面两关,也要让它“进得来、干不了、留不住”:
- 安装fail2ban防暴力破解:yum install fail2ban,配置/etc/fail2ban/jail.local,针对sshd设置maxretry = 3、bantime = 1h
- 启用SELinux并保持enforcing模式:确认/etc/selinux/config中SELINUX=enforcing,避免随意设为permissive
- 保护关键系统文件:chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow,防止被篡改
- 开启日志审计:systemctl enable --now rsyslog auditd,定期用ausearch -m avc -ts recent查SELinux拒绝事件
系统维护与更新习惯
很多攻击利用的是已知漏洞,而补丁早已发布:
- 启用自动安全更新:yum install yum-cron && systemctl enable --now yum-cron,确保/etc/yum/yum-cron.conf中update_cmd = security
- 每月手动检查一次:yum update --security --advisory=RHSA(红帽安全公告)
- 最小化安装原则:部署时不装telnet、rsh、ftp、rpcbind等老旧高危服务;已存在则systemctl disable --now 服务名
- 设置密码策略:修改/etc/login.defs,确保PASS_MIN_LEN 12、PASS_MIN_DAYS 7、PASS_MAX_DAYS 90










