Назад | Перейти на главную страницу

Как мне пропатчить мое ядро ​​3.2 патчами ядра apparmor?

У меня Ubuntu 12.04 с ядром 3.2 (64 бита)

Я скачал apparmor-2.8.0.tar.gz по адресу https://launchpad.net/apparmor/2.8/2...r-2.8.0.tar.gz

После распаковки я захожу в apparmor-2.8.0 / kernel-patches / 3.2 / и там 3 файла:

0001-AppArmor-compatibility-patch-for-v5-network-controll.patch 
0002-AppArmor-compatibility-patch-for-v5-interface.patch
0003-AppArmor-Allow-dfa-backward-compatibility-with-broke.patch

Я попытался: patch -p1 < 0001-AppArmor-compatibility-patch-for-v5-network-controll.patch

can't find file to patch at input line 26
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|From 125fccb600288968aa3395883c0a394c47176fcd Mon Sep 17 00:00:00 2001
|From: John Johansen <john.johansen@canonical.com>
|Date: Wed, 10 Aug 2011 22:02:39 -0700
|Subject: [PATCH 1/3] AppArmor: compatibility patch for v5 network controll
|
|Add compatibility for v5 network rules.
|
|Signed-off-by: John Johansen <john.johansen@canonical.com>
|---
| include/linux/lsm_audit.h | 4 +
| security/apparmor/Makefile | 19 +++-
| security/apparmor/include/net.h | 40 +++++++++
| security/apparmor/include/policy.h | 3 +
| security/apparmor/lsm.c | 112 ++++++++++++++++++++++++
| security/apparmor/net.c | 170 ++++++++++++++++++++++++++++++++++++
| security/apparmor/policy.c | 1 +
| security/apparmor/policy_unpack.c | 48 +++++++++-
| 8 files changed, 394 insertions(+), 3 deletions(-)
| create mode 100644 security/apparmor/include/net.h
| create mode 100644 security/apparmor/net.c
|
|diff --git a/include/linux/lsm_audit.h b/include/linux/lsm_audit.h
|index 88e78de..c63979a 100644
|--- a/include/linux/lsm_audit.h
|+++ b/include/linux/lsm_audit.h
--------------------------
File to patch:

Но затем он спрашивает меня: «Файл для исправления:».

Как мне это сделать?

РЕДАКТИРОВАТЬ: Я делаю это потому, что когда пытаюсь использовать aa-enforce, Я получаю следующее сообщение:

Setting /bin/ping to enforce mode. Warning: unable to find a suitable fs in /proc/mounts, is it mounted? Use --subdomainfs to override.

и когда я пытаюсь запустить Apparmor, я получаю следующее:

Cache read/write disabled: /sys/kernel/security/apparmor/features interface file missing. (Kernel needs AppArmor 2.4 compatibility patch.) Warning from /etc/apparmor.d/bin.ping (/etc/apparmor.d/bin.ping line 28): profile /bin/ping network rules not enforced

Во-первых, какой исходный код ядра 3.2 вы используете?

  • Вышестоящее ядро?
  • Ядро Ubuntu, в которое уже установлены патчи для apparmor?

В ядре Ubuntu 12.04 (3.2) уже должны быть применены исправления apparmor, поэтому исправление не требуется. Однако, если вам нужно исправить, вы должны находиться в корне исходного каталога ядра, а не в каталоге исправлений.

Эта ошибка

Предупреждение: не удалось найти подходящую файловую систему в / proc / mounts, она смонтирована? Используйте --subdomainfs для переопределения.

сообщает мне, что либо модуль ядра apparmor не встроен, не включен, либо securityfs не смонтирован.

Каталог /sys/module/apparmor существует?

  • Если он существует, apparmor был встроен, но не может быть включен, каково значение sudo cat /sys/module/apparmor/parameters/?
  • Если Y, то при загрузке ядра был включен apparmor, но необходимые файловые системы не могут быть смонтированы? Securityfs монтируется? Что возвращается mount команда?

    • Вы будете искать такую ​​строку: none on /sys/kernel/security type securityfs (rw)
    • Если securityfs смонтирован, а приложение apparmor включено, каковы выходные данные ls -a /sys/kernel/security/apparmor?

Если /sys/module/apparmor каталог не существует, ваше ядро ​​не было собрано с включенным apparmor. Вам нужно будет либо установить, либо собрать ядро ​​со встроенным apparmor. Его не нужно включать в качестве LSM по умолчанию, если вы не хотите, в такой ситуации обеспечивая security=apparmor в качестве параметра загрузки ядра включит apparmor.