¿Cómo redirigir el puerto ssh a otro puerto por nombre de usuario?

¿Cómo redirigir el puerto ssh a otro puerto por nombre de usuario?

Tengo sshd: Listen 2222en el servidor, y lo que quiero hacer es: ssh -p 2222 userA@ipy el servidor encuentra userA, luego redirige esta conexión al 6122puerto de este servidor, pero no quiero modificar en mi máquina local, porque hay cientos de usuarios, todos estos los usuarios tienen su propio contenedor acoplable, por ejemplo, para el usuario userA, lo ejecuto sshden su contenedor y expongo 22el puerto al 6122puerto del host. Por eso quiero usar iptablesu otras formas de reenviar Host:2222a Container:6122.

He probado comandos como los siguientes:

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

Pero no funciona. Soy nuevo en iptables, así que no estoy seguro de dónde me equivoqué. También intenté modificar /etc/ssh/sshd_configpara usar Match User userAel bloque, pero tampoco fallé. Cualquier sugerencia sera apreciada.

Respuesta1

El módulo propietario de iptables solo funciona con paquetes generados localmente en la máquina donde los paquetes se generan, no en un 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.

Pero ese UID/GID no está disponible fuera del servidor.

Iptables funciona con paquetes de red TCP/IP. Los paquetes tienen una IP de destino, un puerto de destino, una IP de origen y un puerto de origen, pero ninguna propiedad que diga: fueron generados por el usuario freshzyo el UID n.º 123 en la máquina de origen. Por lo tanto, iptables en el servidor remoto simplemente no tiene la información para hacer lo que usted quiere que haga; cree una regla para un usuario desde una máquina remota.

información relacionada