Предел количество одновременных пользователей, переключающихся на учетную запись root?

Это для Ubuntu 14.04 и Centos 7.

Мне нужно ограничить количество пользователей, активно работающих с правами root. т.е. вошли в систему как root на CLI.

В основном, Я хочу, чтобы только один пользователь одновременно мог запускать команды от имени пользователя root. Целью здесь является аудит.

Я изучал возможность установки ограничений в /etc/security/limits.conf, но модуль pam_limits.so, похоже, влияет только на вход в систему. Или оболочки входа. Точно сказать не могу. Но какими бы ни были особенности, он запрещает пользователю подключаться по SSH к ящику более одного раза, но не предотвращает, чтобы более одного пользователя становились суперпользователем через «sudo su». Таким образом, установка limits.conf может разрешить одновременный вход более чем одному пользователю с правами root.

Вот строка limits.conf, которую я пробовал, которая ограничивает это:

root            hard    maxlogins            1

Затем я попытался ограничить пользователей в группе @admins . Я решил, что только этим пользователям разрешено использовать sudo su для получения root-прав (на основе имеющихся у нас пользовательских правил sudo)

@admins            hard    maxlogins            1

Кажется, это делает то, что я хочу, но кажется неуклюжим / неправильным. Назовите это интуицией - я не совсем понимаю, что считаю неправильным в этом.

Наконец, «Почему?». Почему у меня есть это требование?

Мы пытаемся реализовать элементы управления, чтобы соответствовать требованию 8.5 PCI-DSS 3.1 «Не использовать групповые, общие или общие идентификаторы, пароли или другие методы аутентификации» - акцент на «общий ". В среде Windows вы просто разрешаете пользователям делать все, что угодно, и никто не разделяет основную учетную запись администратора. Среды Linux спроектированы таким образом, что для некоторых вещей вы действительно хотите войти в систему как root. В среде Linux должен быть совместимый с PCI способ решения этой проблемы.

5
задан 7 January 2016 в 17:12
1 ответ

Это решает мою проблему: Записывать в журнал все команды, выполняемые администраторами на производственных серверах

Резюме

1) Установите auditd

2) проверьте execve системный вызов с этими правилами в audit.rules

-a exit,always -F arch=b64 -F euid=0 -S execve
-a exit,always -F arch=b32 -F euid=0 -S execve

3) Добавьте audit = 1 в grub.conf

Примеры для Centos и Ubuntu:

#Centos
grep audit=1  /etc/default/grub || \
( sed -i.bak -e '/^GRUB_CMDLINE_LINUX=/ s/" *$/ audit=1"/' /etc/default/grub && \
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg )

#ubuntu
grep audit=1  /etc/default/grub || \
( sed -i.bak -e '/^GRUB_CMDLINE_LINUX=/ s/" *$/ audit=1"/' /etc/default/grub && \
/usr/sbin/update-grub )

4) Поместите эту строку в эти файлы / etc / pam.d / {login, kdm, sshd}

session  required                pam_loginuid.so

(я включил это резюме, поскольку ссылки на решения противоречат способу Serverfault)

2
ответ дан 3 December 2019 в 01:57

Теги

Похожие вопросы