Tengo un servidor que llamaremos hub-server.tld con tres direcciones IP 100.200.130.121, 100.200.130.122 y 100.200.130.123. Tengo tres máquinas diferentes que están detrás de un firewall, pero quiero usar SSH para reenviar una máquina a cada dirección IP. Por ejemplo: machine-one debería escuchar SSH en el puerto 22 en 100.200.130.121, mientras que machine-two debería hacer lo mismo en 100.200.130.122, y así sucesivamente para diferentes servicios en puertos que pueden ser iguales en todas las máquinas.
La página de manual de SSH ha -R [bind_address:]port:host:hostport
enumerado Tengo puertos de puerta de enlace habilitados, pero cuando se usa -R
con una dirección IP específica, el servidor aún escucha en el puerto en todas las interfaces:
máquina uno:
# ssh -NR 100.200.130.121:22:localhost:22 [email protected]
hub-server.tld (Escucha SSH en el puerto 2222):
# netstat -tan | grep LISTEN
tcp 0 0 100.200.130.121:2222 0.0.0.0:* LISTEN
tcp 0 0 :::22 :::* LISTEN
tcp 0 0 :::80 :::* LISTEN
¿Hay alguna manera de hacer que SSH reenvíe solo conexiones en una dirección IP específica a la máquina uno para que pueda escuchar el puerto 22 en las otras direcciones IP al mismo tiempo, o tendré que hacer algo con iptables? Aquí están todas las líneas en mi configuración ssh que no son comentarios / valores predeterminados:
Port 2222
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication no
GSSAPICleanupCredentials no
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
ClientAliveInterval 30
ClientAliveCountMax 1000000
UseDNS no
Subsystem sftp /usr/libexec/openssh/sftp-server
fuente
clientspecified
era necesario en lugar de simplemente decir "habilitado": "Especificar una dirección de enlace remota solo tendrá éxito si la opción GatewayPorts del servidor está habilitada (ver sshd_config (5))". A partir de eso, pensé que solo tenía que configurarloyes
.