Por que não consigo conectar remotamente a uma porta de túnel SSH reverso, mesmo com o GatewayPorts ativado?

20

Eu preciso de acesso SSH constante a um host em nosso departamento, cujo endereço IP é alocado dinamicamente. Eu configurei um túnel SSH remoto do host de destino para um de nossos hosts que possui um endereço IP estático:

ssh -f -N -g -R :22223:localhost:22 tunnelhost

Quando aponto o SSH na porta local 22223no host do túnel, o túnel funciona bem. Meu problema é que parece que não consigo vincular o túnel a outra coisa senão o host local - entretanto, quando tento fazer o SSH remotamente tunnelhost:12323, não há porta aberta para recebê-lo. Eu também tentei:

ssh -f -N -R :22223:localhost:22 tunnelhost -o GatewayPorts=yes

Mas ainda sem sorte. O Netstat me mostra:

[me@tunnel_host ~]$ netstat -an | grep 22223
tcp        0      0 127.0.0.1:22223         0.0.0.0:*               LISTEN
tcp6       0      0 ::1:22223               :::*                    LISTEN

Confirmando que o túnel está vinculado apenas ao host local. Adicionei uma exceção de porta no host do túnel, com firewalld-cmd, e assegurei que nenhum hardware de rede estivesse interferindo na conexão. Alguma idéia do que poderia ser?

Saúde, James.

James Paul Turner
fonte

Respostas:

29

Você precisa habilitar GatewayPorts=yesna configuração para SSHd ( /etc/ssh/sshd_config), não o cliente, a fim de habilitar a ligação a interfaces que não sejam loopback em portas remotas.

-o GatewayPorts=yes

Funciona apenas para portas locais quando transmitidas para o sshcomando.

Darth Android
fonte
Darth Android, Obrigado pela sua resposta. Parece que você está correto sobre -g e -o GatewayPorts trabalhando apenas para túneis ocais (-L). Por uma questão de exaustividade, aqui estão mais algumas informações sobre esse problema, caso alguém o encontre no futuro. bugs.debian.org/cgi-bin/bugreport.cgi?bug=228064
James Paul Turner,
3
GatewayPorts=clientspecifiedé uma configuração um pouco mais segura, consulte askubuntu.com/questions/50064/reverse-port-tunnelling . Nesse caso, o endereço de ligação vazio (dois pontos à direita :22223:localhost:2) é necessário.
Michael Goerz
1
Eu diria que a GatewayPorts=clientspecifiedconfiguração em si não é mais segura, mas permite mais controle sobre quais conexões serão vinculadas ao curinga, em vez de apenas tê-las todas associadas ao curinga.
Nick
Além disso, reiniciar sshd após modding o sshd_config (no caso de você esquecer)
Nick
⚠️ Esteja ciente de que GatewayPorts=yesabrirá as portas encaminhadas para o mundo.
Ccpizza 26/08/19