On Fri, 11 May 2001, Mauro Ferreira wrote:
> Gostaria de configurar meu sendmail para n�o aceitar spams
> O meu sendmail � o sendmail 8.9.3-24cl, e gostaria que apenas os usu�rios
> permitidos ou dos dominios permitidos pudessem mandar e-mail usando o smtp
> desse sendmail, mas que o servidor conseguisse mandar e-mail para qualquer
> dom�nio.
Voc� perguntou! Preparado? ;)
Primeiro: atualize o sendmail para o 8.11.3.
Use o access_db.
Use "M4 Configuration" para configurar e customizar o sendmail.
Existe muito material e links em www.sendmail.org, e muita coisa
acha-se com via google.com.
Anti-spam � algo que exige dedica��o.
Comecei a me empenhar em bloquear spam e tenho obtido resultados
incr�veis com pouco esfor�o. Os spammers brasileiros s�o na maioria
muito fraquinhos... :))
Use MAPS e ORBS para conter spam, funcionam de forma excelente!!!
Roteiro para compilar e instalar seu pr�prio sendmail:
- Pegue os fontes em www.sendmail.org, ou alguma outra fonte
confi�vel. Confirme a assinatura MD5!
- expanda o sendmail: tar xzf sendmail.8.11.3.tar.gz
- acrescente suporte � REGEX:
cat >sendmail-8.11.3/devtools/Site/site.config.m4
APPENDDEF(`confENVDEF',`-DMAP_REGEX')
^D
- Compile:
cd sendmail-8.11.3
./Build 2>&1 | tee log
# tem que aparecer "-DMAP_REGEX" nas linhas de compila��o!
# n�o deve aparecer erro nem warnnig
- Instale:
./Build install-strip 2>&1 | tee -a log
- Gere o Manual de Opera��o:
cd doc/op
pic op.me | eqn -Tascii | nroff -me -Tascii | gzip -9nc >opme.gz
- Copie-o para o cf:
cd ../..
cp doc/op/opme.gz cf
- Copie o cf para /etc/mail, assim voc� n�o depende mais dos fontes:
mv cf /etc/mail/cf
- Documenta��es b�sicas para configura��o:
cd /etc/mail
less cf/README
zless -s cf/opme.gz
- prepara diret�rio mqueue para futuros testes
cd /etc/mail
mkdir -m 700 mqueue
Pronto, agora � s� gerar o sendmail.cf e testar.
Arquivo .mc "inicial", para come�ar... :
dnl wks 23/05/2001
dnl
VERSIONID(`linux setup')dnl
OSTYPE(linux)
dnl ------------------------------------------------------------
define(`confPRIVACY_FLAGS',`goaway,nobodyreturn')dnl
dnl ------------------------------------------------------------
FEATURE(always_add_domain)dnl
FEATURE(`no_default_msa')dnl nao responde a porta 587
FEATURE(local_procmail)dnl
dnl ------------------------------------------------------------
dnl ANTI-SPAM
FEATURE(`access_db')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`dnsbl')dnl
FEATURE(`dnsbl',`inputs.orbs.org')dnl
dnl ------------------------------------------------------------
MAILER(local)dnl
MAILER(smtp)dnl
dnl ------------------------------------------------------------
dnl
dnl m4 cf/m4/cf.m4 inicial.mc | diff /etc/mail/sendmail.cf -
dnl
dnl m4 cf/m4/cf.m4 new.mc | tee new.cf | diff sendmail.cf -
dnl m4 cf/m4/cf.m4 new.mc > new.cf
dnl m4 cf/m4/cf.m4 new.mc | diff new.cf -
dnl sendmail -bs -Cnew.cf -OQueueDirectory=/etc/mail/mqueue
dnl
dnl end of file
- Para compilar e criar o sendmail.cf inicial:
cd /etc/mail
m4 cf/m4/cf.m4 new.mc > sendmail.cf
Este � o "ponto de partida". As linhas "m4" que aparecem acima
funcionam para:
m4 cf/m4/cf.m4 inicial.mc | diff sendmail.cf -
Usado para pequenas altera��es no .mc, e verifica��o das altera��es
que ser�o feitas no sendmail.cf.
Para altera��es mais complexas, eu copio o inicial.mc para "new.mc",
a�, a linha
m4 cf/m4/cf.m4 new.mc | tee new.cf | diff sendmail.cf -
Gera o new.cf e mostra as diferen�as com sendmail.cf
m4 cf/m4/cf.m4 new.mc | diff new.cf -
O mesmo, mas sem estragar o new.cf anteriormente gerado.
sendmail -bs -Cnew.cf -OQueueDirectory=/etc/mail/mqueue
Esse comando realiza:
-bs executa no modo SMTP, usando stdin/stdout
-C define o arquivo de configura��o a ser usado
-OQueueDirectory Define o diret�rio de fila de email,
evita usar o diret�rio /var/spool/mqueue
usado pelo sendmail em opera��o
Para testar com o -bs � preciso conhecer o b�sico do protoloco SMTP.
No exemplo abaixo, as linhas com ">>" s�o do sendmail:
sendmail -bs -Cnew.cf -OQueueDirectory=/etc/mail/mqueue
>> 220 servidor.dominio.com.br ESMTP Sendmail 8.11.3/8.11.3; Wed, 23 May 2001 23:36:39
>-0300
helo test
>> 250 servidor.dominio.com.br Hello root@localhost, pleased to meet you
mail from:[EMAIL PROTECTED]
>> 501 5.1.8 [EMAIL PROTECTED] Domain of sender address [EMAIL PROTECTED] does not
>exist
mail from:<>
>> 250 2.1.0 <>... Sender ok
rcpt to:root
>> 250 2.1.5 root... Recipient ok
data
>> 354 Enter mail, end with "."on a line by itself
Subject: teste1
Este � apenas um teste...
.
>> 250 2.0.0 f4O2coX20662 Message accepted for delivery
quit
>> 221 2.0.0 servidor.dominio.com.br closing connection
Depois do comando "data", primeiro vem os headers, depois uma linha em
branco, e em seguida o corpo da mensagem.
Para instalar o novo .mc e .cf:
cd /etc/mail
mv -v inicial.mc `date +%Y-%m-%d`-inicial.mc
mv -v new.cf inicial.cf
mv -v new.mc inicial.mc
/etc/rc.d/init.d/sendmail stop
/etc/rc.d/init.d/sendmail start
ou
kill -HUP `head -n1 /var/run/sendmail.pid`
tail /var/log/messages
ou
tail /var/log/maillog
E se quiser testar novamente:
telnet 0 25
� preciso criar e administrar o arquivo access.db, que � criado com o
makemap a partir de um aquivo texto, normalmente chamado de "access":
Arquivo access de exemplo:
127.0.0. RELAY
# IP da sua rede
123.45.78. RELAY
dominio.com.br RELAY
virtual.com.br RELAY
smap.domain.xx REJECT
from:[EMAIL PROTECTED] ERROR:5.7.1:"530 Caia fora, spammer!"
canaldevendas.com.br ERROR:5.7.1:"530 Dominio bloqueado, contacte
[EMAIL PROTECTED] para sanar o problema"
#end of file
- E gere o access.db com:
makemap hash access <access
n�o � preciso reiniciar o sendmail quando se faz uma altera��o no
access e se gera um novo access.db, entretanto como o sistema � multi
task, a qualquer monento o sendmail pode estar querendo acessar o
access.db. Para evitar problemas durante a cria��o de um novo
access.db:
cd /etc/mail
makemap hash newaccess <access && mv -v newaccess.db access.db
O comando "mv" � garantidamente "at�mico". Isto significa que n�o h�
possibilidade de uma task estar querendo acessar este arquivo durante
a munda�a, de forma que ou as tasks est�o acessando o accesss.db
antigo, ou v�o acessar o access.db novo.
N�o esqueca de criar o usuario "abuse", ou um alias, e de responder
adequadamente a este endere�o.
Para conter SPAM tamb�m � preciso conhecer como denunciar o spammer
aos administradores do dom�nio que serve ao spammer. Comentei isso em
outro email. Sites anti-spam:
http://www.abuse.net
http://mail-abuse.org MAPS, usado com FEATURE(`dnsbl')
http://www.orbs.org ORBS, usado com FEATURE(`dnsbl',`inputs.orbs.org')
O ORBS � excelente, combatendo muitos spammers e bloqueando servidores
"largados" pela Internet, que ningu�m cuida, e que permitem "open relay".
Com essas dicas, e muita leitura, e muitos testes, � poss�vel come�ar
a mexer no sendmail de forma segura e produtiva.
Mais fontes:
http://www.dicas-l.unicamp.br/dicas-l/Treinamentos/
http://www.gamk.com.br/artigos.php3?file=sendmail.txt
http://www.sendmail.org/
http://www.sendmail.org/faq/
http://www.sendmail.org/other-sendmail-links.html
http://google.com ;)
E o Bat Book:
sendmail
Bryan Costales with Eric Allman
2nd Edition
O'Reilly & Associates (www.ora.com)
ISBN: 1-56592-222-0
--- Wagner [EMAIL PROTECTED]
Assinantes em 24/05/2001: 2288
Mensagens recebidas desde 07/01/1999: 114792
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
mailto:[EMAIL PROTECTED]