CentOS作为企业级常用的Linux发行版,其默认配置虽然具备基础安全性,但仍需要通过针对性设置来防范恶意代码的下载和执行。下面将从多个层面介绍具体的配置方法。

一、限制不必要的下载工具权限
首先可以通过限制普通用户使用下载工具的权限,减少恶意代码被主动下载的可能。常见的下载工具如wget、curl可以针对性设置权限。
查看当前wget的权限配置:
# 查看wget权限 ls -l $(which wget)
如果不需要普通用户使用下载工具,可以将其执行权限仅保留给root用户:
# 移除其他用户的执行权限 chmod o-x $(which wget) $(which curl) # 确认权限修改结果 ls -l $(which wget) $(which curl)
二、配置防火墙限制出站连接
恶意代码下载通常需要发起出站网络连接,通过配置firewalld防火墙限制不必要的出站流量,可以从网络层面阻断下载路径。
首先查看当前防火墙状态和规则:
# 查看防火墙运行状态 systemctl status firewalld # 查看当前出站规则 firewall-cmd --list-all
仅允许必要的出站端口,比如HTTP(80)、HTTPS(443)如果是业务必须可以保留,否则可以关闭相关出站规则:
# 移除HTTP和HTTPS出站规则(如果业务不需要) firewall-cmd --permanent --remove-service=http firewall-cmd --permanent --remove-service=https # 重载防火墙规则 firewall-cmd --reload # 确认规则生效 firewall-cmd --list-all
三、优化SELinux安全策略
SELinux是CentOS自带的核心安全模块,通过合理配置可以限制恶意代码的执行权限。
首先查看SELinux的运行状态:
# 查看SELinux状态 getenforce
如果状态是disabled,建议修改为enforcing模式:
# 临时设置为enforcing模式 setenforce 1 # 永久修改配置文件 sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
针对常见的可执行目录,设置SELinux上下文限制,避免非授权路径的文件被执行:
# 限制/tmp目录下的文件无法被执行 semanage fcontext -a -t tmp_t '/tmp(/.*)?' restorecon -Rv /tmp
四、配置文件和目录执行权限
恶意代码通常会尝试在可写目录生成可执行文件,通过限制目录的执行权限可以避免这类情况。
检查常见临时目录和可写目录的权限:
# 查看/tmp、/var/tmp目录权限 ls -ld /tmp /var/tmp
移除这些目录的执行权限,同时设置粘滞位保证只有文件所有者可以删除自己的文件:
# 设置/tmp目录权限为1777,移除执行权限 chmod 1777 /tmp chmod o-x /tmp # 同样设置/var/tmp目录 chmod 1777 /var/tmp chmod o-x /var/tmp
五、配置命令审计和监控
通过配置auditd服务监控关键操作,及时发现恶意代码的下载和执行行为。
安装并启动auditd服务:
# 安装audit yum install audit -y # 启动并设置开机自启 systemctl start auditd systemctl enable auditd
添加监控规则,监控wget、curl的执行以及/tmp目录下的文件创建:
# 监控wget和curl执行 auditctl -w /usr/bin/wget -p x -k malware_download auditctl -w /usr/bin/curl -p x -k malware_download # 监控/tmp目录下的文件创建 auditctl -w /tmp -p w -k tmp_file_create # 查看当前监控规则 auditctl -l
后续可以通过ausearch -k malware_download命令查看相关操作的审计日志。