Допустим, у меня есть пользователь в моей системе (Ubuntu 16.04).

Есть ли способ убедиться, что он может использовать только SSH в какой-то виртуальной среде, но заставить его думать, что у него есть права sudo?

Могут ли помочь пространства имен Linux? Как применить chroot или пространство имен для пользователя, подключающегося из ssh?

Изменить: Предполагая, что Telnet отключен, есть ли другие способы, кроме SSH, для удаленного доступа к моей машине?

1 ответ1

3

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

В Linux LXC использует пространство имен для эффективного создания облегченной виртуальной машины. Я экспериментировал с этим пару лет назад и считаю, что root мог выйти из LXC, получив доступ к файловой системе /proc , которая предоставляет интерфейс для создания и управления существующими контейнерами. Это может быть лучше сейчас.

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

Вам нужно будет воссоздать ту среду, которая вам нужна, на виртуальной машине, и, поскольку виртуальная машина представляет собой отдельную физическую систему, вам придется отдельно обновлять ее, предоставлять достаточно дискового пространства для полной ОС и т.д. Но программы, работающие на ВМ, не могут избежать ее, исключая любые уязвимости в программном обеспечении ВМ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .