Как включить глубокий мониторинг приложений, ограниченных AppArmor: различия между версиями

Материал из Dynatrace
(Новая страница: «AppArmor — это обязательная система контроля доступа, которая ограничивает приложения огра...»)
 
Строка 11: Строка 11:
  /etc/apparmor.d/
  /etc/apparmor.d/
  |--- usr.sbin.tomcat-sysd
  |--- usr.sbin.tomcat-sysd
  |--- dynatrace-oneagent
  |--- oneagent
       |--- agentinjection
       |--- agentinjection
2. Содержимое <code>/etc/apparmor.d/dynatrace-oneagent/agentinjection</code> должно быть следующим:
2. Содержимое <code>/etc/apparmor.d/oneagent/agentinjection</code> должно быть следующим:
    #include <abstractions/base>
    #include <abstractions/base>
   #include <abstractions/nameservice>
   #include <abstractions/nameservice>
Строка 26: Строка 26:
   
   
  # OneAgent directories
  # OneAgent directories
   /opt/dynatrace/oneagent/agent/** mr,
   /opt/<name>/oneagent/agent/** mr,
   /var/lib/dynatrace/oneagent/** r,
   /var/lib/<name>/oneagent/** r,
   /var/lib/dynatrace/oneagent/agent/runtime/** w,
   /var/lib/<name>/oneagent/agent/runtime/** w,
   /var/lib/dynatrace/oneagent/agent/config/{discovery_entry_point,ruxit_shm_v*} w,
   /var/lib/<name>/oneagent/agent/config/{discovery_entry_point,ruxit_shm_v*} w,
   
   
  # This path must be adjusted if LOG_PATH installation parameter was used
  # This path must be adjusted if LOG_PATH installation parameter was used
   /var/log/dynatrace/oneagent/** rkw,
   /var/log/<name>/oneagent/** rkw,
   
   
  # This path must be adjusted if DATA_STORAGE installation parameter was used
  # This path must be adjusted if DATA_STORAGE installation parameter was used
   /var/lib/dynatrace/oneagent/datastorage/** rkw,
   /var/lib/<name>/oneagent/datastorage/** rkw,
   
   
  # Needed for Process Agent to determine whether specialized agent should be loaded and to calculate PGI ID
  # Needed for Process Agent to determine whether specialized agent should be loaded and to calculate PGI ID
Строка 54: Строка 54:
'''Примечание:''' Если вы использовали параметр установки [[ЕдиныйАгент настройка параметров установки в Linux|DATA_STORAGE]] для определения пользовательского каталога, предназначенного для хранения больших данных времени выполнения, отредактируйте следующую строку и добавьте свой пользовательский каталог.
'''Примечание:''' Если вы использовали параметр установки [[ЕдиныйАгент настройка параметров установки в Linux|DATA_STORAGE]] для определения пользовательского каталога, предназначенного для хранения больших данных времени выполнения, отредактируйте следующую строку и добавьте свой пользовательский каталог.
  # This path must be adjusted if DATA_STORAGE installation parameter was used
  # This path must be adjusted if DATA_STORAGE installation parameter was used
   /var/lib/dynatrace/oneagent/datastorage/** rkw,
   /var/lib/<name>/oneagent/datastorage/** rkw,
3. Включите набор правил в профиль Tomcat (<code>/etc/apparmor.d/usr.sbin.tomcat-sysd</code>).
3. Включите набор правил в профиль Tomcat (<code>/etc/apparmor.d/usr.sbin.tomcat-sysd</code>).
  /usr/sbin/tomcat-sysd {
  /usr/sbin/tomcat-sysd {
   #include <dynatrace-oneagent/agentinjection>
   #include <oneagent/agentinjection>
   
   
   ... (rest of the rules that were already present in the profile)
   ... (rest of the rules that were already present in the profile)
Строка 75: Строка 75:
   /etc/ld.so.preload r,
   /etc/ld.so.preload r,
   /etc/oneagentproc/ld.so.preload r,
   /etc/oneagentproc/ld.so.preload r,
   /var/log/dynatrace/oneagent/process/* rkw,
   /var/log/<name>/oneagent/process/* rkw,
Хотя этот шаг является необязательным, поскольку неудачные внедрения ЕдиногоАгента в другие процессы не повлияют на функциональность ваших приложений. Тем не менее, это может потребоваться, если вы используете IDS или другую автоматизированную систему, которая сообщает о предупреждениях об отказах в доступе, обнаруженных в журналах аудита.
Хотя этот шаг является необязательным, поскольку неудачные внедрения ЕдиногоАгента в другие процессы не повлияют на функциональность ваших приложений. Тем не менее, это может потребоваться, если вы используете IDS или другую автоматизированную систему, которая сообщает о предупреждениях об отказах в доступе, обнаруженных в журналах аудита.

Версия 16:42, 15 марта 2022

AppArmor — это обязательная система контроля доступа, которая ограничивает приложения ограниченным набором ресурсов. Для каждого ограниченного приложения существует профиль, определяющий, какие операции разрешено выполнять приложению, а также пути в файловой системе, к которым приложению разрешен доступ. Чтобы включить глубокий мониторинг приложений, ограниченных AppArmor, в профили этих приложений необходимо включить настраиваемый набор правил для ЕдиногоАгента.

Определение набора правил, а также пошаговое руководство по добавлению набора правил в существующий профиль представлены в примере ниже. В этом примере мы включаем глубокий мониторинг веб-сервера Apache Tomcat, для которого скрипт начальной загрузки находится в папке /usr/sbin/tomcat-sysd.

Мы предполагаем, что структура каталогов для AppArmor следующая:

/etc/apparmor.d/
|--- usr.sbin.tomcat-sysd

Где usr.sbin.tomcat-sysd — это файл, определяющий профиль AppArmor для Tomcat.

1. Создайте новый каталог и новый набор правил для ЕдиногоАгента в этом каталоге с именем agentinjection.

/etc/apparmor.d/
|--- usr.sbin.tomcat-sysd
|--- oneagent
     |--- agentinjection

2. Содержимое /etc/apparmor.d/oneagent/agentinjection должно быть следующим:

  #include <abstractions/base>
  #include <abstractions/nameservice>

# Process Agent injection
  /etc/ld.so.preload r,

# Host identifier calculation
  /sys/class/net/ r,
  /sys/devices/virtual/net/** r,
  /sys/devices/*/*{,/*}/net/** r,

# OneAgent directories
  /opt/<name>/oneagent/agent/** mr,
  /var/lib/<name>/oneagent/** r,
  /var/lib/<name>/oneagent/agent/runtime/** w,
  /var/lib/<name>/oneagent/agent/config/{discovery_entry_point,ruxit_shm_v*} w,

# This path must be adjusted if LOG_PATH installation parameter was used
  /var/log/<name>/oneagent/** rkw,

# This path must be adjusted if DATA_STORAGE installation parameter was used
  /var/lib/<name>/oneagent/datastorage/** rkw,

# Needed for Process Agent to determine whether specialized agent should be loaded and to calculate PGI ID
  /proc/[0-9]*/{cgroup,cmdline,environ,maps,mem,mountinfo,stat,statm,task/*/maps,task/*/mem} r,

# Miscellaneous
  /dev/random rw,
  /etc/os-release r,
  /proc/sys/fs/file-nr r,
  /proc/sys/kernel/hostname r,
  /proc/{uptime,vmstat} r,
  /sys/devices/system/cpu/ r,
  /sys/fs/cgroup/** r,
  /tmp/** rw,
  /var/tmp/ r,
  /var/tmp/** rw,
  /{,var/}run/utmp rk,

Примечание: Если вы использовали параметр установки DATA_STORAGE для определения пользовательского каталога, предназначенного для хранения больших данных времени выполнения, отредактируйте следующую строку и добавьте свой пользовательский каталог.

# This path must be adjusted if DATA_STORAGE installation parameter was used
  /var/lib/<name>/oneagent/datastorage/** rkw,

3. Включите набор правил в профиль Tomcat (/etc/apparmor.d/usr.sbin.tomcat-sysd).

/usr/sbin/tomcat-sysd {
  #include <oneagent/agentinjection>

 ... (rest of the rules that were already present in the profile)
}

4. Убедитесь, что заданный профиль работает правильно:

  1. Перезагрузите службу AppArmor.
  2. Перезапустите Tomcat.
  3. Убедитесь в веб-интерфейсе, что глубокий мониторинг работает для процесса Tomcat.
  4. Проверьте журналы аудита, чтобы убедиться в отсутствии отказов AppArmor.

Имейте в виду, что хотя набор правил, представленный в этом примере, был тщательно протестирован, его может потребоваться расширить или изменить из-за различий в среде, а пользовательский путь установки для ЕдиногоАгента не поддерживается.

Предупреждения об отказе в доступе в журналах аудита

Если вы сталкиваетесь с отказами, связанными с ЕдинымАгентом, для других процессов в системе, добавьте следующий набор правил в профили этих процессов.

# Process injection
  /etc/ld.so.preload r,
  /etc/oneagentproc/ld.so.preload r,
  /var/log/<name>/oneagent/process/* rkw,

Хотя этот шаг является необязательным, поскольку неудачные внедрения ЕдиногоАгента в другие процессы не повлияют на функциональность ваших приложений. Тем не менее, это может потребоваться, если вы используете IDS или другую автоматизированную систему, которая сообщает о предупреждениях об отказах в доступе, обнаруженных в журналах аудита.