Eu tenho um servidor que vamos chamar hub-server.tld com três endereços IP 100.200.130.121, 100.200.130.122 e 100.200.130.123. Eu tenho três máquinas diferentes que estão atrás de um firewall, mas eu quero usar o SSH para encaminhar uma máquina para cada endereço IP. Por exemplo: o machine-one deve escutar SSH na porta 22 em 100.200.130.121, enquanto o machine-two deve fazer o mesmo em 100.200.130.122, e assim por diante para diferentes serviços em portas que podem ser as mesmas em todas as máquinas.
A página de manual do SSH tem -R [bind_address:]port:host:hostport
listado Eu tenho portas de gateway ativadas, mas ao usar -R
com um endereço IP específico, o servidor ainda escuta na porta em todas as interfaces:
máquina-um:
# ssh -NR 100.200.130.121:22:localhost:22 [email protected]
hub-server.tld (ouve SSH na porta 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
Existe uma maneira de fazer com que o SSH encaminhe apenas conexões em um endereço IP específico para o machine-one, para que eu possa ouvir a porta 22 nos outros endereços IP ao mesmo tempo, ou terei que fazer alguma coisa com o iptables? Aqui estão todas as linhas na minha configuração ssh que não são comentários / padrões:
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