Os clientes telnet ou netcat podem se comunicar por SSL?

52

Eu gostaria de testar as conexões do cliente com IMAP sobre SSL, HTTPS e outros protocolos de Internet seguros baseados em texto sobre SSL / TLS, da mesma forma que usaria telnet ou netcat se eles não fossem encapsulados por um protocolo seguro. Existe uma maneira de obter telnet ou netcat para passar por SSL / TLS, como com um pipe ou programa alternativo?

    
por user553702 15.10.2011 / 22:29

4 respostas

118

Não há cliente Telnet / Netcat - eles são dois programas separados, e existem pelo menos 10 clientes Telnet diferentes e pelo menos 6 versões diferentes do Netcat (netcat original, GNU netcat, Netcat do OpenBSD, ncat do nmap; esqueceu o resto).

As ferramentas preferidas vêm das próprias bibliotecas TLS. Eles podem ser um pouco verbosos, no entanto.

  • O

    GnuTLS tem uma ferramenta de cliente TLS no Linux:

    gnutls-cli imap.gmail.com -p 993
    

    Use -s para STARTTLS; você precisará inserir manualmente os comandos de protocolo necessários e pressionar Ctrl D quando estiver pronto.

    Suporta IPv6, valida os certificados do servidor por padrão.

  • OpenSSL tem uma ferramenta de cliente TLS:

    openssl s_client -connect imap.gmail.com:993
    

    Isso está disponível para todos os sistemas operacionais. O STARTTLS é suportado através das opções -starttls imap ou -starttls smtp , e o programa negociará automaticamente. (Embora elimine a resposta inicial do servidor depois disso, mas geralmente é bom.)

    Apenas a versão ≥ 1.1 suporta o IPv6.

    Somente a versão ≥ 1.0.2 (IIRC) valida o certificado do servidor por padrão; versões mais antigas exigem especificação manual -CApath.

(Eu também gostaria de ter ferramentas para testar NSS e SChannel, mas não consegui encontrar nenhum).

Os programas também usam as mesmas bibliotecas, mas podem ter menos botões de configuração. Alguns até ignoram as verificações de certificados de pares por padrão ...

  • socat :

    socat openssl:imap.gmail.com:993 stdio
    
    O modo

    readline pode ser usado por conveniência:

    socat ssl:imap.gmail.com:993 readline
    

    STARTTLS não é suportado.

  • ncat do nmap suporta TLS (mas não STARTTLS):

    ncat --ssl imap.gmail.com 993
    
  • Alguns clientes Telnet, como o pacote telnet-ssl no Debian, também suportam TLS:

    telnet-ssl -z ssl imap.gmail.com 993
    

    STARTTLS podem ser ativados usando starttls do menu de escape Ctrl ] .

por 15.10.2011 / 22:44
5

Você pode querer olhar para openssl s_client , por exemplo

# openssl s_client -connect dummy.com:8443
    
por 22.04.2015 / 16:14
2

Sim, há um programa chamado stunnel

tem um arquivo de configuração,

você diz qual porta deve ser ouvida, em qual porta encaminhar.

funciona para o lado do cliente ou para o servidor ou ambos.

para que ele possa transformar um servidor que não suporta ssl em um que faça isso.

ou um cliente que não suporta ssl, efetivamente em um que faz.

ou faça um cliente e um servidor terem uma conexão ssl.

    
por 14.04.2015 / 14:21
1

Há também sclient ( git ) se você precisar de suporte multi-plataforma (ou seja, Windows).

Crie um servidor local que desembrulhe o tls por exemplo.com

$ sclient example.com:443 localhost:3000
> [listening] example.com:443 <= localhost:3000

Faça um pedido para example.com com telnet

$ telnet localhost 3000
  Trying 127.0.0.1...
  Connected to localhost.
  Escape character is '^]'.
> GET / HTTP/1.1
> Host: example.com
> Connection: close 
> 
> 
    
por 07.08.2018 / 07:10