Docker
Главной особенностью Docker в ОСнова является то, что контейнер работает в режимах защиты памяти PaX MPROTECT (ели не отключен) и замкнутой программной среды (ЗПС) (если включен).
Если контейнер не ОСнова, для работы в режиме замкнутой программной среды (ЗПС), его содержимое должно быть подписано. Это возможно сделать через наложение дампа
либо через подпись
экспортированного контейнера с последующей запаковкой (с учетом расширенных атрибутов,
)и импортом.
Если защита памяти PaX MPROTECT не отключена (глобальное отключение через mprotect=off в командной строке ядра или в конфиге grub, работает для всех ядер кроме hardened) и контейнер не ОСнова, некоторое ПО работать в нем не будет. Например Java.
Возможна установка в контейнер paxrat
или ручная разметка исключений через
или через наложение дампа
или через
или через запуск контейнера в контексте безопасности NESS, отключающем защиту памяти PaX MPROTECT.
Контейнер может иметь определенный установленный контекст безопасности NESS. По умолчанию контекст пустой.
Возможен запуск всех контейнеров с контекстом, отключающим защиту памяти PaX MPROTECT.
Для этого в файле /lib/systemd/system/docker.service в конце секции [Service] дописать:
И перезагрузить Docker.
sudo systemctl restart docker
Установка
Добавить пользователя в группу docker, перелогиниться.
Создание образа ОСнова
sudo tar --xattrs-include=user.pax.flags --xattrs-include=security.ima --xattrs-include=security.NESSCTX -C onyx/ -c . | docker import - onyx