Qual é a melhor maneira de verificar se um servidor SMTP é ativado por SSL ou não?

6

Qual é a melhor maneira de verificar se um servidor SMTP está habilitado para SSL ou não?

Pergunta de acompanhamento: como posso ativá-lo com SSL se ainda não estiver ativado para SSL.

O sistema operacional é o CentOS.

    
por Randell 11.09.2009 / 10:08

4 respostas

16

Isso depende de você querer dizer SSL ou TLS.

  • SSL tem sua própria porta dedicada no TCP / 465. A melhor maneira de testar sua presença seria usar o maravilhoso s_client do OpenSSL, que negociará o truque do SSL para você.

    openssl s_client -connect localhost:465
    

    Se o seu servidor não estiver vinculado ao host local, obviamente substitua-o pelo IP ou hostname.

  • TLS parece com o SMTP normal no início. A criptografia é negociada de e no topo do protocolo de texto simples. Você pode testar se está disponível emitindo uma solicitação EHLO para o servidor. Você pode usar clientes Netcat ou Telnet para isso.

    $ nc -v localhost 25
    localhost [127.0.0.1] 25 (smtp) open
    220 mail.example.com ESMTP Exim 4.69 Fri, 11 Sep 2009 09:25:20 +0100
    ehlo test
    250-mail.example.com Hello localhost [127.0.0.1]
    250-SIZE 10485760
    250-PIPELINING
    250-STARTTLS
    250 HELP
    

    A linha importante é a segunda da última que anuncia o recurso STARTTLS.

Para dizer como ativar o SSL / TLS para seu servidor de e-mail, você precisa nos dizer qual pacote de e-mail você está usando.

    
por 11.09.2009 / 10:28
1

Existe uma ferramenta simples para isso. Você envia um e-mail para eles e eles respondem com vários detalhes:

link

    
por 24.02.2016 / 20:26
0

Se você está rodando o CentOS, provavelmente está usando o Sendmail. Instale o pacote Sendmail-mc. Dentro do /etc/mail/sendmail.mc, há algumas diretrizes para você procurar por TLS:

dnl # Rudimentary information on creating certificates for sendmail TLS:
dnl #     cd /usr/share/ssl/certs; make sendmail.pem
dnl # Complete usage:
dnl #     make -C /usr/share/ssl/certs usage
dnl #
dnl define('confCACERT_PATH', '/etc/pki/tls/certs')dnl
dnl define('confCACERT', '/etc/pki/tls/certs/ca-bundle.crt')dnl
dnl define('confSERVER_CERT', '/etc/pki/tls/certs/sendmail.pem')dnl
dnl define('confSERVER_KEY', '/etc/pki/tls/certs/sendmail.pem')dnl

Depois de ter isso funcionando, você pode habilitar o Sendmail via SSL com algo assim:

DAEMON_OPTIONS('Addr=142.46.200.221, Port=465, Name=SSA, M=Eas')

Ah, e bloqueie um bocado de tempo para jogar antes de acertar.

Quando eu fiz isso, quase sempre tive que executar três instâncias do sendmail:

  • um com TLS ativado na porta 587 com as várias configurações de SMTP-AUTH (para que usuários remotos autenticados possam enviar mensagens arbitrárias);
  • um com SSL ativado na porta 465 com as várias configurações SMTP-AUTH (mesmo motivo, clientes diferentes (obrigado Microsoft Outlook "Express") e
  • um com TLS ativado, mas nenhum AUTH, bloqueado para receber somente mensagens para destinatários locais válidos (remetentes remotos podem usar TLS ou não, conforme desejado).

Cada um tinha um arquivo de configuração separado. Deveria haver uma maneira de fazer com que as duas primeiras sejam executadas como a mesma instância ouvindo em ambas as portas, mas nunca consegui que funcionasse corretamente.

Se você ficar grande o suficiente, essas instâncias diferentes podem ser executadas em máquinas diferentes.

    
por 11.09.2009 / 19:56
0

Na minha opinião, as respostas dadas nesta página são simplesmente erradas.

O motivo é que o SSL / TLS + SMTP pode significar duas coisas diferentes.

Um é onde você quebra o socket em SSL / TLS. Se o servidor quiser atender o tráfego criptografado e não criptografado, ele precisará de duas portas para essa finalidade, uma para cada tipo de tráfego. Por convenção, os servidores SMTP normalmente usam a porta 25 para o tráfego não criptografado e a porta 465 para o tráfego criptografado. Pelo uso de ferramentas externas, como stunnel, isso pode ser implementado de tal forma que tanto o cliente quanto o servidor não estejam cientes de que o tráfego real viaja em um soquete criptografado. Assim, você pode implementar essa abordagem mesmo que seu servidor SMTP não suporte SSL / TLS .. mas servidores como sendmail e postfix suportam isso, portanto, não há necessidade de uma ferramenta externa.

A outra abordagem é que STARTTLS é usado. Esta é uma extensão do protocolo SMTP e, portanto, requer que o servidor e o cliente o suportem. Usando o STARTTLS, o servidor pode servir tráfego criptografado e não criptografado sobre o mesmo soquete, ou seja, você pode usar a porta 25 para ambos. Você pode ver se um servidor SMTP tem STARTTLS ativado conectando-se a ele na porta 25 e emitindo o comando EHLO , conforme explica Dan em outro lugar nesta página.

Tanto o SSL quanto o TLS são apenas protocolos de criptografia, sendo o TLS o sucessor do SSL.

Eu tenho minhas informações de aqui .

A confusão entre as duas abordagens é acelerada pela terminologia usada pelos servidores SMTP. Pense nos parâmetros do Postfix smtpd_tls_security_level e smtpd_use_tls e na documentação associada. Esses parâmetros lidam com STARTTLS e não com TLS . Outros servidores SMTP fazem um trabalho igualmente excelente ao confundir a terminologia.

    
por 13.09.2013 / 08:59

Tags