Мне нужно создать пользователя Linux с единственной целью - прокси SSH. Среди прочего, пользователь не должен иметь возможность исследовать файловую систему или даже получить доступ к оболочке.
Очевидно, я мог просто chmod
удалите все разрешения на чтение / запись / выполнение для всего, но это, очевидно, довольно плохой и потенциально трудоемкий вариант.
Единственное соединение, использующее этого пользователя, должно быть через ssh -D account@example.com
Я использую Debian 7.
Если пользователь собирается войти в систему, ему нужно будет прочитать некоторые биты файловой системы. Вы просто не можете запустить интерактивную оболочку без доступа к определенным файлам.
Если все, что им нужно сделать, это пройти аутентификацию на достаточном расстоянии для туннелирования других подключений (включая, как в данном случае, использование прокси-сервера ssh SOCKS), лучше запретить пользователю интерактивную оболочку (например, usermod -s /sbin/nologin account
), затем попросите их пройти аутентификацию без взаимодействия (ssh -N -D 23456 example@example.com
).
Не забывай это ssh -D
требует номер порта для привязки локального прокси-сервера SOCKS, поэтому пример в вашем вопросе синтаксически неверен.
Не могли бы вы вместо этого использовать пользователя или группу ssh с chrooted? Я никогда не реализовывал это сам, но, похоже, это может помочь: https://www.howtoforge.com/chrooted-ssh-sftp-tutorial-debian-lenny
Учебник предназначен для Ленни, но, надеюсь, это не сильно изменится.