Реализация защищенной среды с MAC



Нижеследующая демонстрация реализует защищенную среду с использованием различных MAC модулей с соответственно настроенными политиками. Используйте этот пример только для тестирования, он не предназначен для удовлетворения всех требований к защите. Реализация этих политик без понимания принципа их работы неприменима в реальных задачах.

Перед началом процесса настройки, на каждую файловую систему необходимо установить параметр multilabel, который упоминался в начале этой главы. Невыполнение этого требования приведет к ошибкам.

Создание insecure класса пользователя

Начните процедуру добавлением следующего класса пользователя к файлу /etc/login.conf:

insecure:\

:copyright=/etc/COPYRIGHT:\

:welcome=/etc/motd:\

:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\

:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

:manpath=/usr/share/man /usr/local/man:\

:nologin=/usr/sbin/nologin:\

:cputime=1h30m:\

:datasize=8M:\

:vmemoryuse=100M:\

:stacksize=2M:\

:memorylocked=4M:\

:memoryuse=8M:\

:filesize=8M:\

:coredumpsize=8M:\

:openfiles=24:\

:maxproc=32:\

:priority=0:\

:requirehome:\

:passwordtime=91d:\

:umask=022:\

:ignoretime@:\

:label=partition/13,mls/5:

и добавлением следующей строки к default классу пользователя:

:label=mls/equal,biba/equal,partition/equal:

После завершения этих действий, для пересборки базы данных должна быть выполнена следующая команда:

# cap_mkdb /etc/login.conf

Загрузка с необходимыми модулями

Добавьте к /boot/loader.conf следующие строки, чтобы необходимые модули были загружены при старте системы:

mac_biba_load="YES"

mac_mls_load="YES"

mac_seeotheruids_load="YES"

mac_partition_load="YES"

Установка всех пользователей в insecure

Всем учетным записям, кроме root или системных пользователей теперь потребуется присвоить класс (login class). При отсутствии класса пользователи не смогут получить доступа к обычным командам, таким как vi(1). Следующий скрипт sh сделает все необходимое:

# for x in `awk -F: '($3 >= 1001) && ($3 != 65534) { print $1 }' \

   /etc/passwd`; do pw usermod $x -L insecure; done;

После этого изменения необходимо запустить команду cap_mkdb на файле /etc/master.passwd.

Завершение настройки

Должен быть создан файл контекста; следующий пример взят из примера политики от Robert Watson, он может быть помещен в /etc/policy.contexts:

# This is the default BIBA/MLS policy for this system.

 

.*                         biba/high,mls/high

/sbin/dhclient             biba/high(low),mls/high(low)

/dev(/.*)?                 biba/equal,mls/equal

# This is not an exhaustive list of all "privileged" devices.

/dev/mdctl                 biba/high,mls/high

/dev/pci                   biba/high,mls/high

/dev/k?mem                 biba/high,mls/high

/dev/io                    biba/high,mls/high

/dev/agp.*                 biba/high,mls/high

(/var)?/tmp(/.*)?          biba/equal,mls/equal

/tmp/\.X11-unix            biba/high(equal),mls/high(equal)

/tmp/\.X11-unix/.*         biba/equal,mls/equal

/proc(/.*)?                biba/equal,mls/equal

/mnt.*                     biba/low,mls/low

(/usr)?/home               biba/high(low),mls/high(low)

(/usr)?/home/.*            biba/low,mls/low

/var/mail(/.*)?            biba/low,mls/low

/var/spool/mqueue(/.*)?    biba/low,mls/low

(/mnt)?/cdrom(/.*)?        biba/high,mls/high

(/usr)?/home/(ftp|samba)(/.*)? biba/high,mls/high

/var/log/sendmail\.st      biba/low,mls/low

/var/run/utmp              biba/equal,mls/equal

/var/log/(lastlog|wtmp)    biba/equal,mls/equal

Эта политика обеспечит безопасность путем применения ограничений на нисходящий и восходящий потоки информации в применении к каталогам и утилитам, приведенным в левой части файла.

Он может быть внесен в систему следующими командами:

# setfsmac -ef /etc/policy.contexts /

# setfsmac -ef /etc/policy.contexts /usr

Замечание: Раскладка вышеприведенной файловой системы может быть различной для разных систем.

Файл /etc/mac.conf требует следующих изменений в основном разделе:

default_labels file ?biba,?mls

default_labels ifnet ?biba,?mls

default_labels process ?biba,?mls,?partition

default_labels socket ?biba,?mls

Тестирование настройки

Добавьте пользователя с помощью команды adduser и поместите его в класс insecure для этих тестов.

В примерах ниже тестирование root и обычных пользователей будет смешиваться; форма приглашения поможет различить этих пользователей.

Основное тестирование меток

% getpmac

biba/15(15-15),mls/15(15-15),partition/15

# setpmac partition/15,mls/equal top

Замечание: Процесс top будет уничтожен перед тем, как мы запустим другой процесс top.


Дата добавления: 2018-10-26; просмотров: 188; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!