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

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

Я открыл ssh-туннель на своем шлюзе следующим образом:

autossh -M 30000 -f -N example.com -L \*:20022:192.168.1.40:22

Как я могу заставить пользователя, скажем, Джона, использовать только этот туннель ssh и ограничить всех остальных пользователей, которые у меня есть, чтобы ни один пользователь, кроме Джона, не мог использовать ssh через порт 20022? Обратите внимание, что пользователь john не существует на моем шлюзе, будь то локальный пользователь или в LDAP.

Публикуйте только открытый ключ Джона в файле authorized_keys на шлюзе. Включите pw auth.

Если клиент является хостом Linux, вы можете сделать это с помощью iptables:

iptables -A OUTPUT --dest 192.168.1.40 --dport 22 -m owner --uid-owner john -j ACCEPT
iptables -A OUTPUT --dest 192.168.1.40 --dport 22 -j REJECT

Обратите внимание, что это условия для адреса и порта назначения, а не для исходного порта 20022. Если вы действительно хотите ограничить доступ только для этого одного исходного порта, вы можете использовать --sport 20022 вместо того --dest и --dport. Но, конечно, это не помешает другому пользователю открыть аналогичный туннель на другом порту.