Eu tenho um dispositivo, vamos chamá-lo d1, rodando um Linux leve. Este dispositivo é NATed pela minha caixa de internet / roteador, portanto, não é acessível a partir da Internet. Esse dispositivo executa um daemon de telnet e tem apenas root como usuário (sem pwd). Seu endereço IP é 192.168.0.126 na rede privada.
Da rede privada (digamos 192.168.0.x), posso fazer:
telnet 192.168.0.126
Onde 192.168.0.126 é o endereço IP na rede privada. Isso funciona corretamente.
No entanto, para permitir a administração, preciso acessar o dispositivo de fora dessa rede privada. Por isso, criei um túnel SSH como este em d1:
ssh -R 4455:localhost:23 ussh@s1
s1 é um servidor em algum lugar da rede privada (mas isso serve apenas para fins de teste, vai acabar em algum lugar da Internet), executando uma distribuição Linux padrão e na qual eu criei um usuário chamado 'ussh'. s1 endereço IP é 192.168.0.48.
Quando eu 'telnet' com o seguinte, digamos de c1, 192.168.0.19:
telnet -l root s1 4455
Eu recebo:
Trying 192.168.0.48...
Connected to 192.168.0.48.
Escape character is '^]'.
Connection closed by foreign host
.
A conexão é fechada depois de aproximadamente 30 segundos e eu não fiz o log. Eu tentei sem o switch -l, sem sucesso algum.
Eu tentei 'telnet' com endereços IP em vez de nomes para evitar problemas de DNS reverso (embora eu tenha adicionado ao d1 / etc / hosts uma linha referindo-se a s1 IP / nome, apenas no caso), sem sucesso.
Eu tentei em outra porta que 4455, sem sucesso.
Eu juntei logs do Wireshark de s1.
Eu posso ver:
s1 envia dados SSH para c1, c1 ACK
s1 executa uma solicitação de DNS AAAA para c1, obtém apenas os servidores de nomes Authoritave.
s1 executa uma solicitação de DNS e obtém o endereço IP de c1
s1 envia um pacote SYN para c1, c1 responde com um RST / ACK
s1 envia um SYN para c1, C1 RST / ACK (?)
Após 0,8 segundo, c1 envia um SYN para s1, s1 SYN / ACK e depois c1 ACK
s1 envia conteúdo SSH para d1, d1 envia um ACK de volta para s1
s1 repete pedidos de AAAA e de DNS |
Após 5 segundos, s1 repete um SYN para c1, mais uma vez é RST / ACKed por c1. Isso é repetido mais 3 vezes.
Os últimos cinco pacotes: d1 envia o conteúdo SSH para s1, s1 envia ACK e FIN / ACK para c1, c1 responde com FIN / ACK, s1 envia ACK para c1.
A conexão parece estar fechada pelo daemon de telnet após 22 segundos.
AFAIK, não há como decodificar o fluxo SSH, então estou muito preso aqui ...
Alguma idéia?
Obrigado!