Предотвратить изменение файлов от пользователей: этот метод безопасен?
Мне было интересно сегодня, если есть способ заставить не-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
это популярная альтернатива. Даже если пользователь изменит свои настройки, инструмент вернет конфигурацию обратно в нормальное состояние. При желании он может предупредить, что изменение было необходимо.
Из ваших требований может показаться, что вы защищаете учетную запись для службы. Обычно эти учетные записи не имеют пароля и не являются учетной записью обычного пользователя. Такое требование к учетной записи обычного пользователя повысило бы мою безопасность. Как пользователь, я бы не принял такого рода ограничения на свой аккаунт. Как администратор, я был бы обеспокоен тем, что учетная запись используется в целях с двумя различными профилями безопасности.