如何限制Linux内核级别的特权用户访问?

时间:2015-06-17 09:00:50

标签: linux security linux-kernel kernel

我在learning Linux Kernel Programming上找到了这个答案,我的问题更具体针对Linux内核的安全功能。我想知道如何限制特权用户或进程对其他进程和文件的访问权限,而不是完全访问root。

直到现在我发现:

    用于自主访问控制(DAC)的
  • 用户,区分用户,组和其他方面的读取,写入和执行
  • 用户root 用于更高权限的任务
  • setuid setgid 可扩展用户的DAC并设置呼叫流程的组/用户ID,例如用户以root权限运行ping以打开Linux套接字
  • 功能用于细粒度权利,例如删除ping的suid位并设置cap_net_raw
  • 控制组( Cgroups )限制对资源的访问,例如cpu,network,io devices
  • 命名空间,用于分隔IPC,网络,文件系统,pid上的进程视图
  • 安全计算( Seccomp )限制系统调用
  • Linux安全模块( LSM ),用于添加其他安全功能,例如强制访问控制,例如带有类型强制执行的SELinux

列表是否完整?在撰写问题时,我发现 fanotify 来监控文件系统事件,例如用于反病毒扫描。可能还有更多的安全功能。

是否还有可以从文件或进程内部或外部以可编程方式使用以限制特权访问的Linux安全功能?也许有一个完整的清单。

2 个答案:

答案 0 :(得分:2)

传统的unix方法限制一个过程,该过程以某种方式需要更多特权并且还包含它以使其不能使用超过它所需要的更多特权来#ch; chroot"它

chroot会更改进程的明显根。如果做得对,它只能访问新创建的chroot环境中的那些资源(aka。chroot jail) 例如它只能访问这些文件,但也只能访问那些设备等。

创建一个自愿地做到这一点的过程相对容易,并不常见。

创建一个环境,其中现有的软件(例如,网络服务器,邮件服务器......)在家中感觉并且仍然正常运行需要经验。主要的是找到所需的最小资源集(共享库,配置文件,设备,依赖服务(例如syslog),...)。

答案 1 :(得分:-1)

您可以添加 EFS,AppArmor的,山 AUDITCTL,ausearch,aureport 与fanotify类似的工具: Snort,ClamAV,OpenSSL,AIDE,nmap,GnuPG