上一主题: 加载内核模块时启用和禁用文件路径检查下一主题: 控制登录命令


保护二进制文件不被 kill 命令终止

您必需保护关键任务进程(例如数据库服务器或应用程序后台进程)免受拒绝服务攻击。 本地 UNIX 安全系统基于进程用户 ID 执行进程保护。 这表明在本地 UNIX 下,root 可以对任何进程执行任何操作。 CA ControlMinder 根据进程中运行的可执行文件定义规则,从而提高 UNIX 进程保护。 CA ControlMinder 进程保护独立于进程的用户 ID。 PROCESS 类中的记录必须定义 CA ControlMinder 将保护的每个进程。

例如,要保护 ASCII 查看器 /bin/more 不会被终止,请执行以下过程:

  1. 启动 selang。
  2. 输入以下 selang 命令:
    newres PROCESS /bin/more defaccess(N) owner(nobody)
    

    该命令将 /bin/more 定义为要针对终止尝试提供保护的进程;因此默认访问权限为 (N)。 owner(nobody) 设置确保即使是定义该规则的用户也不能终止 /bin/more 进程。

  3. 退出 selang。
  4. 测试第 2 步定义的规则:
    1. 输入以下命令:
      /bin/more /tmp/seosd.trace
      
    2. 假设 /tmp/seosd.trace 文件足够大,可防止 /bin/more 立即退出,那么按 Ctrl+Z 可挂起 /bin/more 进程。
    3. 尝试通过输入以下命令终止已挂起的作业:
      kill %1
      

      您的尝试应失败,CA ControlMinder 将显示“权限被拒绝”消息。

要指定允许特定用户终止 /bin/more 进程的例外,请输入以下 selang 命令:

authorize PROCESS /bin/more uid(username)

注意:使用相同过程可保护系统中的其他二进制可执行文件不会被终止。

CA ControlMinder 保护常规终止信号 (SIGTERM) 以及应用程序无法屏蔽的终止信号(SIGKILL 和 SIGSTOP)。 它将其他信号(例如 SIGHUP 或 SIGUSR1)传递到确定是忽略还是响应终止信号的进程。