Как создать пользователя с наименьшими привилегиями / разрешениями, но достаточным для туннелирования по ssh?

Я хочу использовать SSH Tunneling на своих локальных машинах, чтобы обойти государственные ограничения. Я говорю о создании прокси-сервера socks с использованием ssh-соединения.

ssh -f -N -D 1080 admin@server1.example.com

Это прекрасно работает прямо сейчас. Но я хочу передать это немногим другим людям (друзьям и членам семьи). Дело в том, что сейчас я использую администратора для этого. Я подумал, что мне, вероятно, следует просто создать пользователя без прав администратора / гостя для каждого человека.

Я немного волнуюсь, если они решат ssh нормально и запутаться в сервере, или если они потеряют учетные данные для входа или это попадет в руки хакера.

Вот и я хочу сделать еще один шаг вперед и ограничить их до такой степени, что они буквально не могут ничего сделать или нанести вред, но с достаточной функциональностью для запуска туннелирования ssh.

Так что же мне делать после adduser <username>?

4
задан 15 September 2019 в 22:43

1 ответ

После некоторого рытья и большой подсказки от Alex я нашел рабочее решение.

Только необходимо добавить 2 параметра при создании нового пользователя.

sudo adduser limiteduser --shell=/bin/false --no-create-home

--no-create-home пропустит создание корневого каталога для пользователя, и --shell=/bin/false удостоверится, что пользователь никогда не будет получать доступ оболочки, неважно, если они попытаются войти в систему локально или соединить удаленно использование ssh.

Если Вы параноики как я, можно также ограничить их в /etc/ssh/sshd_config как так:

Match user limiteduser
   ForceCommand /bin/false

Примечание: Не пытайтесь chroot их, Это не работает. По крайней мере, не для меня. Когда я судил к chroot их, я получил эту ошибку: channel 2: open failed: connect failed: Device or resource busy. Возможно, я не устанавливал свою chroot среду правильно, но я думаю, что chroot слишком изолируется, чтобы туннелирование работало.

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

ssh -N -D 1080 limiteduser@123.123.123.123

Это соединяется успешно и устанавливает туннель между Вами и Вашим сервером, который можно использовать для маршрутизации трафика в порте 1080. И это даже не требует доступа оболочки. В случае, если limiteduser обычно решает к ssh, они получают ошибку, и соединение SSH сразу закрывается.

4
ответ дан 1 December 2019 в 09:43

Другие вопросы по тегам:

Похожие вопросы: