O Netsynnas veio perguntar-me por PM como configurar o SMTP de maneira a que os computadores fora da rede privada dele não consigam fazer relay. Portanto, não pensem que estou a armar-me em chico-esperto de vir para aqui dizer coisas sem ninguém me pedir nada, tá?
Aqui vai mais um testamento.........
Antes de mais nada, vou explicar o que é relay, para que não surjam confusões.
Relay é a capacidade que um servidor SMTP tem de enviar mensagens de e-mail para outras redes, ou seja, para servidores SMTP de outras redes.
O perigo de ter um servidor SMTP mal configurado é o de qualquer um poder usá-lo para enviar carradas de spam. Além de todo o tráfego que isso acarreta, pode ainda implicar problemas legais para o administrador desse servidor. Felizmente o cerco está a apertar os spammers, em vez de andar a meter em tribunal "apenas" quem faz umas cópias de uns filmitos ou de umas músicas, hehe.
Então, basicamente, o perigo reside em permitir o acesso anónimo ao servidor SMTP e ao mesmo tempo permitir que qualquer computador possa fazer relay. Mas para que é que se há-de permitir o acesso anónimo ao servidor SMTP? Boa pergunta, hehe.
Como já disse vagamente mais acima, quando se envia um e-mail, esse sai do cliente (Outlook Express, por exemplo - e não se lembrem de criticar o exemplo, dizendo que o Opera ou outro qualquer é melhor; isto é apenas um exemplo) e vai para o servidor SMTP especificado na secção correspondente da conta usada para enviar e receber e-mails. Aí, esse e-mail não vai directamente para um servidor POP3 na rede de destino; ele vai para o servidor SMTP dessa tal rede. Normalmente existe um registo no servidor DNS (registo MX) a indicar qual o host desse servidor SMTP, e é para lá que vai o e-mail. Posteriormente, o servidor POP3 acessa o servidor SMTP da rede (normalmente estão os dois serviços a correr no mesmo computador) e apanha o tal e-mail para o entregar novamente ao cliente (Outlook Express) do destino.
Adicionalmente, os servidores SMTP não usam autenticação para se comunicarem entre si. Aí está a resposta sobre o porquê de se permitir acesso anónimo num servidor SMTP: se não se permitir, não se poderá receber e-mails vindos de fora porque os servidores SMTP do resto do mundo não terão as credenciais para se autenticarem, certo?
Posto isto, se o servidor SMTP do NetSynnas for usado apenas para enviar e-mails e não para os receber, pode ser configurado de modo a não permitir acesso anónimo; apenas acesso básico (com ou sem TLS) ou acesso integrado ao Windows (que acho que só funciona com Microsoft Outlook ou Outlook Express).
De outro modo, para evitar que andem os spammers a usar esse servidor para enviar spam, é preciso ir às propriedades do servidor SMTP no IIS, escolher a guia Access, clicar no botão Relay e configurar da seguinte maneira:
- certificar-se que a opção
Only the list below está seleccionada;
- adicionalmente, seleccionar a opção (lá em baixo de tudo)
Allow all the computers which authenticate to relay, regardless of the list above se se quiser poder usar esse servidor SMTP de fora da rede a que o próprio pertence;
- clicar em
Add;
- seleccionar a opção
Group of computers;
- inserir o endereço IP da rede privada (192.168.0.0, por exemplo);
- inserir a máscara de rede (255.255.255.0 para o exemplo anterior).
Finalmente, dá-se OK em tudo o que surgir pela frente e... voilà! Já se tem um servidor SMTP minimamente seguro.
Espero que isto te seja útil, NetSynnas. Qualquer esclarecimento adicional que precises, avisa. Se souber responder, fa-lo-ei com muito gosto.
Outra coisa: para ter o serviço completo, como o Mercy_PT lhe chamou, o Windows 2003 vem com o serviço POP3. É muito básico, mas serve perfeitamente para "apenas" receber e-mails.
Cumprimentos e sorry pelo testamento.