TOMOYO linux

TOMOYO Linux是一种扩展的Linux提供强制访问控制( MAC )功能。它于2003年3月推出并获得NTT数据公司赞助。TOMOYO linux专注系统的特性,允许每个进程声明实现其目的所需的特性和资源。它可以用作系统分析工具以及访问限制工具。TOMOYO Linux的安全目标是为大多数用户提供强制访问控制适用于大多数用户的实际需求并且可供大多数管理员使用。TOMOYO Linux不仅适用于安全专业人员,也适用于普通用户和管理员。
TOMOYO Linux试图制作一切都预装好的系统以一个易理解的方式。在内核生命周期内至少进行一次所有的访问请求。允许管理员编写一个只允许想让访问才能访问的规则。与AppArmor不同,TOMOYO Linux旨在保护整个系统免受攻击者利用应用程序中的漏洞攻击。TOMOYO Linux通过记录测试环境中所有应用程序的行为,然后强制所有应用程序在生产环境中的这些记录行为中执行操作来解决此威胁。TOMOYO Linux不适用于需要其他人提供现成策略文件的用户。它涉及到从头开始创建政策,在“学习模式”的帮助下,可以自动生成策略文件,并为特定系统提供必要且足够的权限。TOMOYO Linux报告了Linux系统中发生的事情,因此可以用作系统分析工具。 它类似strace并报告每个程序正在执行什么以及访问哪些文件/网络。
发展分支:
TOMOYO Linux 1.x是开发的原始分支。 TOMOYO Linux于2005年11月11日首次发布。它作为可应用于Linux内核的补丁实施,并且仍在积极开发中。 它可以与其他安全模块(如SELinux,SMACK和AppArmor)共存。
TOMOYO Linux 2.x是开发的Linux主流内核分支。 2009年6月,TOMOYO被合并到Linux内核版本2.6.30中,并使用标准的Linux安全模块(LSM)挂钩。 但是,为了将TOMOYO Linux的完整MAC功能移植到Linux内核中,LSM挂钩必须进一步扩展。 因此,它还没有为开发的1.x分支提供相同的功能。
AKARI基于TOMOYO Linux 1.x分支,并作为可加载内核模块(LKM)实现。 因此它具有不需要用户修补和重新编译内核的优点。
TOMOYO Linux 1.x
使用ccs-patch打补丁的内核实现TOMOYO Linux 1.x提供了从TOMOYO Linux项目中获得的全部功能。 然而,这个分支的实现需要克服很多障碍,因为内核必须用ccs-patch打补丁,然后重新编译。同时必须安装linux-ccs和用户空间工具。 AUR上提供了用于linux-ccs的软件包和用于ccs-tools的软件包。
初始化配置

/usr/lib/ccs/init_policy

策略文件保存在/ etc / css /目录中,可以通过运行以下命令进行编辑:

ccs-editpolicy

AKARI
AKARI的局限性
AKARI具有不需要内核重新编译的优点。 如果单纯使用TOMOYO Linux项目进行系统分析,那么AKARI是实现这一目标的最简单方法。 如果使用TOMOYO Linux项目进行系统限制,这是获取TOMOYO Linux 1.x分支的大部分功能的最简单方法。 但是,有一些必须考虑的限制。
它取决于分发提供的内核版本和配置:
CONFIG_SECURITY=y [required]
CONFIG_KALLSYMS=y [required]
CONFIG_PROC_FS=y [required]
CONFIG_MODULES=y [required]
CONFIG_SECURITY_PATH=y [optional: for using absolute pathnames]
CONFIG_SECURITY_NETWORK=y [optional: for providing network restriction]
由于缺少所需的LSM钩子,一些高级网络操作的限制是有限的或无法使用的
无法限制使用功能。
为了保持KABI不变,查找每个任务变量的速度较慢,因为它们是在“struct task_struct”之外管理的。 但是,对于典型的最终用户来说,这不应该引人注意,因为基于路径名的权限检查占据主导地位,从而降低性能
arch linux下的安装
必须安装AKARI和用户空间工具。 AUR提供akariAUR软件包和ccs-toolsAUR软件包。
必须更改引导加载程序配置才能激活AKARI:
title Arch Linux
root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro init=/sbin/ccs-init
initrd /boot/initramfs-linux.img
初始化配置

/usr/lib/ccs/init_policy --module_name=akari

策略文件保存在/ etc / css /目录中,可以通过运行以下命令进行编辑:

ccs-editpolicy

