SSH тунель для обмежених користувачів без PuTTY та без оболонки


5

тому я вже деякий час використовую тунелі SSH для обмеження доступу до внутрішніх сайтів або частин загальнодоступних сайтів, і оскільки лише адміністратори мали доступ до SSH, я використовував стандартні некористувальні / sudo акаунти користувачів. Ну а тепер, коли я розширюю і намагаюся залучити студентів моїх місцевих університетів до розширення своїх проектів, їм потрібно буде почати доступ до деяких із цих внутрішніх сторінок.

Проксі-сервер - це вікно CentOS 6.4, увімкнено SELinux, і він не запускає жодних інших служб, крім проксі. Я хочу врешті встановити повний VPN, але в цьому випадку це просто дозволити доступ до певних машин із білого списку IP, а не повний внутрішній доступ до мережі.

Я розглянув усі методи налаштування проксі-сервера SOCKS з обліковими записами користувачів, які мають такі речі, як / bin / false тощо, але

A) вони припускають, що передається лише один порт або хост (тоді як у цьому випадку у мене є набір екземплярів VPS, які змінюватимуться на вимогу в мережевих конфігураціях), або

B) що звичайний клієнт SSH використовується, а не щось на зразок PuTTY (стільки, як я хотів би змусити всіх учнів використовувати VM або встановити linux безпосередньо, це не зовсім варіант, оскільки школа використовує PuTTY для своєї інженерії апаратне забезпечення для учнів).

Ось що я знайшов досі: Якщо використовується звичайний клієнт ssh, я можу встановити оболонку користувача на / bin / false і користувач може вказати команду -N під час налаштування проксі-сервера SOCKS, але, на жаль, для користувачів PuTTY це Мабуть, не працює (принаймні, я не міг змусити його працювати).

Коли PuTTY відкриває тунель через параметри тунелювання за замовчуванням, він повинен відкрити оболонку, яка негайно відключається після входу, оскільки користувач має / bin / false помилку. Якщо я задаю аргумент "без оболонки чи команди" у налаштуваннях SSH, Параметри проксі, схоже, не отримують налаштування. Якщо я спробую встановити проксі-сервер у параметрах SSH для віддалених команд, він все ще не запускається, якщо я не дозволю оболонки або інших команд у параметрах.

Питання, пов’язані з цим, я знайшов, але не зовсім підходить:

Створіть тунелі SOCKS за допомогою PuTTY та нологіну (це технічно буде працювати, але оболонка - це просто команда сну, яка працює дуже довго, і я переживаю, щоб вона не вийшла. Я б швидше мав справжній ношел, а потім оболонка, яка просто висить з міркувань безпеки)

https://askubuntu.com/questions/48129/how-to-create-a-restricted-ssh-user-for-port-forwarding (Це не працює, оскільки потрібно, щоб користувач використовував справжню установку ssh , а такі програми, як PuTTY, не працюватимуть). Також вони мені потрібні, щоб мати доступ до веб-сторінок, хоча я припускаю, що я міг би просто вказати PermitTunnel для облікового запису, а не лише дозволити певний порт.

"noshell" для ssh-проксі-користувачів (цей не працює для PuTTY з причин, про які я говорив вище, щодо необхідності, щоб у PuTTY були включені команди для налаштування проксі-сервера SOCKS)

Будь-які пропозиції? Я легко міг щось пропустити, але я не впевнений.

-Джим

Відповіді:


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, яку я впроваджую у всіх моїх системах, але це над тим, щоб працювати над тим, як все інше працює.

-Джим


2

Щойно побачив, що у PuTTY є наступний варіант, і це може бути те, що ви шукаєте: З'єднання-> SSH-> Не запускайте оболонку чи команду

Якщо це ввімкнено, з'єднання встановлено, на консолі більше не відображається, але воно зберігається в живих і тунель працює нормально. Сподіваюся, це допомагає.


Зауважте, що в ОП сказано: "Якщо я задаю аргумент" без оболонки чи команди "в налаштуваннях SSH, параметри проксі, схоже, не мають налаштування". Це було кілька років тому. Може, колись була помилка? Ви перевірили свою відповідь /bin/falseяк оболонку?
Каміль Маціоровський

Так, я також перевіряв / bin / false як оболонку для користувача, як ви запропонували, і це було успішно знову. Я думаю, ви праві, можливо, це була помилка, яку виправили з початкової публікації.
Roland STAUB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.