diff options
Diffstat (limited to 'ru_RU.KOI8-R/books/handbook/mac/chapter.xml')
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/mac/chapter.xml | 149 |
1 files changed, 69 insertions, 80 deletions
diff --git a/ru_RU.KOI8-R/books/handbook/mac/chapter.xml b/ru_RU.KOI8-R/books/handbook/mac/chapter.xml index 5b034e17b1..46390e7ba9 100644 --- a/ru_RU.KOI8-R/books/handbook/mac/chapter.xml +++ b/ru_RU.KOI8-R/books/handbook/mac/chapter.xml @@ -7,28 +7,19 @@ Original revision: r22988 --> - -<chapter id="mac"> - <chapterinfo> +<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="mac"> + <info><title>Принудительный контроль доступа (MAC)</title> <authorgroup> - <author> - <firstname>Tom</firstname> - <surname>Rhodes</surname> - <contrib>Написал </contrib> - </author> + <author><personname><firstname>Tom</firstname><surname>Rhodes</surname></personname><contrib>Написал </contrib></author> </authorgroup> <authorgroup> - <author> - <firstname>Денис</firstname> - <surname>Пеплин</surname> - <contrib>Перевод на русский язык: </contrib> - </author> + <author><personname><firstname>Денис</firstname><surname>Пеплин</surname></personname><contrib>Перевод на русский язык: </contrib></author> </authorgroup> - </chapterinfo> + </info> - <title>Принудительный контроль доступа (MAC)</title> + - <sect1 id="mac-synopsis"> + <sect1 xml:id="mac-synopsis"> <title>Краткий обзор</title> <indexterm><primary>MAC</primary></indexterm> @@ -149,7 +140,7 @@ </sect2> </sect1> - <sect1 id="mac-inline-glossary"> + <sect1 xml:id="mac-inline-glossary"> <title>Ключевые термины этой главы</title> <para>Перед чтением этой главы необходимо ознакомиться с некоторыми @@ -251,7 +242,7 @@ </itemizedlist> </sect1> - <sect1 id="mac-initial"> + <sect1 xml:id="mac-initial"> <title>Описание MAC</title> <para>Усвоив все эти термины, рассмотрим как <acronym>MAC</acronym> @@ -347,7 +338,7 @@ </caution> </sect1> - <sect1 id="mac-understandlabel"> + <sect1 xml:id="mac-understandlabel"> <title>Метки MAC</title> <para>Метка <acronym>MAC</acronym> это атрибут безопасности, @@ -402,12 +393,12 @@ <para><emphasis>Постойте, но это же похоже на <acronym>DAC</acronym>! Я думал, что <acronym>MAC</acronym> дает контроль только администратору.</emphasis> Это утверждение все еще верно, - только <username>root</username> контролирует и настраивает + только <systemitem class="username">root</systemitem> контролирует и настраивает политики, так что пользователи помещаются в соответствующие категории/уровни доступа. Многие политики могут ограничить также - и пользователя <username>root</username>. + и пользователя <systemitem class="username">root</systemitem>. Базовый контроль над объектами затем - передается группе, но пользователь <username>root</username> + передается группе, но пользователь <systemitem class="username">root</systemitem> может отменить или изменить эти настройки в любое время. Данная иерархическая <!-- /clearance --> модель соответствует таким политикам как Biba и <acronym>MLS</acronym>.</para> @@ -740,7 +731,7 @@ test: biba/high</screen> </sect2> </sect1> - <sect1 id="mac-modules"> + <sect1 xml:id="mac-modules"> <title>Настройка модулей</title> <para>Каждый модуль, включенный в инфраструктуру <acronym>MAC</acronym>, @@ -764,7 +755,7 @@ test: biba/high</screen> меток в системе, поэтому параметр <command>tunefs</command> называется <option>multilabel</option>.</para> - <sect2 id="mac-seeotheruids"> + <sect2 xml:id="mac-seeotheruids"> <title>Модуль MAC seeotheruids</title> <indexterm> @@ -802,7 +793,7 @@ test: biba/high</screen> позволит исключить определенные группы из этой политики. Для исключения определенной группы, используйте переменную <command>sysctl</command> - <literal>security.mac.seeotheruids.specificgid=<replaceable>XXX</replaceable></literal>. + <literal>security.mac.seeotheruids.specificgid=XXX</literal>. В примере выше необходимо заменить <replaceable>XXX</replaceable> на числовой ID группы.</para> </listitem> @@ -817,7 +808,7 @@ test: biba/high</screen> </listitem> </itemizedlist> - <para>Необходимо отметить, что пользователь <username>root</username> + <para>Необходимо отметить, что пользователь <systemitem class="username">root</systemitem> не является исключением из этой политики. Это одно из самых существенных различий между <acronym>MAC</acronym> версией и обычными переменными, существующими по умолчанию: @@ -825,7 +816,7 @@ test: biba/high</screen> </sect2> </sect1> - <sect1 id="mac-bsdextended"> + <sect1 xml:id="mac-bsdextended"> <title>Модуль MAC bsdextended</title> <indexterm> @@ -868,7 +859,7 @@ test: biba/high</screen> <para>Как и можно было ожидать, правила не определены. Это означает, что доступ полностью открыт. Для создания правила, которое заблокирует доступ всех пользователей, но не повлияет - на <username>root</username>, просто запустите следующую + на <systemitem class="username">root</systemitem>, просто запустите следующую команду:</para> <screen>&prompt.root; <userinput>ugidfw add subject not uid root new object not uid root mode n</userinput></screen> @@ -883,22 +874,22 @@ test: biba/high</screen> как <command>ls</command>. Более патриотический список правил может быть таким:</para> - <screen>&prompt.root; <userinput>ugidfw set 2 subject uid <replaceable>user1</replaceable> object uid <replaceable>user2</replaceable> mode n</userinput> -&prompt.root; <userinput>ugidfw set 3 subject uid <replaceable>user1</replaceable> object gid <replaceable>user2</replaceable> mode n</userinput></screen> + <screen>&prompt.root; <userinput>ugidfw set 2 subject uid user1 object uid user2 mode n</userinput> +&prompt.root; <userinput>ugidfw set 3 subject uid user1 object gid user2 mode n</userinput></screen> <para>Эти команды запретят весь и любой доступ пользователя - <username>user1</username>, включая просмотр подкаталогов, к + <systemitem class="username">user1</systemitem>, включая просмотр подкаталогов, к домашнему каталогу пользователя - <username><replaceable>user2</replaceable></username>.</para> + <systemitem class="username"><replaceable>user2</replaceable></systemitem>.</para> - <para>Вместо <username>user1</username> может быть задано + <para>Вместо <systemitem class="username">user1</systemitem> может быть задано <option>not uid <replaceable>user2</replaceable></option>. Это включит те ограничения, о которых говорилось выше, для всех пользователей кроме одного.</para> <note> - <para>На пользователя <username>root</username> эти изменения не + <para>На пользователя <systemitem class="username">root</systemitem> эти изменения не повлияют.</para> </note> @@ -910,7 +901,7 @@ test: biba/high</screen> </sect2> </sect1> - <sect1 id="mac-ifoff"> + <sect1 xml:id="mac-ifoff"> <title>Модуль MAC ifoff</title> <indexterm> @@ -955,12 +946,12 @@ test: biba/high</screen> сетевой мониторинг в среде, где сетевой трафик не должен быть разрешен во время загрузки. Другое предлагаемое применение это написание скрипта, использующего - <filename role="package">security/aide</filename> для автоматического + <package>security/aide</package> для автоматического блокирования сетевого трафика, если будут обнаружены новые или измененные файлы в защищаемых каталогах.</para> </sect1> - <sect1 id="mac-portacl"> + <sect1 xml:id="mac-portacl"> <title>Модуль MAC portacl</title> <indexterm> @@ -978,7 +969,7 @@ test: biba/high</screen> <acronym>UDP</acronym>, используя различные переменные <command>sysctl</command>. По сути &man.mac.portacl.4; делает возможной привязку к привилегированным портам, т.е. к портам - с номерами меньше 1024 для не-<username>root</username> + с номерами меньше 1024 для не-<systemitem class="username">root</systemitem> пользователей.</para> <para>После загрузки этот модуль включит политику <acronym>MAC</acronym> @@ -1004,7 +995,7 @@ test: biba/high</screen> <listitem> <para><literal>security.mac.portacl.suser_exempt</literal>, если установлена в ненулевое значение, исключает пользователя - <username>root</username> из этой политики.</para> + <systemitem class="username">root</systemitem> из этой политики.</para> </listitem> <listitem> @@ -1040,7 +1031,7 @@ test: biba/high</screen> <para>По умолчанию в &unix;-подобных системах порты с номерами менее чем 1024 могут быть использованы только привилегированными - процессами, т.е. теми, что запущены от <username>root</username>. + процессами, т.е. теми, что запущены от <systemitem class="username">root</systemitem>. С &man.mac.portacl.4; для разрешения привязки непривилегированных процессов к портам с номерами ниже 1024 эти стандартные ограничения &unix; должны быть отменены. Это может быть выполнено путем @@ -1067,7 +1058,7 @@ test: biba/high</screen> <screen>&prompt.root; <userinput>sysctl security.mac.portacl.suser_exempt=1</userinput></screen> - <para>Пользователь <username>root</username> должен быть исключен + <para>Пользователь <systemitem class="username">root</systemitem> должен быть исключен из этой политики, для этого переменная <literal>security.mac.portacl.suser_exempt</literal> установлена в ненулевое значение. Модуль &man.mac.portacl.4; @@ -1077,9 +1068,9 @@ test: biba/high</screen> <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:80:tcp:80</userinput></screen> <para>Разрешает пользователю с <acronym>UID</acronym> 80 (обычно - это пользователь <username>www</username>) привязку к порту 80. - Теперь пользователь <username>www</username> сможет запустить - веб сервер даже без привилегии <username>root</username>.</para> + это пользователь <systemitem class="username">www</systemitem>) привязку к порту 80. + Теперь пользователь <systemitem class="username">www</systemitem> сможет запустить + веб сервер даже без привилегии <systemitem class="username">root</systemitem>.</para> <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995</userinput></screen> @@ -1091,7 +1082,7 @@ test: biba/high</screen> </sect2> </sect1> - <sect1 id="mac-labelingpolicies"> + <sect1 xml:id="mac-labelingpolicies"> <title>Политики MAC, использующие метки</title> <para>В следующих нескольких разделах будут обсуждаться политики @@ -1111,7 +1102,7 @@ test: biba/high</screen> <para>Для правильной работы этих политик необходимо выполнить некоторые приготовления.</para> - <sect2 id="mac-prep"> + <sect2 xml:id="mac-prep"> <title>Приготовления к использованию политик с метками</title> <para>В файл <filename>login.conf</filename> необходимо @@ -1160,9 +1151,9 @@ test: biba/high</screen> необходимо запустить команду &man.cap.mkdb.1; на &man.login.conf.5;.</para> - <para>Пользователю <username>root</username> также необходимо + <para>Пользователю <systemitem class="username">root</systemitem> также необходимо присвоить класс; иначе, почти любой команде, выполняемой - от <username>root</username>, потребуется использование + от <systemitem class="username">root</systemitem>, потребуется использование <command>setpmac</command>.</para> <!-- why? <warning> @@ -1195,7 +1186,7 @@ test: biba/high</screen> </sect2> </sect1> - <sect1 id="mac-partition"> + <sect1 xml:id="mac-partition"> <title>Модуль MAC partition</title> <indexterm> @@ -1263,7 +1254,7 @@ test: biba/high</screen> <note> <para>Пользователи могут могут увидеть процессы - <username>root</username>, если не загружена политика + <systemitem class="username">root</systemitem>, если не загружена политика &man.mac.seeotheruids.4;.</para> </note> @@ -1281,7 +1272,7 @@ test: biba/high</screen> </sect2> </sect1> - <sect1 id="mac-mls"> + <sect1 xml:id="mac-mls"> <title>Модуль многоуровневой безопасности MAC (MLS)</title> <indexterm> @@ -1405,8 +1396,7 @@ test: biba/high</screen> <para>Выше представлен краткий обзор возможностей политики <acronym>MLS</acronym>. Существует метод, связанный с созданием - основного файла политики в каталоге <filename - class="directory">/etc</filename>, где будет определена + основного файла политики в каталоге <filename>/etc</filename>, где будет определена необходимая для политики <acronym>MLS</acronym> информация, которая будет передана команде <command>setfmac</command>. Этот метод будет описан после рассмотрения всех политик.</para> @@ -1422,7 +1412,7 @@ test: biba/high</screen> иметь метку <literal>mls/low</literal>.</para> </sect1> - <sect1 id="mac-biba"> + <sect1 xml:id="mac-biba"> <title>Модуль MAC Biba</title> <indexterm> @@ -1539,7 +1529,7 @@ test: biba/low</screen> целостности.</para> </sect1> - <sect1 id="mac-lomac"> + <sect1 xml:id="mac-lomac"> <title>Модуль MAC LOMAC</title> <indexterm> @@ -1592,7 +1582,7 @@ test: biba/low</screen> </sect2> </sect1> - <sect1 id="mac-implementing"> + <sect1 xml:id="mac-implementing"> <title>Реализация защищенной среды с MAC</title> <indexterm> @@ -1674,14 +1664,14 @@ mac_partition_load="YES"</programlisting> <sect2> <title>Установка всех пользователей в insecure</title> - <para>Всем учетным записям, кроме <username>root</username> + <para>Всем учетным записям, кроме <systemitem class="username">root</systemitem> или системных пользователей теперь потребуется присвоить класс (login class). При отсутствии класса пользователи не смогут получить доступа к обычным командам, таким как &man.vi.1;. Следующий скрипт <command>sh</command> сделает все необходимое:</para> - <screen>&prompt.root; <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \</userinput> + <screen>&prompt.root; <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \</userinput> <userinput>/etc/passwd`; do pw usermod $x -L insecure; done;</userinput></screen> <para>После этого изменения необходимо запустить команду @@ -1758,7 +1748,7 @@ default_labels socket ?biba,?mls</programlisting> <command>adduser</command> и поместите его в класс <literal>insecure</literal> для этих тестов.</para> - <para>В примерах ниже тестирование <username>root</username> + <para>В примерах ниже тестирование <systemitem class="username">root</systemitem> и обычных пользователей будет смешиваться; форма приглашения поможет различить этих пользователей.</para> @@ -1832,7 +1822,7 @@ PING 192.0.34.166 (192.0.34.166): 56 data bytes ping: sendto: Permission denied</screen> <para>Пользователи не могут выполнить ping на - <hostid role="domainname">example.com</hostid>, или на любой + <systemitem class="fqdomainname">example.com</systemitem>, или на любой домен по этой причине.</para> <para>Для устранения этой ошибки, запустите следующую @@ -1872,7 +1862,7 @@ test5: biba/high,mls/equal &prompt.root; <userinput>chown testuser:testuser test?</userinput></screen> <para>Все эти файлы должны принадлежать пользователю - <username>testuser</username>. Тесты на чтение:</para> + <systemitem class="username">testuser</systemitem>. Тесты на чтение:</para> <screen>&prompt.user; <userinput>ls</userinput> test1 test2 test3 test4 test5 @@ -1888,7 +1878,7 @@ test3 test5</screen> <literal>(biba/high,mls/high)</literal>. Теперь несколько тестов на запись:</para> - <screen>&prompt.user; <userinput>for i in `echo test*`; do echo 1 > $i; done</userinput> + <screen>&prompt.user; <userinput>for i in `echo test*`; do echo 1 > $i; done</userinput> -su: test1: Permission denied -su: test4: Permission denied -su: test5: Permission denied</screen> @@ -1904,7 +1894,7 @@ cat: test2: Permission denied 1 cat: test4: Permission denied</screen> - <para>А теперь от <username>root</username>:</para> + <para>А теперь от <systemitem class="username">root</systemitem>:</para> <screen>&prompt.root; <userinput>cat test2</userinput> 1</screen> @@ -1912,7 +1902,7 @@ cat: test4: Permission denied</screen> </sect2> </sect1> - <sect1 id="MAC-examplehttpd"> + <sect1 xml:id="MAC-examplehttpd"> <title>Другой пример: Использование MAC для защиты веб сервера</title> <para>Будет создано отдельное хранилище для веб данных, @@ -1948,7 +1938,7 @@ cat: test4: Permission denied</screen> <para>Каждого пользователя необходимо поместить в класс по умолчанию; такая команда:</para> - <screen>&prompt.root; <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \</userinput> + <screen>&prompt.root; <userinput>for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \</userinput> <userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen> <para>быстро решит эту задачу.</para> @@ -1959,7 +1949,7 @@ cat: test4: Permission denied</screen> <para>Создайте пользователя для работы с основными веб данными, хранящимися в репозитории <application>cvs</application>. Этого пользователя необходимо поместить в новый класс, - <username>web</username>.</para> + <systemitem class="username">web</systemitem>.</para> <para>Поскольку метка по умолчанию <literal>biba/high</literal>, на репозитории она будет той же. Веб данные должны иметь @@ -1984,7 +1974,7 @@ exit;</programlisting> </note> <para>Этот скрипт теперь может быть помещен в домашний каталог - каталог пользователя <username>web</username>, необходимо + каталог пользователя <systemitem class="username">web</systemitem>, необходимо также добавить следующую запись &man.crontab.1;:</para> <programlisting># Выполнять checkout web данных под меткой biba/low каждые 12 часов: @@ -2039,7 +2029,7 @@ XXX </sect1> --> - <sect1 id="mac-troubleshoot"> + <sect1 xml:id="mac-troubleshoot"> <title>Решение проблем с инфраструктурой MAC</title> <indexterm> @@ -2128,15 +2118,14 @@ XXX <step> <para>Дважды проверьте политики с метками. Убедитесь, что политики настроены правильно для рассматриваемого пользователя, - приложения &xfree86;, и устройств в <filename - class="directory">/dev</filename>.</para> + приложения &xfree86;, и устройств в <filename>/dev</filename>.</para> </step> <step> <para>Если проблема не решена, отправьте сообщение об ошибке и описание вашей системы в список рассылки TrustedBSD, находящийся на веб сайте - <ulink url="http://www.TrustedBSD.org">TrustedBSD</ulink> + <link xlink:href="http://www.TrustedBSD.org">TrustedBSD</link> или в &a.questions;.</para> </step> </procedure> @@ -2145,28 +2134,28 @@ XXX <sect2> <title>Error: &man..secure.path.3; cannot stat <filename>.login_conf</filename></title> - <para>При попытке переключения от <username>root</username> на другого + <para>При попытке переключения от <systemitem class="username">root</systemitem> на другого пользователя системы, появляется сообщение об ошибке <errorname>_secure_path: unable to state .login_conf</errorname>.</para> <para>Это сообщение обычно показывается, когда у пользователя более высокая метка, чем у пользователя, которым он пытается стать. - Например, у пользователя системы <username>joe</username> метка по + Например, у пользователя системы <systemitem class="username">joe</systemitem> метка по умолчанию <option>biba/low</option>. Пользователь - <username>root</username>, метка которого <option>biba/high</option>, + <systemitem class="username">root</systemitem>, метка которого <option>biba/high</option>, не может просматривать домашний каталог пользователя - <username>joe</username>. Это не зависит от того, использует ли - пользователь <username>root</username> команду <command>su</command> - <username>joe</username> или нет. В этом сценарии модель - целостности Biba не позволит <username>root</username> просматривать + <systemitem class="username">joe</systemitem>. Это не зависит от того, использует ли + пользователь <systemitem class="username">root</systemitem> команду <command>su</command> + <systemitem class="username">joe</systemitem> или нет. В этом сценарии модель + целостности Biba не позволит <systemitem class="username">root</systemitem> просматривать объекты с низким уровнем целостности.</para> </sect2> <sect2> - <title>Пользователя <username>root</username> нет!</title> + <title>Пользователя <systemitem class="username">root</systemitem> нет!</title> <para>В нормальном или даже однопользовательском режиме - <username>root</username> не обнаруживается. Команда + <systemitem class="username">root</systemitem> не обнаруживается. Команда <command>whoami</command> возвращает 0 (нуль) и <command>su</command> возвращает <errorname>who are you?</errorname>. Что можно сделать?</para> |