Ir para o conteúdo principal

Á vista de todos

·505 palavras·3 minutos
Comunicações correio Exchange Server segurança SMTP
Vitor Pinho
Autor
Vitor Pinho
O informático de casa

Para muitos administradores, a segurança deve ser um dos importantes pilares da sua gestão. Desde a atualização de sistemas operativos, aplicações e anti-vírus, como também a limitação de informação interna exposta na Internet, como ocultar a versão do WordPress ou do seu servidor web (Apache, Nginx ou IIS).

Mas nem toda informação exposta é em forma de versões. No caso do Exchange Server, os nomes internos dos servidores podem ser vistos na Internet após a sua instalação.

Digamos que o nosso domínio é demo.local e do serviço de correio externo é mail.demo.local. Conectando via Telnet a porta 25 (SMTP) ou 587 (SMTP Cliente) no servidor Mailbox, somos recebidos com a seguinte mensagem:

C:\>telnet 192.168.32.54 587

220 exchsrv.demo.local Microsoft ESMTP MAIL service ready at Sun, 12 May 2019 13:14:12 +0100

No servidor Edge, a mensagem é semelhante:

C:\>telnet 192.168.32.56 25

220 exchedg.demo.local Microsoft ESMTP MAIL Service ready at Sun, 12 May 2019 13:16:19 +0100

Isto não só é uma quebra de segurança grave, mas também pode fazer com que o servidor de correio não seja visto como fidedigno, porque o nome do servidor (exchsrv.demo.local) não é igual ao do DNS reverso (mail.demo.local). Podes fazer essa verificação com o MXToolbox, usando o SMTP Test.

Alterando o banner de saudação
#

Existem 2 elementos obrigatórios na criação do banner. O primeiro é o código 220, que confirma que o servidor está funcional e pronto a receber, seguido do nome e domínio do servidor externo. Tudo que for escrito a seguir é opcional, mas para evitar confusões, vamos ficar apenas por estes dois elementos.

Todas as alterações são feitas via Powershell, atravês do Exchange Management Shell. Começamos por correr o comando Get-ReceiveConnector para visualizarmos a lista de conectores do servidor Mailbox:

[PS] C:\>Get-ReceiveConnector

Identity                                Bindings                                Enabled
--------                                --------                                -------
EXCHSRV\Default EXCHSRV                 {0.0.0.0:2525, [::]:2525}                True
EXCHSRV\Client Proxy EXCHSRV            {[::]:465, 0.0.0.0:465}                  True
EXCHRV\Default Frontend EXCHSRV         {[::]:25, 0.0.0.0:25}                    True
EXCHSRV\Outbound Proxy Frontend EXCHSRV {[::]:717, 0.0.0.0:717}                  True
EXCHSRV\Client Frontend EXCHSRV         {[::]:587, 0.0.0.0:587}                  True

Em ambientes normais, só existe a necessidade de alterares os banners das portas 465 e 587 no servidor Mailbox e da porta 25 no servidor Edge, que estarão expostas na Internet. Se não quiseres usar o serviço Edge do Exchange (embora seja incluído gratuitamente), podes optar por um gateway de correio mais robusto (como o TrendMicro IMSS, Kaspesky SMG ou o Scrollout F1, que é open-source) e saltar os passos abaixo para o mesmo.

Começa por verificar o conteúdo do banner para conector escolhido (identificado pelo parâmetro -Identify):

[PS] C:\>Get-ReceiveConnector -Identity "EXCHSRV\Client Frontend EXCHSRV" | fl "Banner"

Banner :

Para alterares o banner do conector, usa o comando Set-ReceiveConnector:

[PS] C:\>Set-ReceiveConnector -Identity "EXCHSRV\Client Frontend EXCHSRV" -Banner "220 mail.demo.local"

E para terminar, confirmas se a alteração foi feita com sucesso:

[PS] C:\>Get-ReceiveConnector -Identity "EXCHSRV\Client Frontend EXCHSRV" | fl "Banner"

Banner : 220 mail.demo.local

Depois de feito, sempre uma ligação fôr iniciada para a porta com o banner alterado, ela verá a nova informação:

C:\>telnet 192.168.32.54 587

220 mail.demo.local

A partir dai, temos algo muito mais genérico. Assim não é bem melhor?