====== Безопасность ======
===== Уровни безопасности =====
==== Теория ====
Допустимые значения уровня безопасности **securelevel** вариируются от-1 до 3.
* //-1// - безопасность отключена
* //0// - небезопасный уровень:
* используется во время загрузки или в однопользовательском режиме
* чтение файлов устройств и запись в них - строго согласно выставленным разрешениям
* любые системные флаги могут быть сброшены
* //1// - безопасный уровень:
* режим по умолчанию для многопользовательской системы
* уровень безопасности может быть понижен только с помощью init
* запрещена запись в устройства /dev/mem, /dev/kmem и /dev/io
* устройства сырых дисков в смонтированных файловых системах доступны только для чтения
* системные файловые флаги immutable и append-only не могут быть сброшены
* модули ядра не могут быть загружены или выгружены
* //2// - уровень высокой безопасности: к первому уровню добавляются свойства
* дисковые устройства всегда доступны только на чтение, не зависимо от того, смонтированы они или нет
* settimeofday(2) и clock_settime(2) не могут установить время, меньше текущего
* //3// - уровень сетевой безопасности: ко второму уровню добавляются свойства
* pf фильтр и правила NAT не могут быть изменены
==== Практика ====
Узнать текущий уровень безопасности можно командой
epsilon# sysctl kern.securelevel
Выставляется уровень безопасности в /etc/rc.conf:
kern_securelevel_enable="YES"
kern_securelevel=1
Уровень безопасности в процессе работы системы может только повышаться.