5.7. Protegendo o Sendmail

Sendmail é um Agente de Transporte de Correspondência (Mail Transport Agent - MTA) que utiliza o Protocolo de Transporte de Correspondência Simples (Simple Mail Transport Protocol - SMTP) para entregar mensagens eletrônicas entre outros MTAs e para enviar e-mails a clientes ou agentes de entrega. Apesar de muitos MTAs serem capazes de criptografar tráfego entre eles, a maioria não o faz, portanto enviar email através de qualquer rede pública é considerado uma forma de comunicação essencialmente insegura.

Para mais informações sobre o funcionamento do e-mail e uma visão geral dos ajustes de configuração comuns, veja o capítulo E-mail no Guia de Referência do Red Hat Enterprise Linux. Esta seção assume um conhecimento básico de como gerar um /etc/mail/sendmail.cf válido, editando o /etc/mail/sendmail.mc e executando o comando m4, conforme explicado no Guia de Referência do Red Hat Enterprise Linux.

É recomendado a qualquer um planejando implementar um servidor Sendmail, resolver as seguintes questões.

5.7.1. Limitar um Ataque Denial of Service

Devido à natureza do e-mail, um determinado atacante pode facilmente lotar o servidor com correspondência e causar um ataque 'denial of service'. Ao determinar limites para as diretivas a seguir em /etc/mail/sendmail.mc, a efetividade de ataques deste tipo é limitada.

5.7.2. NFS e Sendmail

Nunca coloque o diretório spool de correspondência, /var/spool/mail/, em um volume NFS compartilhado.

Como o NFSv2 e o NFSv3 não mantêm controle sobre IDs de usuário e grupo, dois ou mais usuários podem ter o mesmo UID, e portanto receber e ler a correspondência do outro. Isso não ocorre com o NFSv4 usando Kerberos, já que o módulo SECRPC_GSS do kernel não utiliza a autenticação baseada no UID.

5.7.3. Usuários Mail-only

Para ajudar a prevenir exploits locais no servidor Sendmail, é melhor que usuários de mail acessem o Sendmail usando apenas um programa de email. Contas shell não devem ser permitidas no servidor de mail e todos os usuários shell do arquivo /etc/passwd devem ser definidos para /sbin/nologin (com a possível exceção do usuário root).