3

поэтому я уже некоторое время использую 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)

Какие-либо предложения? Я мог легко что-то упустить, но я не уверен.

-Джим

2 ответа2

4

Я нашел решение (под постом здесь без использования тэгов, таких как nologin или noshell, а скорее простой трюк для пользователей Windows, но я заставил его работать для меня без оболочки).

Я создал пакетный скрипт, используя ответ из этого поста, который может запустить установку PuTTY по умолчанию и настроить туннель без выполнения команд, которые могут привести к отключению оболочки:

Мертвый простой SSH-туннель для моих пользователей Windows

"C:\Program Files (x86)\PuTTY\plink.exe" -v -N -D localhost:8080 proxy@remote_host

Так как это позволяет пользователям Windows с PuTTY теперь иметь доступ к туннелю, я могу использовать оболочку учетной записи как /bin /false.

Размещено здесь для тех, кто может оказаться в подобной ситуации и разрешить тему. Если есть какие-то другие решения, я хотел бы услышать их!

Теперь мне просто нужно попытаться заставить это работать с моей двухфакторной системой SSH push, которую я внедряю на всех своих системах, но это то, над чем нужно работать после того, как все остальное работает.

-Джим

0

Только что увидел, что PuTTY имеет следующую опцию, и это может быть то, что вы ищете:Соединение-> SSH-> Не запускать оболочку или команду

Если включено, соединение установлено, на консоли больше не отображается, но оно остается активным и туннель работает нормально. Надеюсь, поможет.

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