答案:防止 Linux 系统被植入恶意脚本需建立纵深防御机制。1. 通过 noexec 挂载选项和限制可执行权限控制脚本运行;2. 使用 AIDE 等 工具 监控关键文件变更;3. 配置 auditd 审计 execve 调用并分析日志;4. 定期用 ClamAV、Lynis 等工具检测恶意特征。核心是最小权限与持续监控,多层防护降低风险。

Linux 系统被植入恶意脚本通常是因为权限管理不当、软件来源不可信或系统未及时更新。要防止此类问题,需从脚本执行控制、文件权限设置、行为监控和定期检测多方面入手。关键在于建立纵深防御机制,而不是依赖单一手段。
限制脚本执行权限
大多数恶意脚本依赖可执行权限运行,控制这一点能有效阻止攻击。
建议做法:
- 确保用户主目录、/tmp、/var/tmp 等临时路径挂载时使用 noexec 选项,防止在这些位置直接执行脚本。
- 定期检查系统中具有可执行权限的脚本文件,特别是非标准位置的文件。例如使用命令:
find / -type f (-name “*.sh” -o -name “*.py”) -executable -not -path “/bin/*” -not -path “/usr/*” -not -path “/lib/*” 2>/dev/null - 对普通用户禁用 shell 脚本执行权限,仅允许通过 sudo 执行特定白名单命令。
监控关键目录与文件变更
恶意脚本常修改系统启动项、定时任务或服务 配置文件。
重点关注路径:
- /etc/rc.local、/etc/crontab、/var/spool/cron/ 用户定时任务
- /etc/init.d/、/etc/systemd/system/ 系统服务目录
- /home/*/.bashrc、/root/.ssh/authorized_keys 启动加载项
使用文件完整性检测 工具 如 AIDE 或 tripwire 定期扫描关键文件变化。例如配置 AIDE 后每日运行:
aide –check
发现异常哈希即告警。
启用进程与行为审计
通过系统级审计跟踪可疑脚本行为。
使用 auditd 监控关键系统调用:
- 监控 execve 系统调用,记录所有脚本执行过程:
auditctl -a always,exit -F arch=b64 -S execve - 关注从非常规路径(如 /tmp)启动的解释器(/bin/sh、python、perl)
- 结合日志分析工具(如 rsyslog + grep 或 ELK)自动提取可疑行为模式
定期进行脚本安全检测
主动排查潜在威胁,尤其适用于已运行较长时间的服务器。
检测方法包括:
- 使用杀毒工具如 ClamAV 扫描脚本文件:
clamscan -r –bell -i /home /tmp - 搜索常见恶意特征,如 base64 编码 的长字符串、可疑网络连接(wget/curl 回连)、随机文件名等。
示例命令查找含可疑下载行为的脚本:
grep -r “curl|wget” /home –include=”*.sh” | grep -v “http://internal” - 使用开源工具如 Lynis 进行系统安全评估:
lynis audit system
基本上就这些。防护的核心是“最小权限 + 持续监控”。只要不让未知脚本能轻易执行,并及时发现异常变动,就能大幅降低被植入恶意脚本的风险。不复杂但容易忽略。