Установка и настройка SELinux
В целях безопасности необходимо, чтобы SELinux был установлен в системе хоста и был запущен.
SELinux может работать в двух режимах:
Enforcing — режим по умолчанию. При выборе этого режима все действия, которые нарушают текущую политику безопасности, будут блокироваться, а попытка нарушения будет зафиксирована в журнале.
Permissive — если используется этот режим, информация о всех действиях, которые нарушают текущую политику безопасности, будут зафиксированы в журнале, но сами действия не будут заблокированы.
Чтобы проверить статус и режима работы, воспользуйтесь командой sestatus
.
$ sudo sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
Если SELinux работает в режиме permissive, режим можно переключить на enforcing через команду
sudo setenforce 1
.
Включение поддержки SELinux
Далее включите поддержку SELinux для Docker. Для этого добавьте запись "selinux-enabled": true
в файл daemon.json.
{
"log-driver": "journald",
"live-restore": true,
"icc": false,
"disable-validation": true,
"selinux-enabled": true
}
После внесения изменений в файл daemon.json перезапустите Docker Daemon через команду sudo systemctl restart docker.service
.
Чтобы проверить успешность внесения изменений, воспользуйтесь следующими командами:
docker info
docker info | grep Security -A3
В разделе Security Options должна появиться строка selinux.
$ sudo docker info | grep Security -A3
WARNING: No kernel memory limit support
Security Options:
seccomp
Profile: default
selinux
WARNING: No oom kill disable support