В моей организации мы хотим внедрить стандарт управления пользователями после полного хаоса. Где мы (организация) и клиент могли получить доступ к пользователю root, и они внесли изменения, которые отключили сервер. Однако мы были виноваты в том, что играемся с файлами конфигурации.
Для решения любых проблем в будущем мы разработали модель, и было бы полезно получить информацию, независимо от того, является ли это наилучшей практикой или нет.
Шаг 1 - Пользователь root и пользователи без полномочий root с доступом sudo
Мы хотим иметь пользователей следующим образом -
Шаг 2 - Пользователи без полномочий root с ограниченным доступом к службам
Это будут отдельные пользователи, имеющие доступ только к одной службе.
У нас может быть больше пользователей для обработки различных сервисов. И никакой другой пользователь не может получить доступ к другой услуге, кроме выделенной услуги.
Шаг 3 - Аудит команд каждого пользователя в файле журнала
Для аудита я искал несколько решений, и большинство из них требовало запуска команды, например script , перед началом вашей работы. Я хочу, чтобы что-то работало постоянно, без какого-либо ручного вмешательства. Даже при перезагрузке сервера.
Пожалуйста, дайте мне знать, можем ли мы это сделать или есть какой-нибудь лучший подход к управлению ими.
Хотя идея звучит хорошо, то, как вы ее формулируете, указывает на то, что вам нужно меньше знаний для реализации своих идей на производственном уровне. То, что вы просите, - это ускоренный курс Linux по основным фактам о пользователях / группах и дополнительных механизмах, таких как SELinux. Imho, я думаю, тебе нужно найти кого-нибудь для выполнения этой работы.
Обновление:
1.) Организовать ответственность
Ситуация возникла из-за неясных обязанностей. Кому действительно нужен root-аккаунт? Админ и только админ. Остальное - сервис. Поэтому никогда не делитесь учетными записями root / sudo с кем-либо на регулярной основе (поддержка исключена).
2.) Пользователь без полномочий root / sudo может запускать и останавливать определенные службы, если администратор разрешает ему это делать:
2a.) Вы можете сделать определенные файлы исполняемыми для пользователей без полномочий root / sudo с помощью setUID
, setGUID
2b.) Вы можете запускать службы пользователей в пользовательском пространстве. Вручную установите Nginx и Mysql в / home / client
, и все готово!
3.) Когда дело доходит до аудита, я думаю, history
будет достаточно для начала. Пользователи непривилегированы и находятся в вашей цепочке доверия.
Как сказано в комментарии, selinux и auditd, а также psacct для просмотра процессов, запускаемых пользователями, также возможно, даже марионетка или что-то еще для принудительной настройки. Если будут внесены несанкционированные изменения, марионетка вернет конфигурацию обратно в официальное хорошее состояние.