arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
212 lines (133 loc) • 17 kB
Markdown
[TOMOYO Linux](http://tomoyo.sourceforge.jp/) это имплиментация системы управления доступом (MAC) Разработка началась в 2003 году и поддерживается [NTT Data Corporation](http://www.nttdata.co.jp/en/). TOMOYO Linux позволяет устанавливать рамки каждому процессу в системе, и может быть использован для ограничения доступа, как и для анализа поведения.
Для обеспечения безопасности TOMOYO Linux может быть использован для "MAC,который закрывает все практические цели для большинства пользователей и остается достаточно управляемым для системных администраторов". TOMOYO Linux не предназначен для профессионалов в области компьютерной безопасности, но инструмент для продвинутых пользователей и системных администраторов.
**Примечание:** Эта страница не предполагает исчерпывающую инструкцию и должно быть использовано в качестве поддержки к основной документации [Руководство пользователя](http://tomoyo.sourceforge.jp/documentation.html) поддерживаемой вместе с проектом.
**Tip:** [TOMOYO Linux 2.x](#TOMOYO_Linux_2.x) уже включена в репозитории [community] Arch Linux. Эта ветвь разработки уже близка к возможностям ветки 1.x, но ветка 2.х проще для установи. [TOMOYO Linux 1.x](#TOMOYO_Linux_1.x) для тех кому нужна более сильная система безопасности, пока [AKARI](#AKARI) где то между.
## Contents
* [1 Введение](#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5)
* [2 Разрабатываемые ветки](#.D0.A0.D0.B0.D0.B7.D1.80.D0.B0.D0.B1.D0.B0.D1.82.D1.8B.D0.B2.D0.B0.D0.B5.D0.BC.D1.8B.D0.B5_.D0.B2.D0.B5.D1.82.D0.BA.D0.B8)
* [3 TOMOYO Linux 1.x](#TOMOYO_Linux_1.x)
* [3.1 Начальная настройка](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0)
* [4 AKARI](#AKARI)
* [4.1 Ограничения AKARI](#.D0.9E.D0.B3.D1.80.D0.B0.D0.BD.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_AKARI)
* [4.2 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0)
* [4.3 Начальная настройка](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_2)
* [5 TOMOYO Linux 2.x](#TOMOYO_Linux_2.x)
* [5.1 Ограничения TOMOYO Linux 2.x](#.D0.9E.D0.B3.D1.80.D0.B0.D0.BD.D0.B8.D1.87.D0.B5.D0.BD.D0.B8.D1.8F_TOMOYO_Linux_2.x)
* [5.2 Установка](#.D0.A3.D1.81.D1.82.D0.B0.D0.BD.D0.BE.D0.B2.D0.BA.D0.B0_2)
* [5.3 Начальная настройка](#.D0.9D.D0.B0.D1.87.D0.B0.D0.BB.D1.8C.D0.BD.D0.B0.D1.8F_.D0.BD.D0.B0.D1.81.D1.82.D1.80.D0.BE.D0.B9.D0.BA.D0.B0_3)
* [6 Использование](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5)
* [7 Ссылки](#.D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8)
## Введение
TOMOYO Linux делает попытку сделать систему, в которой все происходит по ожидаемому, простому пути:
* Сделать все запросы к ядру, которые происходят в системе уже ожидаемыми.
* Позволить администратору составлять правила системы безопасности, которые разрешают только ожидаемые действия.
В отличии от AppArmor, TOMOYO Linux предназначен для защиты всей системы от атакующего который использует уязвимости в прикладных программах. TOMOYO Linux сопоставляет действия приложения, полученные в ходе тестового запуска с теми что происходит в реальных условиях, тем самым записывая или\и блокируя подозрительную активность..
TOMOYO Linux не для тех пользователь, которые ждут готовую систему правил подставляемую кем либо.Использование TOMOYO Linux требует создания правил безопасности и нуля в особом "режиме обучения" в котором система будет автоматически создавать файлы правил которые содержат необходимые и достаточные настройки доступа уникальные для отдельной системы. TOMOYO Linux отчитывается об о всём что происходит с системой и может быть использованы для аналитики. Это включает трассировку и отчеты, что было запущено каждой прикладной программой и какие попытки доступа к сетям или файлам были сделаны.
Таблица [сравнения](http://tomoyo.sourceforge.jp/wiki-e/?WhatIs#comparison) TOMOYO Linux с [AppArmor](/index.php/AppArmor "AppArmor"), [SELinux](/index.php/SELinux "SELinux") и [SMACK](http://schaufler-ca.com/).
## Разрабатываемые ветки
[TOMOYO Linux 1.x](http://tomoyo.sourceforge.jp/1.8/index.html.en) исходная ветвь разработки. Первый официальный релиз TOMOYO Linux произошел 11 Ноября 2005\. Он был выполнен в виде патча к ядру и в настоящее время находится в активной стадии разработки и может сосуществовать с другими системами безопасности, такими как SELinux, SMACK и AppArmor.
[TOMOYO Linux 2.x](http://tomoyo.sourceforge.jp/2.3/index.html.en) В Июне 2009 года была включена в состав ядра 2.6.30 и использует стандартный механизм Linux Security Module (LSM). Однако , возможностей LSM недостаточно, что бы в полной мере реализовать TOMOYO Linux. По этому разные ветки кода не могут иметь одинаковый функционал. Это [сравнение](http://tomoyo.sourceforge.jp/comparison.html.en) двух веток.
[AKARI](http://akari.sourceforge.jp/) Основный на 1.х ветке TOMOYO Linux проект выполненный в виде загружаемого модуля ядра(LKM). Это дает преимущество в том что пользователю не нужно накладывать патч на ядро и пересобирать ядро. Эта [таблица](http://akari.sourceforge.jp/comparison.html) содержит сравнение AKARI с TOMOYO Linux 1.x и 2.x.
## TOMOYO Linux 1.x
Реализация TOMOYO Linux 1.x используя модифицированное ядро предостовляет полный функционал TOMOYO Linux. На ядро необходимо наложить [патч](http://sourceforge.jp/projects/tomoyo/).
Необходимо модифицированное ядро kernel26-ccs и установленный набор прикладных утилит. Модифицированное ядро и набор утилит можно установить через AUR Ядро [kernel-ccs](https://aur.archlinux.org/packages.php?ID=44131) и пакет утилит [ccs-tools](https://aur.archlinux.org/packages.php?ID=42606).
### Начальная настройка
В первую очередь нужно инициализировать правила безопасности:
```
# /usr/lib/ccs/init_policy
```
Правила безопасности находятся в директории /etc/css/ и могут быть настроены запуском:
```
# ccs-editpolicy
```
## AKARI
### Ограничения AKARI
AKARI имеет преимущество в том что для него не требуется модифицироанное ядро. Если вам необходим TOMOYO Linux в большей степени для исследования системы, то AKARI - это простейший метод достижения. Однако, всё же некоторые условия должны быть соблюдены. При конфигурации ядра, должны быть установлены следующие опции в .config:
```
CONFIG_SECURITY=y [требуется]
CONFIG_KALLSYMS=y [требуется]
CONFIG_PROC_FS=y [требуется]
CONFIG_MODULES=y [требуется]
CONFIG_SECURITY_PATH=y [опционально: для использования абсолютных путей]
CONFIG_SECURITY_NETWORK=y [опционально: для использования сетевых ограничений]
```
* Настройка сложных сетевых ограничении невозможна по причине отсутствия нужной функциональности в LSM
* Использование [wikipedia:Capability-based_security](https://en.wikipedia.org/wiki/Capability-based_security "wikipedia:Capability-based security") не возможно.
* Возможно некоторое снижение производительности по сравнению с TOMOYO Linux 1.x
**Примечание:** Ядро Arch Linux начиная с 2.6.36 уже содержит все требуемые опции, для полной функциональности.
### Установка
AKARI и набор прикладных утилит должны быть установлены в первую очередь. Пакет [AKARI](https://aur.archlinux.org/packages.php?ID=42608) и пакет с утилитами [ccs-tools](https://aur.archlinux.org/packages.php?ID=42606) доступны в AUR.
Параметры загрузчика должны быть изменены для инициализации AKARI:
Пример для GRUB Legacy
```
title Arch Linux
root (hd0,0)
kernel /boot/vmlinuz26 root=/dev/sda1 ro **init=/sbin/ccs-init**
initrd /boot/kernel26.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, но всё еще не полна, но всё еще эффективна для управления доступом к файлам, но всё ещё не поддерживает следующие аспекты:
* атрибуты файлов и управление пространством имен.
* capabilities
* сеть.
* сигнал.
* переменные окружения.
* резервация порта.
### Установка
TOMOYO Linux 2.x часть ядра Linux и требует следующие опции в дополнение к названым ранее :
```
CONFIG_SECURITY_TOMOYO=y
```
**Примечание:** Ядро Arch Linux начиная с 2.6.36 уже содержит все требуемые опции, для полной функциональности.
Так как поддержка в ядре уже есть необходимо установить только набор прикладных утилит:
1. pacman -S tomoyo-tools
Для ядер начиная с 2.6.30 до 2.6.35, необходимо использовать tomoyo-tools 2.2.x. Пакет доступен в [AUR](https://aur.archlinux.org/packages.php?ID=42272)
### Начальная настройка
В первую очередь должны быть инициализированы политики безопасности:
```
# /usr/lib/tomoyo/init_policy
```
Политики безопасности находятся в директории /etc/tomoyo/ и могут быть настроены запуском:
```
# tomoyo-editpolicy
```
## Использование
Важно обратиться к документации TOMOYO Linux или AKARI:
* [TOMOYO Linux](http://tomoyo.sourceforge.jp/documentation.html.en)
* [AKARI](http://akari.sourceforge.jp/index.html.en)
Запустите редактор политик для начала настройки. Если используется TOMOYO Linux 1.x или AKARI тогда должны быть использованы утилиты ccs-tools:
```
# /usr/sbin/ccs-editpolicy
```
Если используется TOMOYO Linux 2.x тогда следует использовать tomoyo-tools:
```
# /usr/sbin/tomoyo-editpolicy
```
Как только система запустится , TOMOYO Linux создаст домены и построит из них древо.Доступ к возможностям аналитики и ограничения применяется через домены. Каждый процесс начинает с одного домена, и имя домена будет передан по наследству запущенным процесса. Имя домена состоит из цепочки имен, составляющих историю запуска. Например домен ядра <kernel>, тогда имя домена процесса /sbin/init запущенного ядром будет"<kernel> /sbin/init". Если /sbin/init запустит /etc/rc.d/rc, то имя домена будет "<kernel> /sbin/init /etc/rc.d/rc"
К каждому домену может быть привязан профиль. Существует четыре профиля по умолчанию:
| Disabled | Все работает как на обычном ядре. |
| Learning | Режим обучения. Не сбрасывать запрос если он не удовлетворяет текущей политике. Добавить запрос в политику. |
| Permissive | Разрешающий режим. Не сбрасывать запрос если он не удовлетворяет текущей политике. |
| Enforcing | Запрещающий режим. Сбросить запрос. |
Обучающий режим может быть использован для анализа какого либо приложения или всей системы. Все запросы, будут записаны. Так же этот режим может быть использован перед тем как применять запрещающую политику.
## Ссылки
* [Страница проекта TOMOYO Linux на SourceForge](http://tomomyo.sourceforge.jp/)
* [TOMOYO Linux Wiki](http://tomoyo.sourceforge.jp/wiki-e/)
* [Страница проекта AKARI на SourceForge](http://akari.sourceforge.jp/index.html.en)
* [AKARI документация](http://akari.sourceforge.jp/index.html.en)
* [TOMOYO Linux 1.8.x документация](http://tomoyo.sourceforge.jp/1.8/index.html.en)
* [TOMOYO Linux 2.3.x документация](http://tomoyo.sourceforge.jp/2.3/index.html.en)
* [Предназначение TOMOYO Linux](http://lwn.net/Articles/263179/)
* [Пример политики](http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/centos5.5/domain_policy.conf?v=policy-sample)
* [TOMOYO Linux в встроенных системах](http://elinux.org/TomoyoLinux)
* [Слайды с PacSec 2007](http://sourceforge.jp/projects/tomoyo/document/PacSec2007-en-demo.pdf)