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

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

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

1 ответ

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

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

GRKERNSEC_PROC_USER

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

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

Разрешить специальную группу

GRKERNSEC_PROC_USERGROUP

Если вы говорите Y здесь вы сможете выбрать группу, которая сможет просматривать все процессы и информацию, связанную с сетью. Если вы включили GRKERNSEC_HIDESYM информация о ядре и символах может оставаться скрытой. Эта опция полезна, если вы хотите запустить idd как пользователь без полномочий 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 и скомпилировать ядро.

Другие вопросы по тегам