Реализация защищенной среды с 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!