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

Grsecurity: предоставить пользователю разрешение на просмотр всех процессов (Debian Jessie)

Когда Debian Jessie компилируется с grsecurity, простой пользователь не может видеть все процессы. Поэтому задачи, выполняемые клиентом Sensu (решение для мониторинга и телеметрии), не могут видеть, существуют ли другие процессы (например, Apache).

Есть ли способ предоставить sensu пользователь имеет право видеть все системные процессы?

Если пользователи не могут видеть процессы друг друга, Grsecurity компилируется с символом конфигурации ядра:

Ограничить / proc только для пользователя

GRKERNSEC_PROC_USER

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

Это зависит от GRKERNSEC_PROC_USERGROUP можете ли вы разрешить пользователю видеть другие процессы, добавив пользователя в специальную группу.

Разрешить особую группу

GRKERNSEC_PROC_USERGROUP

Если вы скажете Y здесь вы сможете выбрать группу, которая сможет просматривать все процессы и информацию, связанную с сетью. Если вы включили GRKERNSEC_HIDESYM, информация о ядре и символах может оставаться скрытой. Эта опция полезна, если вы хотите запустить identd как пользователь без полномочий root. Выбранную группу также можно выбрать во время загрузки через grsec_proc_gid= в командной строке ядра.

И GRKERNSEC_PROC_GID указывает группу, которая исключена (если не установлена ​​через CLI ядра во время загрузки).

Вы можете проверить, есть ли у вас этот набор, и добавить своего пользователя Sensu в эту группу:

  1. Найдите работающую версию ядра с помощью uname -r.
  2. Проверьте настройку из grep "GRKERNSEC_PROC_GID" /boot/config-<kernel_release>
  3. Ищите название этой группы из /etc/group. В то же время вы можете проверить все группы, к которым в настоящее время принадлежит ваш пользователь Sensu, иначе вы удалите его из всех этих групп на следующем шаге. (Если группа не существует, создайте ее с помощью groupadd -g GID grsecproc.)
  4. Добавьте вашего пользователя Sensu в эту группу с помощью usermod -a -G GROUP sensu, но не забудьте также перечислить все остальные группы из шага 3:

    -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
        A list of supplementary groups which the user is also a member of.
        Each group is separated from the next by a comma, with no
        intervening whitespace. The groups are subject to the same
        restrictions as the group given with the -g option.
    
        If the user is currently a member of a group which is not listed,
        the user will be removed from the group. This behaviour can be
        changed via the -a option, which appends the user to the current
        supplementary group list.
    

Как те же шаги работают для всего программного обеспечения для мониторинга серверов, список групп может отличаться. Поэтому я должен был подчеркнуть это, даже если в этом случае с Sensu не было никаких важных групп.

Это GRKERNSEC_PROC_GID (или GRKERNSEC_PROC_USERGROUP) не было установлено, (читайте о Компиляция нового ядра в Jessie и) вы можете настроить его с помощью make menuconfig и скомпилируйте ядро.