як налаштувати ssh acount без терміналу, а переадресації порту?


4

Я намагаюся створити новий обліковий запис користувача, який я можу дати друзям, щоб вони могли SSH перейти на мій передовий комп'ютер і дозволяти пересилати лише певні порти.

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

Приклад сеансу: Джо (друг) підключається за допомогою PuTTY (що я заздалегідь встановив, він непоганий з комп’ютерами) на example.com (мій Інтернет-комп'ютер), пересилаючи до нього порти 8080,1990,25565 (з тим, що коли-небудь закінчиться портів, які він хоче, бажано, щоб вони залишалися однаковими номерами. Наприклад, команда ssh робить подібні (але він все ще може змінити порти на моєму комп’ютері!)

ssh -N restricteduser@example.com -p443 -L8080:192.168.1.2:8080 -L1990:127.0.0.1:1990 -L25565:127.0.0.1:25565

потім, та ж історія з іншим Смітом Смітом (ті ж порти, навіть той самий користувач), за винятком того, що він використовує Linux, тому не може використовувати шпаклівку.

чи можна також залишити функціональність SSH за замовчуванням для всіх інших користувачів, окрім цього?

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


Добре запитання ..
atx

Відповіді:


4

Найпростіший спосіб, який мені спадає на думку, - це відключити SFTP і змінити оболонку на / usr / sbin / nologin або подібне (програма, яка просто роздруковує "Цей обліковий запис наразі недоступний". Виходить)

Якщо ви не маєте жодних проблем з тим, як вони зберігатимуть файли під користувачем на вашій машині, то ви / etc / passwd подалі від рішення. Якщо ви турбуєтесь про те, щоб вони наповнили ваш жорсткий диск непотрібними, я можу запропонувати встановити квоти? ;)

Що стосується обмеження придатних портів, то "дозвіл на відкриття" в sshd_config повинен чудово виконувати цю мету. Він не буде робити все, що ви хочете, оскільки він може заборонити лише всі, крім заданого набору цілей хоста для переадресації -L, але це може бути можливим запустити окремий sshd спеціально для цих користувачів, якщо у вас є такі специфічні потреби в їх обмеження.


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

проблеми з цим, як я його спробував: оболонка для нового користувача повинна бути / bin / rbash, зі зміненим $ PATH до порожнього, забороняючи будь-які та всі команди, а також не закривати сеанс ssh при підключенні (як при / user / sbin / nologin) і використовувати match $ username у налаштуваннях sshd добре працює для зміни всіх параметрів, необхідних для кожного користувача.
адміністрував

1
З -N, віддалену оболонку ніколи не слід запускати (Це може насправді знадобитися -T, але я не думаю, що так). Таким чином, nologin не виконується лише для переадресації портів. Встановлення PATH в порожнє не допомагає, якщо хтось або знає, як встановити змінні, або не проти запустити команду з повним шляхом команди (наприклад, / usr / bin / nmap)
Джеремі Стурдівант

тому що ідея полягає в тому, що я не можу довіряти користувачам додавати -NI use / bin / rbash (а не 'r'), ви не можете встановити змінні середовища або виконувати команди з символом '/' (це включає ./foo та / bin / *)
адміністрував

Отже, замість того, щоб просто завантажувати користувачів, які не використовують -N, ви даєте їм оболонку, яка не дозволяє їм робити що-небудь, за якимись стандартами? Ви завжди можете так само легко встановити їх шкаралупу на / бін / кота ...
Джеремі Стурдівант
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.