====== Модули MAC ======
* [[https://www.freebsd.org/doc/ru/books/handbook/mac.html|Принудительный контроль доступа (MAC)]]
* [[https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/mac.html|Mandatory Access Control]]
* [[http://www.lissyara.su/?id=2215|Повышение уровня безопасности apache с использованием МАС]]
* [[https://en.wikipedia.org/wiki/Biba_Model|Biba Model]]
* [[https://en.wikipedia.org/wiki/Multilevel_security|Multilevel security]]
===== Вариант использования пользователями =====
* Попробовать добавить [[https://www.freebsd.org/doc/ru_RU.KOI8-R/books/faq/security.html#idp71191528|уровень защиты (securelevel)]] для запрета изменения меток пользователям root
# cat /etc/login.conf
...
russian|Russian Users Accounts:\
:charset=UTF-8:\
:lang=ru_RU.UTF-8:\
:tc=default:\
:label=mls/5,biba/5:
...
# cap_mkdb /etc/login.conf
# pw usermod user1 -L russian
# mkdir ~user1/doc
# chown user1:user1 ~user1/doc
# setfmac 'biba/5,mls/5' ~user1/doc
# ls ~user1/doc
# setfmac 'biba/high,mls/low' ~user1/doc
# setpmac 'biba/5,mls/5' setfmac 'biba/high,mls/low' ~user1/doc
===== Вариант использования как AppArmor =====
==== Выбор приложения ====
* [[Средства программирования shell#Web сервер на shell]]
* [[Сервис INETD]]
==== Тестирование ====
# fetch -qo - http://server.corpX.un/index.html
# fetch -qo - http://server.corpX.un/../../etc/passwd
==== Патчинг модулей biba и mls ====
Идея: все процессы будут работать с меткой equal по умолчанию
* [[Управление ядром и модулями в FreeBSD#Установка исходных текстов ядра]]
# rcsdiff /usr/src/sys/security/mac_mls/mac_mls.c
875c875
< mls_set_effective(dest, MAC_MLS_TYPE_LOW, 0, NULL);
---
> mls_set_effective(dest, MAC_MLS_TYPE_EQUAL, 0, NULL);
# rcsdiff /usr/src/sys/security/mac_biba/mac_biba.c
915c915
< biba_set_effective(dest, MAC_BIBA_TYPE_HIGH, 0, NULL);
---
> biba_set_effective(dest, MAC_BIBA_TYPE_EQUAL, 0, NULL);
* [[Управление ядром и модулями в FreeBSD#Компиляция и инсталяция ядра]]
==== Включение модулей при загрузке ====
# cat /boot/loader.conf
mac_mls_load="YES"
mac_biba_load="YES"
# init 6
# ps axZ
==== Включение множественных меток на файловой системе ====
* [[https://www.freebsd.org/doc/ru/books/handbook/mac-troubleshoot.html|Решение проблем с инфраструктурой MAC]]
* В однопользовательский режим выполняем:
# tunefs -l enable /
# init 6
* Проверки:
# mount
/dev/ad0s1a on / (ufs, local, multilabel)
...
# getfmac /etc/passwd
# ls -Zl /etc/passwd
==== Установка меток на файловую систему ====
!!! Процесс занимает 2-5 минут !!!
# setfmac 'biba/high,mls/high' /etc/passwd
# ldd /bin/sh
# ldd /bin/cat
# ldd /usr/bin/file
# man file
# cat /etc/policy.contexts
.* biba/high,mls/high
/ biba/equal,mls/equal
/var biba/equal,mls/equal
/var/www biba/equal,mls/equal
/var/www/.* biba/equal,mls/equal
/bin biba/equal,mls/equal
/bin/sh biba/equal,mls/equal
/bin/cat biba/equal,mls/equal
/libexec biba/equal,mls/equal
/libexec/ld-elf.so.1 biba/equal,mls/equal
/lib biba/equal,mls/equal
/lib/libedit.so.7 biba/equal,mls/equal
/lib/libncursesw.so.8 biba/equal,mls/equal
/lib/libc.so.7 biba/equal,mls/equal
/usr biba/equal,mls/equal
/usr/bin biba/equal,mls/equal
/usr/bin/file biba/equal,mls/equal
/lib/libz.so.6 biba/equal,mls/equal
/usr/lib biba/equal,mls/equal
/usr/lib/libmagic.so.4 biba/equal,mls/equal
/usr/share biba/equal,mls/equal
/usr/share/misc biba/equal,mls/equal
/usr/share/misc/magic biba/equal,mls/equal
/usr/local biba/equal,mls/equal
/usr/local/sbin biba/equal,mls/equal
/usr/local/sbin/webd biba/equal,mls/equal
# setfsmac -evf /etc/policy.contexts /
==== Запуск приложения ====
# cat /etc/inetd.conf
...
http stream tcp nowait root /usr/sbin/setpmac setpmac biba/low,mls/low /usr/local/sbin/webd