如何在 Linux 内核级别限制特权用户访问?
How to limit privileged user access at Linux Kernel level?
我在 learning Linux Kernel Programming 上找到了这个答案,我的问题更具体地针对 Linux 内核的安全功能。我想知道如何限制特权用户或进程对其他进程和文件的访问权限,而不是 root 的完全访问权限。
到目前为止我发现:
- user 和 group 用于自主访问控制 (DAC),在读、写和执行方面对用户、组和其他有区别
- 用户 root 用于更高权限的任务
- setuid和setgid扩展用户的DAC并设置group/user调用进程的ID,例如用户 运行
ping
具有打开 Linux 套接字的 root 权限
- Capabilities 用于细粒度权限,例如删除
ping
的 suid 位并设置 cap_net_raw
- 控制组 (Cgroups) 以限制对资源的访问,即 cpu、网络、io 设备
- Namespace 用于在 IPC、网络、文件系统、pid
上分隔进程视图
- 安全计算(Seccomp)限制系统调用
- Linux 安全模块 (LSM) 添加额外的安全功能,例如强制访问控制,例如SELinux 类型强制
列表是否完整?在写问题时,我发现 fanotify 可以监视文件系统事件,例如用于防病毒扫描。可能有更多可用的安全功能。
是否还有更多 Linux 安全功能可用于 以可编程方式 从文件或进程的内部或外部限制特权访问?也许有一个完整的列表。
您可以添加
EFS、AppArmor、Yama
auditctl、ausearch、aureport
类似于 fanotify 的工具:
Snort、ClamAV、OpenSSL、AIDE、nmap、GnuPG
传统的 unix 方法是限制需要更多特权但又包含它的进程,以便它不能使用超过它需要的东西是 "chroot" 它。
chroot 更改进程的表观根。如果操作正确,它只能访问新创建的 chroot 环境(又名 chroot jail)中的那些资源
例如它只能访问那些文件,也只能访问那些设备等
创建一个自愿执行此操作的流程相对容易,而且并不罕见。
要创建一个环境,让现有的软件(例如网络服务器、邮件服务器等)在其中感觉自在并且仍然正常运行是需要经验的。最主要的是找到所需的最少资源集(共享库、配置文件、设备、相关服务(例如系统日志)……)。
我在 learning Linux Kernel Programming 上找到了这个答案,我的问题更具体地针对 Linux 内核的安全功能。我想知道如何限制特权用户或进程对其他进程和文件的访问权限,而不是 root 的完全访问权限。
到目前为止我发现:
- user 和 group 用于自主访问控制 (DAC),在读、写和执行方面对用户、组和其他有区别
- 用户 root 用于更高权限的任务
- setuid和setgid扩展用户的DAC并设置group/user调用进程的ID,例如用户 运行
ping
具有打开 Linux 套接字的 root 权限 - Capabilities 用于细粒度权限,例如删除
ping
的 suid 位并设置cap_net_raw
- 控制组 (Cgroups) 以限制对资源的访问,即 cpu、网络、io 设备
- Namespace 用于在 IPC、网络、文件系统、pid 上分隔进程视图
- 安全计算(Seccomp)限制系统调用
- Linux 安全模块 (LSM) 添加额外的安全功能,例如强制访问控制,例如SELinux 类型强制
列表是否完整?在写问题时,我发现 fanotify 可以监视文件系统事件,例如用于防病毒扫描。可能有更多可用的安全功能。
是否还有更多 Linux 安全功能可用于 以可编程方式 从文件或进程的内部或外部限制特权访问?也许有一个完整的列表。
您可以添加 EFS、AppArmor、Yama auditctl、ausearch、aureport 类似于 fanotify 的工具: Snort、ClamAV、OpenSSL、AIDE、nmap、GnuPG
传统的 unix 方法是限制需要更多特权但又包含它的进程,以便它不能使用超过它需要的东西是 "chroot" 它。
chroot 更改进程的表观根。如果操作正确,它只能访问新创建的 chroot 环境(又名 chroot jail)中的那些资源 例如它只能访问那些文件,也只能访问那些设备等
创建一个自愿执行此操作的流程相对容易,而且并不罕见。
要创建一个环境,让现有的软件(例如网络服务器、邮件服务器等)在其中感觉自在并且仍然正常运行是需要经验的。最主要的是找到所需的最少资源集(共享库、配置文件、设备、相关服务(例如系统日志)……)。