Предотвратить изменение файлов от пользователей: этот метод безопасен?

Мне было интересно сегодня, если есть способ заставить не-root пользователя иметь определенный authorized_keys файл (среди других разумных файлов). Я придумал это решение.

  • запрещать StrictModes в sshd_config (надо маневрировать с владельцем файла и прочим, и sshd с StrictModes активный очень привередливый)
  • Запретить пользователю удаление файлов, не принадлежащих ему, в его домашнем каталоге с помощью залипающего бита:

    • chown root:user /home/user
    • chmod 1770 /home/user
  • Каждый файл и каталог, которые не должны быть изменены / удалены, должны пройти через это:

    • chown root:user file_or_folder
    • chmod 0640 file_or_folder
    • chmod g+x folder

Пока что этот подход, похоже, работает. Пользователь не может изменять / удалять файлы, и нет никакого риска, что пользователь оставит свою домашнюю папку для чтения / записи ( это, вероятно, является причинойStrictModes) потому что он не владеет своим домашним каталогом.

Вопрос: я что-то упустил? Можно ли это обойти? Есть ли недостатки?

2 ответа

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

Вы можете немного усложнить пользователю файл chattr +i, чтобы сделать его неизменным.

Я бы оставил StrictModes включенным. Он предназначен для того, чтобы затруднить кому-либо замену файла AuthorizedKeys пользователя. Возможно, вы защитили этого пользователя, но все остальные пользователи уязвимы.

Существует множество инструментов, которые можно использовать для восстановления нормальной конфигурации, если она сломалась. Я использую cfengine, puppet это популярная альтернатива. Даже если пользователь изменит свои настройки, инструмент вернет конфигурацию обратно в нормальное состояние. При желании он может предупредить, что изменение было необходимо.

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

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