# setpmac partition/15,mls/equal,biba/high\(high-high\) top
% ps Zax
LABEL PID TT STAT TIME COMMAND
biba/high(high-high),mls/equal(low-high),
partition/15 1251 #C: S+ 0:00.02 top
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.06 -su
(bash)
biba/15(15-15),mls/15(15-15),partition/15 1157 #C: R+ 0:00.00 ps Zax
Политика Biba позволяет чтение объектов с более высокими метками.
# setpmac partition/15,mls/equal,biba/low top
% ps Zax
LABEL PID TT STAT TIME COMMAND
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.07 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1226 #C: R+ 0:00.01 ps Zax
Политика Biba не позволяет чтение объектов с более низкими метками; тем не менее,
MLS разрешает это.
% ifconfig bge0 | grep maclabel
maclabel biba/low(low-low),mls/low(low-low)
% ping -c 1 192.0.34.166
PING 192.0.34.166 (192.0.34.166): 56 data bytes
ping: sendto: Permission denied
Пользователи не могут выполнить ping на example.com, или на
любой домен по этой причине.
Для устранения этой ошибки, запустите следующую команду:
# sysctl security.mac.biba.trust_all_interfaces=1
Она устанавливает метку интерфейса по умолчанию в незащищенный режим, так что политика
Biba по умолчанию не будет применена.
# ifconfig bge0 maclabel biba/equal\(low-high\),mls/equal\(low-high\)
% ping -c 1 192.0.34.166
PING 192.0.34.166 (192.0.34.166): 56 data bytes
64 bytes from 192.0.34.166: icmp_seq=0 ttl=50 time=204.455 ms
--- 192.0.34.166 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 204.455/204.455/204.455/0.000 ms
Установив более корректную метку, мы можем использовать ping.
Теперь создадим файлы для процедуры тестирования чтения и записи:
# touch test1 test2 test3 test4 test5
# getfmac test1
test1: biba/equal,mls/equal
# setfmac biba/low test1 test2; setfmac biba/high test4 test5; \
setfmac mls/low test1 test3; setfmac mls/high test2 test4
# setfmac mls/equal,biba/equal test3 && getfmac test?
test1: biba/low,mls/low
test2: biba/low,mls/high
test3: biba/equal,mls/equal
test4: biba/high,mls/high
test5: biba/high,mls/equal
# chown testuser:testuser test?
Все эти файлы должны принадлежать пользователю testuser.
Тесты на чтение:
% ls
test1 test2 test3 test4 test5
% ls test?
ls: test1: Permission denied
ls: test2: Permission denied
ls: test4: Permission denied
test3 test5
Доступ на чтение не должен быть разрешен для пар: (biba/low,mls/low), (biba/low,mls/high)
и (biba/high,mls/high). Теперь несколько тестов на запись:
% for i in `echo test*`; do echo 1 > $i; done
-su: test1: Permission denied
-su: test4: Permission denied
-su: test5: Permission denied
Подобно тестам на чтение, доступ на запись должен быть запрещен для пар: (biba/low,mls/high) и (biba/equal,mls/equal).
% cat test?
cat: test1: Permission denied
cat: test2: Permission denied
1
cat: test4: Permission denied
А теперь от root:
# cat test2
1