限制执行权限:不给未知脚本赋权,使用chmod 644设为只读,定期检查临时目录可执行文件。2. 禁止不信任路径执行:确保PATH不含.或/tmp等高风险路径,清理异常环境变量。3. 启用审计监控:通过auditd记录execve调用,配置syslog收集日志,部署fail2ban或osquery检测异常。4. 隔离运行环境:用firejail沙箱或Docker容器运行不可信脚本,限制资源访问。5. 持续维护:保持系统更新、最小化安装、定期审查脚本,形成安全习惯。
防止恶意脚本在Linux系统中运行,关键在于权限控制、文件来源验证和系统行为监控。通过合理的配置和安全习惯,可以显著降低被攻击的风险。
限制执行权限
Linux系统中,脚本能否运行取决于其是否具有执行权限。大多数恶意脚本依赖可执行权限来启动,因此严格管理权限是第一道防线。
- 默认不给未知脚本赋予执行权限(如 chmod +x),只对确认安全的程序授权
- 使用 chmod 644 设置脚本为仅读,避免误执行
- 定期检查 /tmp、/var/tmp 等临时目录中的可执行文件:find /tmp -type f -executable -name "*.sh" -o -name "*.py"
禁止从不信任路径执行脚本
用户的 PATH 环境变量若包含当前目录(.)或可写目录,容易导致命令劫持。
- 确保 PATH 中不包含 . 或 /tmp 等高风险路径
- 检查用户环境变量:echo $PATH,并清理异常条目
- 在 shell 配置文件(如 ~/.bashrc)中显式定义安全的 PATH
启用脚本内容审计与监控
通过日志和监控工具追踪脚本行为,及时发现异常执行活动。
- 使用 auditd 记录 execve 系统调用,监控所有脚本启动行为
- 配置 syslog 或 rsyslog 收集 shell 执行日志
- 部署入侵检测工具如 fail2ban 或 osquery,识别可疑进程
使用沙箱或容器隔离运行环境
对于必须运行的第三方脚本,应限制其访问系统资源。
- 用 firejail 创建轻量级沙箱:firejail --noprofile bash script.sh
- 在 Docker 容器中运行不可信脚本,禁止特权模式(--privileged)
- 挂载只读文件系统,限制网络和设备访问
基本上就这些。保持系统更新、最小化软件安装、定期审查用户脚本,配合上述措施,能有效阻止多数恶意脚本的执行。安全不是一劳永逸,而是持续的习惯和配置优化。
linux docker 工具 ai 环境变量 配置文件 linux系统 bash echo var docker linux