Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Оплата
Новости
Доставка
Загрузки
Форум
Настройка
    info@proxmox.su
    +7 (495) 320-70-49
    Заказать звонок
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Аспро: ЛайтШоп
    Телефоны
    +7 (495) 320-70-49
    Заказать звонок
    0
    0
    0
    Аспро: ЛайтШоп
    • +7 (495) 320-70-49
      • Назад
      • Телефоны
      • +7 (495) 320-70-49
      • Заказать звонок
    • info@proxmox.su
    • Москва, Бакунинская улица, 69с1
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Proxmox Виртуальная Среда
    AppArmor в привилегированном контейнере.

    Форумы: Proxmox Виртуальная Среда, Proxmox Backup Server, Proxmox Mail Gateway, Proxmox Datacenter Manager
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    AppArmor в привилегированном контейнере., Proxmox Виртуальная Среда
     
    Trevize
    Guest
    #1
    0
    12.04.2022 18:14:00
    У меня проблема, которая может быть нормальным поведением, а может и нет, ищу подтверждение. Каждый раз, когда я запускаю привилегированный контейнер или перезапускаю AppArmor внутри, я получаю следующее сообщение в системном журнале хоста:

    Код: 12 апр 17:49:12 kernel: [154462.321869] audit: type=1400 audit(1649778552.937:390): apparmor="STATUS" operation="profile_replace" info="not policy admin" error=-13 label="lxc-115_</var/lib/lxc>//&:lxc-115_<-var-lib-lxc>:unconfined" pid=4082008 comm="apparmor_parser"

    Также AppArmor внутри контейнера не работает:

    Код:
    * apparmor.service - Загрузка профилей AppArmor
       Загружено: загружено (/lib/systemd/system/apparmor.service; включено; предустановка производителя: включено)
       Активно: не работает (Результат: exit-code) с 12 апр 16:03:06 UTC; 15 сек назад
         Документация: man:apparmor(7)
                https://gitlab.com/apparmor/apparmor/wikis/home/
       Процесс: 77 ExecStart=/lib/apparmor/apparmor.systemd reload (код=завершено, статус=1/FAILURE)
      Основной PID: 77 (код=завершено, статус=1/FAILURE)
           CPU: 1.058s

    12 апр 16:03:05 ptest apparmor.systemd[128]: /sbin/apparmor_parser: Не удалось заменить "nvidia_modprobe". Запрещено; предпринята попытка загрузки профиля wh>
    12 апр 16:03:06 ptest apparmor.systemd[130]: /sbin/apparmor_parser: Не удалось заменить "/usr/lib/NetworkManager/nm-dhcp-client.action". Запрещено; >
    12 апр 16:03:06 ptest apparmor.systemd[132]: /sbin/apparmor_parser: Не удалось заменить "/usr/bin/man". Запрещено; предпринята попытка загрузки профиля, co>
    12 апр 16:03:06 ptest apparmor.systemd[134]: Пропуск профиля в /etc/apparmor.d/disable: usr.sbin.rsyslogd
    12 апр 16:03:06 ptest apparmor.systemd[136]: /sbin/apparmor_parser: Не удалось заменить "/usr/sbin/tcpdump". Запрещено; предпринята попытка загрузки профиля >
    12 апр 16:03:06 ptest apparmor.systemd[77]: Ошибка: Не удалось загрузить хотя бы один профиль
    12 апр 16:03:06 ptest systemd[1]: apparmor.service: Основной процесс завершился, код=завершено, статус=1/FAILURE
    12 апр 16:03:06 ptest systemd[1]: apparmor.service: Не удалось с результатом 'exit-code'.
    12 апр 16:03:06 ptest systemd[1]: Не удалось запустить Загрузка профилей AppArmor.
    12 апр 16:03:06 ptest systemd[1]: apparmor.service: Затрачено 1.058 секунды CPU времени. Несмотря на это, все работает, но это очень раздражает. Включение вложенных контейнеров на привилегированном контейнере после создания не меняет ничего, я все равно получаю сообщение об ошибке. (Я запускаю привилегированные контейнеры, потому что я монтирую ZFS наборы данных внутри контейнера и хочу видеть одни и те же пользователи/группы внутри и снаружи. Это домашний сервер в локальной сети) Шаблон — Ubuntu 20.04, скачанная через GUI.

    pveversion -v
    Код:
    proxmox-ve: 7.1-1 (ядро: 5.13.19-4-pve)
    pve-manager: 7.1-10 (версия: 7.1-10/6ddebafe)
    pve-kernel-helper: 7.1-10
    pve-kernel-5.13: 7.1-7
    pve-kernel-5.11: 7.0-10
    pve-kernel-5.4: 6.4-7
    pve-kernel-libc-dev: 5.15.19-1
    pve-kernel-5.13.19-4-pve: 5.13.19-9
    pve-kernel-5.11.22-7-pve: 5.11.22-12
    pve-kernel-5.11.22-5-pve: 5.11.22-10
    pve-kernel-5.4.143-1-pve: 5.4.143-1
    pve-kernel-5.4.78-2-pve: 5.4.78-2
    pve-kernel-5.4.73-1-pve: 5.4.73-1
    ceph-fuse: 14.2.21-1
    corosync: 3.1.5-pve2
    criu: 3.15-1+pve-1
    glusterfs-client: 9.2-1
    ifupdown: residual config
    ifupdown2: 3.1.0-1+pmx3
    ksm-control-daemon: 1.4-1
    libjs-extjs: 7.0.0-1
    libknet1: 1.22-pve2
    libproxmox-acme-perl: 1.4.1
    libproxmox-backup-qemu0: 1.2.0-1
    libpve-access-control: 7.1-6
    libpve-apiclient-perl: 3.2-1
    libpve-common-perl: 7.1-2
    libpve-guest-common-perl: 4.0-3
    libpve-http-server-perl: 4.1-1
    libpve-storage-perl: 7.1-1
    libqb0: 1.0.5-1
    libspice-server1: 0.14.3-2.1
    lvm2: 2.03.11-2.1
    lxc-pve: 4.0.11-1
    lxcfs: 4.0.11-pve1
    novnc-pve: 1.3.0-1
    proxmox-backup-client: 2.1.5-1
    proxmox-backup-file-restore: 2.1.5-1
    proxmox-mini-journalreader: 1.3-1
    proxmox-widget-toolkit: 3.4-5
    pve-cluster: 7.1-3
    pve-container: 4.1-3
    pve-docs: 7.1-2
    pve-edk2-firmware: 3.20210831-2
    pve-firewall: 4.2-5
    pve-firmware: 3.3-5
    pve-ha-manager: 3.3-3
    pve-i18n: 2.6-2
    pve-qemu-kvm: 6.1.1-1
    pve-xtermjs: 4.16.0-1
    qemu-server: 7.1-4
    smartmontools: 7.2-pve2
    spiceterm: 3.2-2
    swtpm: 0.7.0~rc1+2
    vncterm: 1.7-1
    zfsutils-linux: 2.1.2-pve1
     
     
     
    4am
    Guest
    #2
    0
    06.11.2022 21:34:00
    @dietmar или @Matthias, какие есть идеи?
    TL;DR: Мы пытаемся создать LXC контейнеры (как привилегированные, так и непривилегированные) с использованием шаблонов, предоставленных Proxmox, и сталкиваемся с ошибками AppArmor, в результате чего служба AppArmor отказывается запускаться. Разные результаты между Debian и Ubuntu, разные результаты (иногда?) с привилегированными и непривилегированными. Обычно я бы не беспокоил вас, но это происходит уже некоторое время. Надеюсь, я ничего не упустил из виду и не пропустил какую-то более крупную тему, извините, если так, или если я обращаюсь не к тем людям!

    Новый LXC с шаблоном Unbuntu 22.04:
    Nov 06 20:14:56 newlxc apparmor.systemd[109]: /sbin/apparmor_parser: Не удалось заменить "kmod". Разрешение запрещено; предпринята попытка загрузить профиль в режиме ограничения? Если я не ошибаюсь, AppArmor раньше работал без проблем внутри LXC контейнера — сделали ли мы что-то не так на нашей стороне (конфигурация хоста или что-то еще), или что-то сломано?
     
     
     
    wbumiller
    Guest
    #3
    0
    07.11.2022 15:19:00
    Наверное, это просто не считалось ошибкой? Вам правда нужно загружать профили AppArmor внутри контейнера? Администрирование профилей AppArmor требует CAP_MAC_ADMIN, который отбрасывается стандартной конфигурацией LXC. Вы можете добавить сниппет конфигурации, чтобы это включить: Код: # /usr/share/lxc/config/common.conf.d/02-stacked-apparmor.conf
    # Очистите это (так как основной common.conf заполняет его этими возможностями плюс mac_admin и mac_override
    lxc.cap.drop =

    # Отбрасываем некоторые опасные возможности
    lxc.cap.drop = sys_time sys_module sys_rawio У нас теперь есть поддержка вложенности/нерестования AppArmor, так что это должно быть в основном безопасно (но, если вы используете привилегированные контейнеры, безопасность — это не главное). Мы, вероятно, могли бы автоматизировать это на основе наличия вложенности, хотя. ( /sys/kernel/security/apparmor/features/domain/stack должно содержать yes )
     
     
     
    4am
    Guest
    #4
    0
    07.11.2022 15:47:00
    Привет, спасибо за быстрый ответ! Честно говоря, кажется, я немного не в теме; просто знаю, что служба AppArmor раньше не падала, а теперь падает; но получается, что ты говоришь, что AppArmor на хосте достаточно? Похоже, мне нужно немного подтянуть знания о том, как контейнеры взаимодействуют с хостовой ОС. Я лично сейчас не использую что-то вроде Docker внутри LXC, где это *нужно*. Получается, я могу просто спокойно игнорировать это как неактуальное для моего текущего варианта использования? (Мой контейнер – просто SMB-сервер для домашней сети). Но это хорошая информация для других, кто в ней нуждается, так что ещё раз спасибо за информативный пост.
     
     
     
    Indirectelex
    Guest
    #5
    0
    15.11.2022 01:41:00
    Приветствую! Прошу прощения, но мне нужна подсказка. Дело в том, что у меня получилось вот что: #PBS:/usr/share/lxc/config/common.conf.d# ls
    00-lxcfs.conf  01-pve.conf  README Нужно ли мне создать 02-stacked-apparmor.conf? Если да, то мне нужно вставить: lxc.cap.drop = sys_time sys_module sys_rawio, верно? Спасибо.
     
     
     
    majorjake
    Guest
    #6
    0
    14.01.2023 05:24:00
    Я тоже в такой же ситуации, ты хоть что-то добился по этому вопросу?
     
     
     
    faisalabdin90
    Guest
    #7
    0
    19.01.2023 21:25:00
    Привет! У меня похожая проблема с установкой и запуском сервисов через Docker в контейнере Ubuntu 22.04 на моём узле Proxmox. Извините, я новичок в среде Linux, только начал разбираться. Могу устанавливать и создавать Docker-контейнеры и успешно запускать сервисы в VM, но когда я пытаюсь сделать то же самое в LXC-контейнере, это не работает. Если я устанавливаю и создаю Docker-контейнеры на уровне узла, всё работает отлично, но если делать то же самое в контейнере, это работает неправильно. В моем случае я пытаюсь запустить Salcorn с файлом docker-compose.yml; некоторые сервисы устанавливаются успешно, но БД создать не удается. Постоянно получаю эту ошибку: Bash: Создание saltcorn-db... ошибка

    ERROR: для saltcorn-db Не удалось запустить сервис saltcorn-db: AppArmor включен в системе, но профиль docker-default не удалось загрузить: выполнение `/sbin/apparmor_parser apparmor_parser -Kr /var/lib/docker/tmp/docker-default531342309` завершилось с ошибкой: apparmor_parser: Не удалось заменить "docker-default". Запрещено. Попытка загрузить профиль во время ограничения?

    error: код выхода 243

    ERROR: для saltcorn-db Не удалось запустить сервис saltcorn-db: AppArmor включен в системе, но профиль docker-default не удалось загрузить: выполнение `/sbin/apparmor_parser apparmor_parser -Kr /var/lib/docker/tmp/docker-default531342309` завершилось с ошибкой: apparmor_parser: Не удалось заменить "docker-default". Запрещено. Попытка загрузить профиль во время ограничения?

    error: код выхода 243
    ERROR: Во время запуска проекта возникли ошибки. Обновление: также пытался сделать то же самое на контейнере Debian 11 (без AppArmor) с следующим сообщением об ошибке: Bash: Создание saltcorn-db... ошибка

    ERROR: для saltcorn-db Не удалось запустить сервис saltcorn-db: Не удалось создать процесс среды выполнения OCI: container_linux.go:367: Запуск процесса контейнера вызвал: process_linux.go:495: Инициализация контейнера вызвала: process_linux.go:458: Установка конфигурации cgroup для процесса procHooks вызвала: невозможно загрузить программу: операция не разрешена: неизвестно

    ERROR: для saltcorn-db Не удалось запустить сервис saltcorn-db: Не удалось создать процесс среды выполнения OCI: container_linux.go:367: Запуск процесса контейнера вызвал: process_linux.go:495: Инициализация контейнера вызвала: process_linux.go:458: Установка конфигурации cgroup для процесса procHooks вызвала: невозможно загрузить программу: операция не разрешена: неизвестно
    ERROR: Во время запуска проекта возникли ошибки. Я также отключал сервис AppArmor в контейнере и перезагружал систему, но без успеха. Пытался также отключить AppArmor на узле и перезагрузить, снова безрезультатно. Я предполагаю, что профиль docker-default автоматически добавляется в AppArmor при установке Docker. По крайней мере, так происходит на узле и на любой VM, но в случае контейнера профиль не загружается автоматически. Я пробовал это как в привилегированных, так и в непривилегированных контейнерах, и в обоих случаях безуспешно. Я понятия не имею, как вручную создать профиль docker-default в AppArmor и предоставить разрешения для моего варианта использования. Если кто-нибудь сможет подсказать мне правильный путь или предоставить решение, я буду благодарен.

    Proxmox узел:
    Bash: cat /etc/os-release
    PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
    NAME="Debian GNU/Linux"
    VERSION_ID="11"
    VERSION="11 (bullseye)"
    VERSION_CODENAME=bullseye
    ID=debian
    HOME_URL="https://www.debian.org/"
    SUPPORT_URL="https://www.debian.org/support"
    BUG_REPORT_URL="https://bugs.debian.org/"

    Bash: 16 профилей загружено.
    16 профилей в режиме enforce.
      /usr/bin/lxc-start
      /usr/bin/man
      /usr/sbin/chronyd
      docker-default
      lsb_release
      lxc-102_</var/lib/lxc>
      lxc-container-default
      lxc-container-default-cgns
      lxc-container-default-with-mounting
      lxc-container-default-with-nesting
      man_filter
      man_groff
      nvidia_modprobe
      nvidia_modprobe//kmod
      swtpm
      tcpdump
    0 профилей в режиме complain.
    26 процессов имеют профили, определенные.
    26 процессов в режиме enforce.
      /usr/bin/lxc-start (68243)
      /usr/sbin/chronyd (790)
      /usr/sbin/chronyd (804)
      /usr/lib/systemd/systemd (68267) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/bin/python3.8 (80507) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/sbin/sshd (80784) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/lib/systemd/systemd-networkd (80827) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/lib/systemd/systemd-resolved (80837) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/lib/systemd/systemd-journald (80841) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/bin/containerd (94443) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
      /usr/bin/dockerd (94663) lxc-102_</var/lib/lxc>//&:lxc-102_<-var-lib-lxc>:unconfined
    0 процессов в режиме complain.
    0 процессов не ограничены, но имеют профиль, определенный.

    Контейнер LXC создан на узле: (Привилегированный контейнер)

    Bash: cat /etc/os-release
    NAME="Ubuntu"
    VERSION="20.04.5 LTS (Focal Fossa)"
    ID=ubuntu
    ID_LIKE=debian
    PRETTY_NAME="Ubuntu 20.04.5 LTS"
    VERSION_ID="20.04"
    HOME_URL="https://www.ubuntu.com/"
    SUPPORT_URL="https://help.ubuntu.com/"
    BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
    PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
    VERSION_CODENAME=focal
    UBUNTU_CODENAME=focal

    Bash: aa-status
    Модуль apparmor загружен.
    0 профилей загружено.
    0 профилей в режиме enforce.
    0 профилей в режиме complain.
    0 процессов имеют профили, определенные.
    0 процессов в режиме enforce.
    0 процессов в режиме complain.
    0 процессов не ограничены, но имеют профиль, определенный.
     
     
     
    zeroxia
    Guest
    #8
    0
    16.04.2023 12:31:00
    Docker не запускается в этом привилегированном контейнере LXC Ubuntu 22.04 LTS, скорее всего, из-за этой проблемы с AppArmor. Пожалуйста, помогите это исправить, буду очень благодарен.
     
     
     
    baudneo
    Guest
    #9
    0
    12.05.2023 23:04:00
    Код: apt remove apparmor -y Внутри привилегированной LXC вы найдёте всё необходимое.
     
     
     
    smurff
    Guest
    #10
    0
    29.06.2023 11:07:00
    Неправильно, для запуска требуется AppArmor.
     
     
     
    Bobbbb
    Guest
    #11
    0
    20.07.2023 11:26:00
    Есть какие-нибудь новости на этот счет? Я могу использовать и другую версию Ubuntu… какая поддерживается?
     
     
     
    4am
    Guest
    #12
    0
    27.08.2022 06:20:00
    У меня это все еще происходит. Шаблоны больше нельзя использовать корректно с привилегированными контейнерами?
     
     
     
    eckoflyte
    Guest
    #13
    0
    31.08.2022 06:48:00
    У меня тоже самое на шаблоне Ubuntu 22.04. Пришлось перейти на шаблон Debian 11, потому что AppArmor, похоже, не включен, но это не лучший вариант.
     
     
     
    eckoflyte
    Guest
    #14
    0
    31.08.2022 06:48:00
    Похоже, потому что в CT Debian 11 AppArmor не включен. Попробуй запустить aa-status или aa-enabled в командной строке, чтобы убедиться. Получаю следующее: Bash: модуль apparmor загружен. Файловая система apparmor не смонтирована.
     
     
     
    4am
    Guest
    #15
    0
    31.08.2022 18:10:00
    У меня куча других сервисов падает в шаблоне Debian 11. Не хочу прибегать к запуску привилегированного контейнера без AppArmor; как я понимаю, это все равно что запускать его на хосте.
     
     
     
    chop249
    Guest
    #16
    0
    19.09.2022 17:51:00
    У меня та же проблема. Кто-нибудь уже нашел решение? Пытаюсь запустить Docker внутри LXC с Ubuntu 20.04. Пробовал и с вложенностью, и без - проблема остается.
     
     
     
    minion
    Guest
    #17
    0
    24.09.2022 00:37:00
    @Prox Mox, кто-нибудь может подсказать, в чём дело с этой проблемой? Это настоящий блокиратор, особенно с Privileged Containers, но похоже, что влияет и на Unprivileged. В моём случае, это затронуло несколько сервисов, но больше всего я обеспокоен ntp — смотри ниже:

    Код:
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    Suggested packages:
     ntp-doc
    The following NEW packages will be installed:
     ntp
    0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
    Need to get 721 kB of archives.
    After this operation, 2121 kB of additional disk space will be used.
    Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 ntp amd64 1:4.2.8p15+dfsg-1ubuntu2 [721 kB]
    Fetched 721 kB in 0s (4507 kB/s)
    Selecting previously unselected package ntp.
    (Reading database ... 34125 files and directories currently installed.)
    Preparing to unpack .../ntp_1%3A4.2.8p15+dfsg-1ubuntu2_amd64.deb ...
    Unpacking ntp (1:4.2.8p15+dfsg-1ubuntu2) ...
    Setting up ntp (1:4.2.8p15+dfsg-1ubuntu2) ...
    Created symlink /etc/systemd/system/network-pre.target.wants/ntp-systemd-netif.path -> /lib/systemd/system/ntp-systemd-netif.path.
    Created symlink /etc/systemd/system/multi-user.target.wants/ntp.service -> /lib/systemd/system/ntp.service.
    apparmor_parser: Unable to replace "/usr/sbin/ntpd". Permission denied; attempted to load a profile while confined?
    ntp-systemd-netif.service is a disabled or a static unit, not starting it.
    Processing triggers for man-db (2.10.2-1) ...
    root@dc1:~# systemctl enable ntp-systemd-netif.service
    The unit files have no installation config (WantedBy=, RequiredBy=, Also=,
    Alias= settings in the [Install] section, and DefaultInstance= for template
    units). This means they are not meant to be enabled using systemctl.

    Possible reasons for having this kind of units are:
    * A unit may be statically enabled by being symlinked from another unit's
     .wants/ or .requires/ directory.
    * A unit's purpose may be to act as a helper for some other unit which has
     a requirement dependency on it.
    * A unit may be started when needed via activation (socket, path, timer,
     D-Bus, udev, scripted systemctl call, ...).
    * In case of template units, the unit is meant to be enabled with some
     instance name specified.
     
     
     
    chop249
    Guest
    #18
    0
    24.09.2022 01:18:00
    Пришлось переносить всё в Debian 11 LXC/Docker. Может, когда-нибудь мы снова сможем рассматривать Ubuntu как вариант.
     
     
     
    mathx
    Guest
    #19
    0
    02.11.2022 14:30:00
    Ответа от техподдержки Proxima пока нет?
     
     
     
    Страницы: 1
    Читают тему
    +7 (495) 320-70-49
    info@proxmox.su

    Конфиденциальность Оферта
    © 2026 Proxmox.su
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры