Настройки для систем лимитирования и изоляции
Расположение файлов и директорий LimitedFS
Конфигурационные файлы LimitedFS находятся в директории /etc/limitedfs
.
Файловая система и точки монтирования для пользователей находятся в директории /srv/limitedfs
.
Настройка MIN_UID для систем лимитирования и изоляции
LimitedFS, а также система лимитирования, работают с пользователями, UID
которых больше или равен MIN_UID
.
По умолчанию значение MIN_UID
равно 1000
.
Просмотреть или изменить MIN_UID
можно с помощью следующих команд.
Команда задаёт
MIN UID
пользователей для LimitedFS.$ sudo lfsctl --set-min-uid
Команда отображает текущий установленный MIN UID.
$ sudo lfsctl --get-min-uid
Настройка MIN_UID
используется, чтобы разграничить пользователей,
которые должны быть ограничены при помощи систем лимитирования и изоляции,
и пользователей, к которым не должны применяться эти ограничения.
Пользователи, UID
которых меньше чем MIN_UID
, не будут ограничиваться системами лимитирования и изоляции.
Настройка MIN_UID
хранится в бинарном (двоичном) формате в файле /etc/limitedfs/ls.min.uid
.
При этом, если значение MIN_UID
равно значению по умолчанию (1000
), то файл /etc/limitedfs/ls.min.uid
удаляется (не существует).
Изоляция процессов пользователей (PID namespace)
При выключенной изоляции процессов, пользователь может видеть все процессы в системе (работающие как внутри LimitedFS, так и вне её).
Параметр монтирования директории /proc
, называемый hidepid
, позволяет скрыть от пользователя процессы других пользователей.
Параметр hidepid
используется при монтировании /proc
внутри LimitedFS, чтобы пользователь внутри LimitedFS видел только свои процессы.
Но если от имени пользователя работают процессы вне LimitedFS, то такие процессы тоже будут видны этому пользователю, если выполнить команду ps aux
внутри LimitedFS.
Функция изоляции процессов пользователей (PID namespace) предоставляет улучшенную изоляцию (ограничение видимости) процессов пользователя внутри LimitedFS. При включённой изоляции процессов, пользователь внутри LimitedFS видит только те свои процессы, которые работают внутри LimitedFS этого пользователя.
Для включения изоляции процессов выполните следующие команды:
$ sudo touch /etc/limitedfs/pid.ns.enable
$ sudo lfsctl --mount-lfs
Для выключения изоляции процессов выполните следующие команды:
$ sudo rm -f /etc/limitedfs/pid.ns.enable
$ sudo lfsctl --mount-lfs
На текущий момент изоляция процессов пользователей поддерживается в LimitedFS для сервисов su
, ssh
, cron
.
Конфигурационный файл /etc/limitedfs/limitedfs.json
Конфигурационный файл /etc/limitedfs/limitedfs.json
хранит некоторые настройки LimitedFS и имеет следующий вид (ниже показаны значения по умолчанию):
$ sudo cat /etc/limitedfs/limitedfs.json
{
"TmpwatchCmd": "/usr/sbin/tmpwatch -umlq 30d",
"TmpwatchDirs": [],
"TmpwatchDisable": false,
"CleanTmpfs": false,
"UseLdap": false,
"MountOptions": "",
"UseLS": true,
"BlackFilePath": "/usr/bin/false"
}
Описание параметров:
Параметр
TmpwatchCmd
задаёт команду, которая выполняется для очистки временных файлов.Параметр
TmpwatchDirs
хранит список дополнительных директорий для очистки временных файлов. По умолчанию (если указанный список пуст) очищаются директории/tmp
,/var/tmp
,/var/cache/php-eaccelerator
.Параметр
TmpwatchDisable
отключает очистку временных файлов внутри LimitedFS (true
= отключено,false
= включено).Параметр
CleanTmpfs
: Если включён режим создания изолированных директорий пользователей/tmp
внутри директории/tmp
реальной файловой системы (чтобы персональные директории/tmp
пользователей создавались не в домашней директории пользователя, как по умолчанию, а вtmpfs
), то очистка таких директорий/tmp
отключена по умолчанию. Чтобы включить очистку директорий/tmp
наtmpfs
, нужно прописать параметр"CleanTmpfs" : true
.Параметр
UseLdap
не используется и зарезервирован для будущих разработок.Параметр
MountOptions
задаёт опции монтирования директорий внутри LimitedFS. По умолчанию внутри LimitedFS разрешено выполнениеsuid
программ (например,exim
). Однако, это можно изменить, запретив выполнение всехsuid
программ внутри LimitedFS при помощи опции монтированияnosuid
. Для этого используется опцияMountOptions
в конфигурационном файле/etc/limitedfs/limitedfs.json
. В значении этого параметра через запятую перечисляются опции монтирования, которые должны использоваться внутри LimitedFS. Например, для отключения возможности выполненияsuid
программ внутри LimitedFS для опцииMountOptions
нужно указать значениеnosuid
, а затем выполнить командуlfsctl --mount-lfs
для применения изменений. При этом монтирования выполняются с опциейnosuid
, чтобы исключить повышение прав пользователя и повысить безопасность. Повышение прав с помощью битаsetuid
на исполняемых файлах, а также с помощью привилегий Linux (Linux capabilities
) внутри LimitedFS в этом случае будет отключено.Параметр
UseLS
определяет, будет ли выполняться пересоздание лимитированного окружения (LS) при пересоздании контейнера LimitedFS. По умолчанию, значение этого параметра равноtrue
, то есть выполняется пересоздание LS. Значение параметраfalse
отключает пересоздание LS при пересоздании LimitedFS. Использовать значениеfalse
рекомендуется только при наличии проблем в работе LS или LimitedFS. При обычном использовании этот параметр должен иметь значениеtrue
.Параметр
BlackFilePath
задаёт путь к файлу, который будет монтироваться поверх файлов из чёрного списка (при использовании режима моннтированияcustom
).
Для управления параметрами очистки временных файлов рекомендуется использовать соответствующие команды утилиты lfsctl
, а не редактировать конфигурационный
файл /etc/limitedfs/limitedfs.json
напрямую.