Назад | Перейти на главную страницу

Ограничить назначение прямого туннелирования SSH пользователем

Можно ли ограничить назначение SSH для прямого туннелирования для отдельных пользователей?

Пример: клиент «а» может перенаправить туннель только на 192.168.10.2:22. Клиент «b» может перенаправить туннель на 192.168.11.2:22 - исключительно.

Обновить

Я хочу ограничить следующую команду туннелирования для каждого пользователя или группы:


Требования:

Действительная команда туннелирования (для client_a):

ssh -f client_a@gateway -L localhost:2222:192.168.10.2:22 -N

Недопустимая команда туннелирования (для client_a) - SSH-соединение на шлюзе должно быть немедленно закрыто.

ssh -f client_a@gateway -L localhost:2222:192.168.11.2:22 -N

Действительная команда туннелирования (для client_b):

ssh -f client_b@gateway -L localhost:2222:192.168.11.2:22 -N

Недопустимая команда туннелирования (для client_b) - SSH-соединение на шлюзе должно немедленно закрыться.

ssh -f client_b@gateway -L localhost:2222:192.168.10.2:22 -N

Можно ли добиться этого ограничения, изменив sshd_config?

Предполагая, что это современная версия sshd, / и т.д. / SSH / sshd_config поддерживает Match и PermitOpen директивы, которые можно комбинировать, чтобы ограничить цели, указанные в настройках клиентов. LocalForward параметры

Разрешитьоткрыть
Указывает места назначения, которым разрешена переадресация TCP-порта. Спецификация пересылки должна быть в одной из следующих форм:

          PermitOpen host:port
          PermitOpen IPv4_addr:port
          PermitOpen [IPv6_addr]:port

Можно указать несколько нападающих, разделив их белыми полосами. Аргумент «любой» может использоваться для снятия всех ограничений и разрешения любых запросов на пересылку. По умолчанию все запросы на переадресацию портов разрешены. https://www.freebsd.org/cgi/man.cgi?sshd_config(5)

Так что что-то вроде этого должно работать ...

Match User client_a
    PermitOpen none
    PermitOpen 192.168.10.2:22

Match User client_b
    PermitOpen none
    PermitOpen 192.168.11.2:22

Я не уверен на 100% в заказе этих PermitOpens .. (By default all port forwarding requests are permitted.), поэтому вам, возможно, придется отменить их или добавить Permit none в подходящий момент, чтобы заблокировать несоответствующие пересылки.

Или, возможно, вот так;

Match User client_a
    PermitOpen 192.168.10.2:22

Match User client_b
    PermitOpen 192.168.11.2:22

Match User client_a client_b
    PermitOpen none