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 emails 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 Email 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.
Devido à natureza do email, 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.
confCONNECTION_RATE_THROTTLE — O número de conexões que o servidor pode receber por segundo. Por default, o Sendmail não limita o número de conexões. Se um limite for definido e alcançado, conexões futuras terão demora.
confMAX_DAEMON_CHILDREN — O número máximo de processos-filho que podem ser gerados pelo servidor. Por default, o Sendmail não determina um número limite de processos-filho. Se um limite for definido e alcançado, conexões futuras terão demora.
confMIN_FREE_BLOCKS — O número mínimo de blocos livres que devem estar disponíveis para que o servidor aceite correspondência. O default são 100 blocos.
confMAX_HEADERS_LENGTH — O tamanho máximo aceitável (em bytes) para o cabeçalho de uma mensagem.
confMAX_MESSAGE_SIZE — O tamanho máximo aceitável (em bytes) para qualquer mensagem.
Nunca coloque o diretório spool de correspondência, /var/spool/mail/, em um volume NFS compartilhado.
Já que o NFS 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.
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).