20.4. Trocando seu agente de transferência de mensagens

Escrito por Andrew Boothman. Informações obtidas a partir do email escrito por Gregory Neil Shapiro.

Como mencionado, o FreeBSD vem com o sendmail já instalado como seu MTA (Agente de transferência de mensagens). Consequentemente por padrão sua carga está na saída e entrada de mensagens.

Entretanto, por uma série de razões, alguns administradores de sistema querem trocar o seu sistema de MTA. Estas razões variam simplesmente em querer testar outro MTA até a necessidade de funções específicas ou confia em outro pacote responsável pelo envio de mensagens. Felizmente, por qualquer razão, o FreeBSD faz com que essa mudança seja simples de ser realizada.

20.4.1. Instalando um novo MTA

Você tem uma variedade de escolhas de MTAs disponíveis. Um bom ponto de partida é a Coleção de Ports do FreeBSD onde você poderá encontrar muitos deles. É claro que você está livre para usar qualquer MTA que você quiser em qualquer localidade, assim como rodá-lo no FreeBSD.

Começe instalando seu novo MTA. Uma vez que ele está instalado, ele lhe dará a oportuniade de decidir se ele cumprirá suas necessidades, e também lhe dá a oportunidade de configurar seu novo aplicativo antes de desabilitar o sendmail. Ao se fazer isso, você deve certificar-se que a instalação do novo aplicativo não tentará sobreescrever os binários do sistema como /usr/bin/sendmail. Se não, seu novo aplicativo de mensagens será posto fazendo o serviço antes que você tenha configurado-o.

Por favor consulte a documentação do seu MTA para informações sobre como configurar seu aplicativo que você escolheu.

20.4.2. Desabilitando o sendmail

O processo de inicialização do sendmail mudou significativamente entre o 4.5-RELEASE e 4.6-RELEASE. Portanto, o procedimento usado para desabilitá-lo é subtamente diferente.

20.4.2.1. FreeBSD 4.5-STABLE antes de 2002/4/4 e antes (incluindo o 4.5-RELEASE e antes disso)

Entre com a opção:

sendmail_enable="NO"

no /etc/rc.conf. Isto irá desabilitar o sendmail como serviço de chegada de mensagens, mas se o /etc/mail/mailer.conf (veja abaixo) não for alterado, o sendmail ainda continuará sendo usado para enviar mensagens.

20.4.2.2. FreeBSD 4.5-STABLE depois de 2002/4/4 (Incluindo o 4.6-RELEASE e mais recentes)

Para desabilitar completamente o sendmail você deve usar

sendmail_enable="NONE"

no /etc/rc.conf.

AtençãoSe você desabilitar o sendmail como serviço de saída de mensagens, é importante que você o substitua com um sistema totalmente alternativo no serviço de entrega de mensagens. Se você escolher não faze-lo, funções do sistema como periodic(8) serão incapaz de entregar seus resultados por e-mail que eles esperariam normalmente. Várias partes do seu sistema pode esperar que tenham sistema sendmail-compatível funcional. Se as aplicações continuarem a usar os binários do sendmail para tentar enviar mensagens após desabilitar, a mensagem ficará inativa na fila do sendmail, e nunca será entregue.

Se você quer desabilitar o serviçco de chegada do sendmail voê deve configurar,

sendmail_enable="NO"

no /etc/rc.conf. Maiores informações sobre as opções de inicialização do sendmail está disponível na página de manual rc.sendmail(8).

20.4.3. Executando seu novo MTA na inicialização do sistema

Você pode ter dois métodos para escolher de como rodar seu novo MTA na inicialização do sistema, dependendo da versão do FreeBSD que você está rodando.

20.4.3.1. FreeBSD 4.5-STABLE antes de 2002/4/11 (Incluindo o 4.5-RELEASE e mais recentes)

Adicione um script em /usr/local/etc/rc.d/ com extensão .sh e executável pelo usuário root. Este script deve ser aceito os parâmetrost start e stop. Na hora da inicialização, os scripts do sistema irão executar o comando

/usr/local/etc/rc.d/supermailer.sh start

Que você também pode manualmente inicializar o servidor. Na hora de desligar, os scripts do sistema irão usar a opção stop, executando o comando

/usr/local/etc/rc.d/supermailer.sh stop

Que você também pode manualmente parar o servidor enquanto o sistema está rodando.

20.4.3.2. FreeBSD 4.5-STABLE depois de 2002/4/11 (Incluindo a 4.6-RELEASE e posteriores)

Com versões mais recentes do FreeBSD, você pode usar o método acima ou você pode configurar

mta_start_script="nomedoarquivo"

no /etc/rc.conf, onde nodoarquivo é o nome de algum script que você queira executar na inicialização do sistema para inicializar set MTA.

20.4.4. Substituindo o sendmail como encarregado do envio da correspondência do sistema

O programa sendmail é tão unipresente como aplicativo padrão na maioria dos sistemas UNIX® que alguns aplicativos assumem que ele já esteja instalado e configurado. Por esta razão, muitos dos MTAs anternativos fornece sua própria implementação de compatibilidade da interface de linha de comando do sendmail; isto facilita ``colocá-los'' como substitutos do sendmail.

Consequentemente, se você está usando um servidor de correio alternativo, você precisará certificar-se de que o aplicativo que tenta executar executar binários padrão do sendmail tais como /usr/bin/sendmail, executa realmente seu servidor de correio escolhido preferivelmente. Felizmente, o FreeBSD fornece um sistema chamado mailwrapper(8) que faz este trabalho pra você.

Quando o sendmail está operando como instalado, você irá encontrar algo como abaixo no /etc/mail/mailer.conf:

sendmail    /usr/libexec/sendmail/sendmail
send-mail   /usr/libexec/sendmail/sendmail
mailq       /usr/libexec/sendmail/sendmail
newaliases  /usr/libexec/sendmail/sendmail
hoststat    /usr/libexec/sendmail/sendmail
purgestat   /usr/libexec/sendmail/sendmail

Isto significa que quando alguns desses comandos (tais como o próprio sendmail) estão funcionando, o sistema invoca realmente uma cópia do sendmail nomeado mailwrapper, que checa o mailer.conf e executa /usr/libexec/sendmail/sendmail instead. Este sistema faz com que seja fácil de mudar quais binários são atualmente executados quando estas funcções padrão do sendmail são invocadas.

Consequentemente se você quisesse que /usr/local/supermailer/bin/sendmail-compat seja executado em vez do sendmail, você pode mudar o /etc/mail/mailer.conf para ler:

sendmail    /usr/local/supermailer/bin/sendmail-compat
send-mail   /usr/local/supermailer/bin/sendmail-compat
mailq       /usr/local/supermailer/bin/mailq-compat
newaliases  /usr/local/supermailer/bin/newaliases-compat
hoststat    /usr/local/supermailer/bin/hoststat-compat
purgestat   /usr/local/supermailer/bin/purgestat-compat

20.4.5. Finalizando

Uma vez que você tenha tudo configurado como você quer, você deve matar o processo do sendmail que você não tem mais necessidade e iniciar o processo do seu novo MTA, ou simplesmente reiniciar. Reiniciar o sistema irá lhe dar a oportunidade de assegurar-se que você configurou corretamente seu sistema para iniciar automaticamente seu novo MTA na inicialização do sistema.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.