Tutoriais/sendmail-qmail-postfix/configurando-sendmail
De UnderLinux Wiki
Configurando o Sendmail
Tabela de conteúdo |
Introdução
Sendmail é o servidor de e-mails (MTA) mais usado em toda internet, porém também um dos mais complexos e "difíceis" de serem configurados.
O sendmail tem uma variedade de "features" muito utéis e outras talvez nem tanto para o que você irá precisar. Portanto, iremos neste pequeno artigo usar a ferramenta M4 que vem junto com o sendmail para podermos "configurar" o nosso sendmail.cf da forma mais adequada.
Algumas pessoas dizem que não se considera um verdadeiro administrador de redes quem não varou noites e noites tentando fazer alguma configuração no sendmail direto nas complicadas rules (regras) do arquivo sendmail.cf. Com M4, tudo isso se torna muito mais fácil...
Instalação
Primeiramente verifique a versão do seu SendMail, e faca download do source correspondente da sua versão no site http://www.sendmail.org .
Iremos tomar como exemplo a versão 8.11.2. Descompactando o source dela veremos que tem um diretório chamado "cf". É neste diretório que iremos trabalhar.
Vamos a descrição do conteúdo dos principais diretórios:
--| | cf--| | cf <- arquivos de configuração para geração do .cf (arquivos .mc) | featues <- features disponíveis | m4 <- possui os arquivos de configuração do m4 | mailer <- configuração das featues de mailer | ostype <- algumas configurações especificas de alguns Sistemas Operacionais
Estes são os mais usados, porém existem outros diretórios como sitesconfig (uucp), sh (para configurar as info para o cf) e etc ...
Primeiramente entre no diretório cf, então iremos criar o nosso arquivo .mc:
- gamk.mc
divert(-1) divert(0)dnl VERSIONID(`$Id: gamk.mc,v 8.1 2001/02/12 09:48:05 [gamk@gamk.com.br] Exp $') OSTYPE(linux)dnl DOMAIN(generic)dnl MAILER(local)dnl MAILER(smtp)dnl
Este é um arquivo mc básico, mas podemos melhorá-lo adicionando algumas features:
divert(-1)
divert(0)dnl
VERSIONID(`$Id: gamk.mc,v 8.1 2001/02/12 09:48:05 [gamk@gamk.com.br] Exp $')
OSTYPE(linux)dnl
DOMAIN(generic)dnl
MAILER(local)dnl
MAILER(smtp)dnl
FEATURE('redirect')
FEATURE('virtusertable')
FEATURE('access_db')
FEATURE('use_cw_file')
Agora já ficou mais interessante, temos suporte a tabela de acesso (evitar SPAM), virtuasertable (usado para criar dominios virtuais), use_cw_file (para podermos listar num arquivo os domínios que o sendmail vai responder).
Existem muitas features que podemos adicionar, para uma lista completa digite:
# ls ../features
Feito isto basta digitar o seguinte comando:
# m4 ../m4/cf.m4 gamk.mc sendmail.cf
E Pronto!!! foi gerado o nosso sendmail.cf com as features que escolhemos.
Configuração
Vamos a configuração do sendmail.
Edite o arquivo /etc/mail/local-host-names e coloque a lista (um por linha) dos domínios do o sendmail.
Exemplo:
# cat /etc/mail/local-host-names gamk.com.br linuxsecurity.com.br meu_dominio.com
Iremos configurar as nossas "aliases" para isto edite o arquivo "aliases".
# cat /etc/mail/aliases MAILER-DAEMON: root webmaster: gamk linke: linke@bol.com.br clientes: :include:/usr/local/clientes.txt
OBS: Quando alterar este arquivo digite sempre "newaliases" para atualizar as databases.
Perceba que todos os e-mail que chegarem para o usuário MAILER-DAEMON, eles serão redirecionados para o usuário root, o webmaster - gamk o linke para linke@bol.com.br e o clientes para todos os e-mail (um por linha) presentes no arquivo /usr/local/clientes.txt
Agora partiremos para a configuração do virtusertable.
Ele serve para você ter no mesmo servidor os e-mails (gamk@gamk.com.br e gamk@linuxsecurity.com.br).
Bem vamos a um exemplo prático:
# cat /etc/mail/virtusertable gamk@gamk.com.br gamk @gamk.com.br diego gamk@linuxsecurity.com.br renato @meu_dominio.com %1@bol.com.br
Explicando: Todos os e-mails que chegarem para o domínio gamk.com.br irão para o usuário (local na máquina) chamado "diego" com excessão do e-mail gamk@gamk.com.br que irá para o usuário "gamk".
Os e-mails que chegarem para gamk@linuxsecurity.com.br irão para o usuário local na máquina "renato".
Qualquer e-mail que chegar no domínio, meu_dominio.com, será redirecionado para o domínio bol.com.br mantendo o nome do usuário.
Feito isso digite:
# makemap hash virtusertable < virtusertable
para criar o virtusertable.db.
Agora iremos configurar o controle de acesso.
# cat /etc/mail/access 200.150.59 RELAY hackers.lab 550 Nao permetimos Hackers gamk.com.br REJECT diego.gamk.com.br OK
Nesta configuração foi permetido o RELAY da rede 200.150.59.0/24, foi também rejeitado e-mails de gamk.com.br menos os vindo da máquina diego.gamk.com.br.
Foi também rejeitado (550 = REJECT) e-mails vindo de hackers.lab enviando a mensagem de erro como "Nao permtimos Hackers".
Depois de fazer a sua configuração basta digitar:
# makemap hash access < access
Pronto o seu sendmail está configurado e já pode ser usado normalmente...
# telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 www.virtualnet.net ESMTP Sendmail 8.11.2/8.11.2; Sat, 10 Mar 2001 20:23:04 -0300 expn gamk 250 2.1.5 GAMK vrfy diegolinke 250 2.1.5 Diego Linke
Perceberam que o SendMail acabou de entregar através dos comandos "expn" e "vrfy" dois usuário válidos na máquina ?
Vamos desabilitar esta função para que isto não aconteça.
Edite o arquivo sendmail.cf e procure pela linha:
O PrivacyOptions=authwarnings
Substitua por esta:
O PrivacyOptions=authwarnings,noexpn,novrfy
Restart e sendmail e pronto!!!
# telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 www.virtualnet.net ESMTP Sendmail 8.11.2/8.11.2; Sat, 10 Mar 2001 20:23:04 -0300 expn gamk 502 5.7.0 Sorry, we do not allow this operation vrfy diegolinke 252 2.5.2 Cannot VRFY user; try RCPT to attempt delivery (or try finger)
Que tal não revelarmos o número da versão do nosso sendmail ?
Vamos lá, edite o arquivo sendmail.cf e procure pela linha:
O SmtpGreetingMessage=$j Sendmail $v/$Z; $b
Substitua por:
O SmtpGreetingMessage= GAMK Mail Server [smtp.gamk.com.br]
Pronto, agora você acaba de mudar a mensagem de Welcome!
# telnet 127.0.0.1 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 GAMK ESMTP Mail Server [smtp.gamk.com.br]
Se você quiser, pode mudar o conteúdo do help (comando help), basta alterar o arquivo /etc/mail/helpfile.
# cat /etc/mail/helpfile smtp ******************************************************** smtp * Sys/Admin: Diego Linke * smtp ********************************************************
Pronto, restart o sendmail.
Agora quando o usuário digitar "help" ao invés desaparecer o help do sendmail irá aparecer esta mensagem:
******************************************************** * Sys/Admin: Diego Linke * ********************************************************
Obs.: para startar o sendmail use: "sendmail -bd -q15m"
Mais informação
- Man Pages:
- man sendmail
- man m4
- man aliases
- man mail.local
Epílogo
Espero ter ajudado... Boa Sorte :D
Diego Linke
Créditos
- Tutorial no underlinux: http://www.underlinux.com.br/content/view/4673/70/
- Este tutorial foi desenvolvido por Diego Linke e editado no wiki por Duca.
--Duca 13:23, 12 Janeiro 2006 (BRDT)


