Configuração de e-mails
Descrição
Complementando o
http://www.sprace.org.br/Twiki/bin/view/Main/EntryDescriptionNo2
, modificamos na osg-ce
o sendmail.mc
[root@osg-ce ~]# vim /etc/mail/sendmail.mc
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=192.168.1.150, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=200.136.80.4, Name=MTA')dnl
Estas opções fazem com que ela aceite e envie e-mail pelas suas interfaces de
rede padrão. Restartamos as configurações
[root@osg-ce ~]# make -C /etc/mail; /etc/init.d/sendmail restart
a linha em
[root@osg-ce ~]# more /etc/mail/local-host-names
osgce.grid
é essencial para que ele receba e-mail dos nodes com o aliases apropriado. Sem
ela, os e-mails que estão nos aliases dos nodes não chegam (lá estão
configurados como root
root@osgce.grid), no /etc/aliases
A mesma modificação é feita nos nodes. Primeiro modificamos o sendmail.mc (padrão) de um deles, e aqui reside a raiz : fazer com que eles sejam mailservers debaixo de outro mail server. Isso é essencial para softwares como cron, logwatch, gerenciadores dos nobreaks, etc
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
dnl FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl
O comentário da primeira linha (com dnl o mc4 ignora o que vem à seguir). faz
com que ela deixe de escutar somente o loopback e envie e-mails. A segunda
linha é porque a gente não necessita de procmail se a osgce enviará os e-mails
para fora.
dnl EXPOSED_USER(`root')dnl
dnl #FEATURE(`accept_unresolvable_domains')dnl
A ultima linha comentada faz com que os nodes chequem basicamente o MTA que
está vindo.
FEATURE(`nullclient',`[osg-ce.sprace.org.br]')dnl
Esta linha é importante: ela pede que o e-mail seja reenviado pelo gatewau par
ao mundo exterior. Temos de ter as linhas de RELAY no /etc/mail/access
configuradas corretamente.
MASQUERADE_AS(`sprace.org.br')dnl
MASQUERADE_AS(sprace.org.br)dnl
FEATURE(masquerade_envelope)dnl
LOCAL_DOMAIN(`sprace.org.br')dnl
Desnecessárias, pois os e-mails não são mais enviados pelos nodes. Podem ser
retirados. A principo, se os e-mails não fossem reenviados,esta linhas iriam
cuidar para que os e-mails ao invés de sairem com
root@node41.grid saissem
como
root@sprace.org.br
dnl MAILER(smtp)dnl
dnl MAILER(procmail)dnl
Essas linhas não são necessárias sem o procmail.
[root@node21:~]# vim /etc/mail/access
192.168.1 RELAY
[root@node21:~]#vim /etc/mail/local-host-names
sprace.org.br
Não são necessárias, mas deixam a configuração mais coerente. Acho que podemos
remover sem problemas.
Agora replicaremos estas configurações para os outros nodes:
[root@node21:~]# yum install sendmail-cf -y;makemap hash /etc/mail/local-host-names < /etc/mail/local-host-names; makemap hash /etc/mail/access < /etc/mail/access
[root@node21:~]# make -C /etc/mail; /etc/init.d/sendmail restart
[root@node21:~]# cp -pr /etc/mail /home/mdias/mailnode
e da ce
[root@osg-ce ~]# clcmd 'mv /etc/mail /etc/mail.old; cp -pr /home/mdias/mailnode /etc/mail;/etc/init.d/sendmail restart'
Marco em 25/06/2008
Instalacao de um filtro para somente os e-mails do root das maquinas sejam
aceitos (Chainmail e bibliotecas milteroo)
wget
http://downloads.sourceforge.net/chainmail/chainmail-0.3-1rh73.i386.rpm?modtime=1076284800&big_mirror=0
wget
http://downloads.sourceforge.net/chainmail/milteroo-0.1-1.i386.rpm?modtime=1076284800&big_mirror=0
rpm -ivh chainmail-0.3-1rh73.i386.rpm milteroo-0.1-1.i386.rpm
editando o sendmail.mc
vim /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`chainmail', `S=local:/var/run/chainmail.sock')
cd /etc/mail
m4 sendmail.mc > sendmail.cf
service sendmail restart
criamos o socket
mksock /var/run/chainmail.sock
configuramos a regra
vim /etc/chainmail.conf
Rule "Regra 1"
If not Sender "root@"
Action Reject
/etc/init.d/chainmail restart
acompanhando em
tail -f /var/log/chainmail.log
Jadir em 25/06/2008
Após as mudanças no
hosts.allow para permitir conexões apenas de
hosts conhecidos, v.g. d0server, os
email's do
node's passaram a ser rejeitados pelo
sendmail, ao passar pela sala onde o
Lietti
e o
Bach
estavam analizando os
log's de erro vi que havia uma linha gerada pelo
tcpwrapper [1] então disse a eles que o
tcpwrapper
analiza os arquivos
hosts.allow e
hosts.deny para controlar o acesso ao
host, então o Lietti acrescentou o
localhost, 127.0.0.1, no
hosts.allow e o
sendmail voltou enviar o
email's do
logwatch[2]. Fica a dica:
sempre que os arquivos usados pelo tcpwrapper forem usados para um controle mais restritivo de acesso, lembrar de acrescentar o localhost no hosts.allow. |
--
MarcoAndreFerreiraDias - 19 Jun 2008
1 TCPWrapper - definition on wikipedia
2 Logwatch