Como redirecionar a porta ssh para outra porta por nome de usuário?

Como redirecionar a porta ssh para outra porta por nome de usuário?

Eu tenho sshd: Listen 2222no servidor, e o que eu quero fazer é: ssh -p 2222 userA@ip, e o servidor encontra userA, então redireciona essa conexão para 6122a porta deste servidor, mas não quero modificar na minha máquina local, pois existem centenas de usuários, todos esses os usuários têm seu próprio contêiner docker, por exemplo, para user userA, eu executo sshdem seu contêiner e exponho 22a porta à 6122porta do host. Então, eu quero usar iptablesou outras maneiras de encaminhar Host:2222para Container:6122.

Eu tentei comandos como abaixo:

iptables -t nat -A userA_rules -p tcp --dport 2222 -j REDIRECT --to-port 6122
iptables -A OUTPUT -m owner --uid-owner userA -j userA_rules

Mas não funciona. Sou novo em iptables, então não tenho certeza de onde estou errado. Também tentei modificar /etc/ssh/sshd_configpara usar Match User userAo bloco, mas também falhei. Qualquer sugestão seria apreciada.

Responder1

O módulo proprietário do iptables funciona apenas em pacotes gerados localmente na máquina onde os pacotes são gerados e não em um servidor remoto.

https://manpages.ubuntu.com/manpages/focal/en/man8/iptables-extensions.8.html

owner
   This  module  attempts to match various characteristics of the packet creator, for locally
   generated packets. This match  is  only  valid  in  the  OUTPUT  and  POSTROUTING  chains.
   Forwarded packets do not have any socket associated with them. Packets from kernel threads
   do have a socket, but usually no owner.

Mas esse UID/GID não está disponível fora do servidor.

Iptables funciona em pacotes de rede TCP/IP. Os pacotes têm um IP de destino, porta de destino, IP de origem e porta de origem, mas nenhuma propriedade que diga: eles foram gerados pelo usuário freshzyou UID #123 na máquina de origem. Portanto, o iptables no servidor remoto simplesmente não possui as informações para fazer o que você deseja; crie uma regra para um usuário de uma máquina remota.

informação relacionada