Testando a conectividade do host remoto usando o telnet

1

Estou usando o telnet da minha linha de comando para testar a conectividade com um host remot e abaixo estão os comandos que usei. Eu acho que posso conectar ao host, mas não é capaz de entender completamente as saídas telnet

yabhi$ telnet <remote host_ipaddr> 22
Trying <remote host_ipaddr>…
Connected to <remote host>
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
Connection closed by foreign host.

yabhi$ telnet <remote host_ipaddr> 23
Trying <remote host_ipaddr>…
telnet: connect to address <remote host_ipaddr>: Connection refused
telnet: Unable to connect to remote host

No primeiro comando em que faço telnet para a porta 22, recebo a confirmação de que a conexão foi estabelecida na porta 22 (porta SSH). Mas enquanto tento testar qualquer comando, como 'ping' ou 'date' (para imprimir data), recebo a mensagem de erro de conexão fechada. Esse comportamento confirma se a conexão foi estabelecida para o host remoto

Surpreendentemente, quando eu faço telnet para a porta 23 (porta onde o servidor de telnet está sendo executado), fico com a incapacidade de conectar a mensagem.

    
por Abhi 15.03.2017 / 16:37

3 respostas

3

telnet usado desta maneira é apenas estabelecer uma conexão TCP bruta um pouco . nc ou netcat é uma ferramenta melhor para testes de linha de comando de conectividade de rede IP.

Na primeira instância, você conectou-se a uma escuta sshd na porta 22 e obteve a primeira parte de um handshake de SSH - a string de versão do servidor.

Na segunda instância, você conectou à porta 23, onde telnetd tradicionalmente escuta. No entanto, como telnet é menos seguro que ssh , normalmente ele não é ativado por padrão nos sistemas modernos. Você não consegue se conectar porque não há telnetd ouvindo <remote_host_ipaddr> .

Você não estabelece uma sessão de shell remota ao usar telnet , motivo pelo qual não é possível executar comandos do shell no sistema remoto, como ping ou date . Você está estabelecendo uma conexão de rede que permite digitar manualmente o que normalmente seria enviado pela rede para o protocolo relevante. Com o SSH, você está praticamente preso após a troca da versão inicial, pois os dados trocados são criptografados após esse ponto.

Um uso mais típico seria testar um servidor executando um protocolo baseado em texto, como HTTP, IMAP ou SMTP, por exemplo,

$ telnet <remote_host_ipaddr> 80
> GET /index.html HTTP/1.0
>
...
$
    
por 15.03.2017 / 16:47
2

Com telnet , você pode verificar se uma porta está aberta e escutando. Mas realmente não executa comandos no host remoto. telnet é majoritariamente inseguro e todos os sistemas modernos estão desabilitados. Essa é também a razão pela qual sua conexão com a porta 23 falha: o sistema não deve aceitar conexões de tenet e a porta é fechada. Connection refused significa que a conexão foi bloqueada por um firewall ou porta fechada.

    
por 15.03.2017 / 16:45
0

Para uma forma mais dedicada de teste, você pode usar nossa ferramenta de teste dda-serverspec ( link ) para tal tarefas. Você pode definir sua expectativa

{:netcat [{:host "mywebserver.com" :port "443"}
          {:host "telnet mywebserver.com" :port "80"}
          {:host "telnet mywebserver.com" :port "8443"}]}

e teste essas expectativas contra host local ou contra hosts remotos (conecte por ssh). Para testes remotos, você precisa definir um alvo:

{:existing [{:node-name "test-vm1"
             :node-ip "35.157.19.218"}
            {:node-name "test-vm2"
             :node-ip "18.194.113.138"}]
 :provisioning-user {:login "ubuntu"}}

Você pode executar o teste com java -jar dda-serverspec.jar --targets targets.edn serverspec.edn

Sob o capô, estamos usando o netcat com algumas configurações especiais para o tempo limite ou minimizando o tráfego ...

    
por 26.10.2018 / 16:02

Tags