Configurando o SendMail
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. Este artigo de autoria de Diego Linke nos esclarece diversos mistérios deste software.
Parte 2: Aumentando a segurança e personalizando o sendmail
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 permitimos Hackers
gamk.com.br REJECT
diego.gamk.com.br OK
Nesta configuração foi permitido 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 permitimos 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 de aparecer o help do sendmail irá aparecer a mensagem acima.
OBS: para startar o sendmail use: "sendmail -bd -q15m"
Man Pages:
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 permitimos Hackers
gamk.com.br REJECT
diego.gamk.com.br OK
Nesta configuração foi permitido 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 permitimos 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 de aparecer o help do sendmail irá aparecer a mensagem acima.
OBS: para startar o sendmail use: "sendmail -bd -q15m"
Man Pages:
- man sendmail
- man m4
- man aliases
- man mail.local
Então toda vez que adiciono um dominio virtual tenho que fazer isso! Não é possivel. Deve existir uma forma mais prática!
Segui todos os passos do tutorial, e funciomou bem. Mas todo esse negocio de editar varios arquivos, etc... Achei o qmail(http://qmail.org), que para mim foi dificil de instalar e faze-lo rodar, mas conheço bem o cliente dele (qmailAdmin), que é muito fácil de acrescentar usuarios, alias e redirecionamentos.
Como fica a configuração de vários dominos em produção com o sendmail no server? deve deixar qualquer administrador maluco!
Onde podemos encontrar um bom tutorial para instalação do qmail?
Ivan