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?