поэтому я уже некоторое время использую SSH-туннели, чтобы ограничить доступ к внутренним сайтам или частям общедоступных сайтов, и поскольку только администраторы вообще имели доступ по SSH, я использовал стандартные учетные записи пользователей без полномочий root/sudo. Что ж, теперь, когда я расширяюсь и пытаюсь привлечь студентов в моих местных университетах к расширению своих проектов, им нужно будет начать доступ к некоторым из этих внутренних страниц.
Прокси-сервер представляет собой коробку CentOS 6.4 с включенным SELinux и не будет запускать никакие другие службы, кроме прокси. Я надеюсь в конечном итоге настроить полную VPN, но в этом случае это просто разрешить доступ к определенным машинам с белым списком IP, а не полный доступ к внутренней сети.
Я рассмотрел все способы настройки прокси-сервера SOCKS с учетными записями пользователей, такими как /bin /false и т.д., Но либо
А) они предполагают, что пересылается только один порт или хост (тогда как в этом случае у меня есть набор экземпляров VPS, которые будут меняться по требованию в сетевых конфигурациях), или
B) что используется обычный SSH-клиент, а не что-то вроде PuTTY (как бы мне не хотелось заставлять всех учащихся использовать виртуальную машину или устанавливать linux напрямую, это не совсем вариант, так как школа использует PuTTY для своей разработки оборудование для использования студентами).
Вот что я нашел до сих пор: если используется обычный ssh-клиент, я могу установить для оболочки пользователя значение /bin /false, и пользователь может указать команду -N при настройке прокси-сервера SOCKS, но, к сожалению, для пользователей PuTTY это кажется, не работает (по крайней мере, я не мог заставить его работать).
Когда PuTTY открывает туннель через параметры туннелирования по умолчанию, он должен открыть оболочку, которая немедленно отключается при входе в систему, поскольку у пользователя есть оболочка /bin /false. Если в настройках SSH указать аргумент "без оболочки или команды", параметры прокси-сервера, похоже, не будут настроены. Если я попытаюсь настроить прокси-сервер в параметрах SSH для удаленных команд, он все равно не запустится, если я не разрешу использование оболочки или других команд в параметрах.
Связанные вопросы я нашел, но не совсем подходит:
Создайте туннели SOCKS с PuTTY и nologin (технически это сработало бы, но оболочка - это просто команда сна, которая выполняется очень долго, и я переживаю, что ее можно избежать. Я предпочел бы иметь настоящую noshell, а не оболочку, которая просто висит из соображений безопасности)
https://askubuntu.com/questions/48129/how-to-create-a-restricted-ssh-user-for-port-forwarding (Это не работает, потому что для этого потребуется, чтобы пользователь использовал настоящую установку ssh и программы типа PuTTY не будут работать). Мне также нужно, чтобы они имели доступ к веб-страницам, хотя я полагаю, что я мог бы просто указать PermitTunnel для учетной записи, а не разрешить только определенный порт.
"noshell" для пользователей прокси-сервера ssh (этот вариант не работает для PuTTY по причинам, которые я изложил выше в связи с необходимостью включения в PuTTY команд для настройки прокси-сервера SOCKS)
Какие-либо предложения? Я мог легко что-то упустить, но я не уверен.
-Джим