TOMOYO Linux 2.x
TOMOYO Linux 2.x的限制
TOMOYO Linux 2.x在Linux主流内核中的实现尚未完成,但自2.5.x以来非常接近1.x。 与1.x分支相比,仍然需要实施一些功能。
安装
TOMOYO Linux 2.x是Linux主线内核的一部分,需要以下内核配置:
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_NETWORK=y [disabled in the Arch Linux kernel]
CONFIG_SECURITY_PATH=y
CONFIG_SECURITY_TOMOYO=y [disabled in the Arch Linux kernel]
如果内核支持TOMOYO Linux 2.x,则只需安装用户空间工具(来自AUR tomoyo-toolsAUR)。内核在2.6.30和2.6.35之间,tomoyo-tools 2.2.x应该已经被安装,AUR提供包的支持。
激活
如果可以,请追加append security=tomoyo TOMOYO_trigger=/usr/lib/systemd/systemd参数到GRUB_CMDLINE_LINUX_DEFAULT位置是/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=“quiet security=tomoyo TOMOYO_trigger=/usr/lib/systemd/systemd”
之后,重新编译grub.cfg

grub-mkconfig -o /boot/grub/grub.cfg

所以,TOMOYO会加载所有/etc/tomoyo/policy/current保存的策略当/usr/lib/systemd/systemd执行时。
接下来,检查激活是否成功。 你应该在你的dmesg输出中有以下几行(或类似的):
$ dmesg |grep -A 1 -B 1 TOMOYO
[ 0.003375] Security Framework initialized
[ 0.003387] TOMOYO Linux initialized
[ 0.003396] AppArmor: AppArmor disabled by boot time parameter

[ 6.829798] Calling /usr/bin/tomoyo-init to load policy. Please wait.
[ 6.833709] TOMOYO: 2.5.0
[ 6.833712] Mandatory Access Control activated.
第一次,当计算机进入关机/重新引导时,您可能需要将内存中策略自动保存到文件系统。 如果是写入
/usr/lib/systemd/system/tomoyo-savepolicy.service脚本。
/usr/lib/systemd/system/tomoyo-savepolicy.service
[Unit]
Description=Tomoyo savepolicy

[Service]
Type=oneshot
ExecStart=/bin/true
ExecStop=/usr/bin/tomoyo-savepolicy
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
您可以使用systemctl启用/禁用它:

systemctl enable tomoyo-savepolicy.service

初始化配置
该策略必须首先进行初始化:

/usr/lib/tomoyo/init_policy

策略文件被存储在/etc/tomoyo/目录同时可以在运行时编辑

tomoyo-editpolicy

默认情况下,tomoyo将以“已禁用”配置文件开始(请参阅下面的配置文件表)。 你现在可以为每个人启用学习模式。只需在命名空间中切换配置文件/etc/tomoyo/policy/current/domain_policy.conf

use_profile 1
use_group 0
如果不确定是否需要进行如此广泛的学习,请忽略此步骤。 您可以通过在“域转换编辑器”中使用tomoyo-editpolicy在任何选定域(域)上按S来切换配置文件。
现在重启电脑
日志守护进程
因为tomoyo存在日志守护进程/usr/sbin/tomoyo-auditd。这对监视闭源应用程序的行为很有用。初始配置文件已经很好的解释了,可以在这里找到/etc/tomoyo/tools/auditd.conf,记录文件在/var/log/tomoyo
要在systemd中使用它,请创建该文件/lib/systemd/system/tomoyo-auditd.service
用法
运行策略编辑器开始编辑。 如果使用TOMOYO Linux 1.x或AKARI,则应使用ccs-tools:

/usr/sbin/ccs-editpolicy

如果用TOMOYO Linux 2.x,则应该用tomoyo-tools

/usr/sbin/tomoyo-editpolicy

在系统运行时,TOMOYO Linux将创建域并将其添加到树中。允许分析/限制TOMOYO Linux通过域应用。每个进程都属于一个单独的域,并且只要执行程序,该进程就会转到不同的域。他的域名是流程执行历史的连接字符串表达式。例如,内核所属域的名称是“”域的名称/sbin/init由内核调用的属于" /sbin/init"。如果/sbin/init调用/etc/rc.d/rc那么它所属的域是" /sbin/init /etc/rc.d/rc"。您可以根据需要抑制或初始化域转换。
配置文件可以分配给每个域。 有四个默认配置文件:

Disabled
Works as if regular kernel.
Learning
Do not reject an access request if it violates policy. Append the request to policy.
Permissive
Do not reject an access request if it violates policy. Do not append the request to policy.
Enforcing
Reject an access request if it violates policy. Do not append the request to policy.
学习配置文件可用于分析系统或特定应用程序。一次一个域的所有访问请求都被识别出来,在选择执行配置文件之前,可以根据需要编辑该域的策略。这可以在系统启动的任何和所有域中完成。

1 个赞

服务器资源由ZeptoVM赞助

Partners Wiki Discord