CentOS系统作为企业级服务器常用的操作系统,默认配置下存在部分安全短板,容易被恶意代码利用执行破坏操作或传输敏感数据。通过系统层面的多维度配置,可以有效阻断恶意代码的运行路径和传播渠道。

启用并配置SELinux
SELinux是CentOS自带的安全增强模块,能够基于策略限制进程对文件、端口等资源的访问,从根源上阻止恶意代码的越权操作。首先检查SELinux的状态:
# 查看SELinux当前状态 getenforce # 临时开启SELinux(重启后失效) setenforce 1
如果需要永久开启,需要修改配置文件:
# 编辑SELinux配置文件 vi /etc/selinux/config # 将SELINUX参数设置为enforcing SELINUX=enforcing # 保存后重启系统生效 reboot
开启后可以通过semanage工具调整端口、文件上下文等策略,比如限制Web服务只能访问指定目录的文件,避免恶意代码读取系统敏感配置。
配置防火墙限制异常流量
恶意代码常通过异常网络传输数据,配置firewalld防火墙可以过滤非法入站和出站流量。首先确保防火墙服务运行:
# 启动firewalld服务 systemctl start firewalld # 设置开机自启 systemctl enable firewalld
然后按照业务需求开放必要端口,关闭其他所有端口:
# 开放SSH默认22端口 firewall-cmd --permanent --add-port=22/tcp # 开放HTTP服务80端口 firewall-cmd --permanent --add-port=80/tcp # 移除不必要的端口(比如默认的3306端口如果没有对外需求就关闭) firewall-cmd --permanent --remove-port=3306/tcp # 重载规则生效 firewall-cmd --reload
还可以配置出站规则,禁止服务器主动连接外部可疑IP,减少恶意代码外传数据的可能。
严格设置文件权限
不合理的文件权限是恶意代码替换系统文件、写入恶意脚本的常见原因。需要遵循最小权限原则配置关键目录和文件:
- 系统二进制目录
/bin、/sbin、/usr/bin等设置为只有root可写,普通用户只读 - Web服务目录(如
/var/www/html)禁止赋予777权限,仅给运行Web服务的用户读写权限 - 敏感配置文件如
/etc/passwd、/etc/shadow设置为仅root可读
可以通过如下命令修改权限:
# 设置系统二进制目录权限为755,属主root chmod 755 /bin chown root:root /bin # 设置Web目录权限为755,属主为nginx用户(根据实际服务调整) chmod 755 /var/www/html chown nginx:nginx /var/www/html
关闭不必要的系统服务
多余的系统服务会开放额外端口、提供可被利用的漏洞,需要关闭所有非必需服务:
# 查看当前运行的所有服务 systemctl list-units --type=service --state=running # 关闭不需要的服务,比如telnet服务 systemctl stop telnet.socket systemctl disable telnet.socket
常见的需要关闭的服务包括telnet、rsh、rexec等明文传输协议服务,以及没有业务需求的数据库、中间件服务。
配置入侵检测工具
安装AIDE(高级入侵检测环境)可以监控文件系统的变化,及时发现恶意代码的写入和修改:
# 安装AIDE yum install aide -y # 初始化AIDE数据库 aide --init # 将初始数据库复制到工作目录 cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz # 定期检查文件系统变化 aide --check
可以将AIDE检查加入定时任务,每天自动执行并发送报告,第一时间发现异常文件变动。
其他补充防护措施
除了上述配置,还可以定期更新系统补丁修复已知漏洞:
# 更新所有系统包 yum update -y
同时限制用户权限,禁止普通用户使用sudo执行高危命令,避免恶意代码通过提权获取root权限执行破坏操作。