Pular para o conteúdo

Solução completa com o sendmail (segunda edição)

Quase 2 anos após ter escrito a primeira versão deste artigo, chegou a hora de rescrevê-lo com informações adicionais e atualizadas. Dentre seus recursos podemos citar o suporte a SMTP TLS e POP SSL (criptografado), antivírus, antiSPAM, autenticação SMTP e sistema de quota de usuário.
João Paulo de Oliveira Faria jpfaria
Hits: 79.571 Categoria: Linux Subcategoria: Correio Eletrônico
  • Indicar
  • Impressora
  • Denunciar

Parte 5: Sendmail

Conferindo instalação:

# /usr/sbin/sendmail -d0.1 -bv root

Se conter as palavras MILTER, SASLv2 e STARTTLS é porque está tudo OK. Caso contrário reveja os passos anteriores ou entre em contato comigo.

Criando o sendmail.mc:

# cd /usr/share/sendmail/cf/cf
# touch sendmail.mc


Após termos criado o sendmail.mc, coloque o conteúdo abaixo nele.

include(`../m4/cf.m4')
VERSIONID(`TLS supporting setup for Slackware Linux')
OSTYPE(linux)dnl
define(`confCACERT_PATH', `/etc/mail/certs/')dnl
define(`confCACERT', `/etc/mail/certs/smtp.cert.pem')dnl
define(`confSERVER_CERT', `/etc/mail/certs/smtp.cert.pem')dnl
define(`confSERVER_KEY', `/etc/mail/certs/smtp.key.pem')dnl
define(`confDEF_CHAR_SET', `iso-8859-1')dnl
define(`confMAX_MESSAGE_SIZE', `7168000')dnl
define(`confMAX_DAEMON_CHILDREN', `30')dnl
define(`confCONNECTION_RATE_THROTTLE', `2')dnl
define(`confMAXRCPTSPERMESSAGE', `50')dnl
define(`confSINGLE_LINE_FROM_HEADER', `True')dnl
define(`confSMTP_LOGIN_MSG', `$j')dnl
define(`confDONT_PROBE_INTERFACES', `True')dnl
define(`confTO_INITIAL', `6m')dnl
define(`confTO_CONNECT', `20s')dnl
define(`confTO_HELO', `5m')dnl
define(`confTO_HOSTSTATUS', `2m')dnl
define(`confTO_DATAINIT', `6m')dnl
define(`confTO_DATABLOCK', `35m')dnl
define(`confTO_DATAFINAL', `35m')dnl
define(`confDIAL_DELAY', `20s')dnl
define(`confNO_RCPT_ACTION', `add-apparently-to')dnl
define(`confTO_IDENT', `0')dnl
define(`confALIAS_WAIT', `0')dnl
define(`confMAX_HOP', `35')dnl
define(`confQUEUE_LA', `5')dnl
define(`confREFUSE_LA', `12')dnl
define(`confSEPARATE_PROC', `False')dnl
define(`confCON_EXPENSIVE', `true')dnl
define(`confWORK_RECIPIENT_FACTOR', `1000')dnl
define(`confWORK_TIME_FACTOR', `3000')dnl
define(`confQUEUE_SORT_ORDER', `Time')dnl
define(`confPRIVACY_FLAGS', `authwarnings,goaway,restrictmailq,restrictqrun,needmailhelo')dnl
FEATURE(`delay_checks')dnl
FEATURE(`generics_entire_domain')dnl
FEATURE(`local_procmail')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`nouucp',`reject')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`redirect')dnl
FEATURE(`use_cw_file')dnl
FEATURE(`use_ct_file')dnl
FEATURE(`enhdnsbl', `relays.ordb.org', `', `t', `127.0.0.2')dnl
FEATURE(`enhdnsbl', `sbl-xbl.spamhaus.org', `', `t', `127.0.0.2-6')dnl
FEATURE(`dnsbl',`blackholes.mail-abuse.org',`')dnl
FEATURE(`dnsbl',`relays.mail-abuse.org',`')dnl
FEATURE(`dnsbl',`dialups.mail-abuse.org',`')dnl
FEATURE(`dnsbl',`bl.spamcop.net', `')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
FEATURE(`access_db', `hash -T /etc/mail/access')dnl
FEATURE(`blacklist_recipients')dnl
FEATURE(`lookupdotdomain')dnl
FEATURE(`no_default_msa')dnl
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/milter.sock,F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')dnl
MAILER(local)dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
define(`confAUTH_OPTIONS', `A p y')dnl
define(`confAUTH_MECHANISMS', `LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
TRUST_AUTH_MECH(`LOGIN PLAIN DIGEST-MD5 CRAM-MD5')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
DAEMON_OPTIONS(`Port=smtps, Name=MSA-SSL, M=s')dnl

Gerando o sendmail.cf:

# m4 sendmail.mc > /etc/mail/sendmail.cf

Criando os certificados:

# cd /etc/mail/certs
# openssl req -new -x509 -keyout CA.smtp.key.pem -out CA.smtp.cert.pem -days 365


Generating a 1024 bit RSA private key
............................................++++++
.......................................................................++++++
writing new private key to 'CA.smtp.key.pem'
Enter PEM pass phrase:1234
Verifying - Enter PEM pass phrase:1234
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:rio-de-janeiro
Locality Name (eg, city) []:niteroi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:solar
Organizational Unit Name (eg, section) []:tec
Common Name (eg, YOUR name) []:jpfaria.com
Email Address []:jpfaria@jpfaria.com


# openssl req -nodes -new -x509 -keyout smtp.key.pem -out smtp.cert.pem -days 365

Generating a 1024 bit RSA private key
..............................++++++
...................++++++
writing new private key to 'smtp.key.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:BR
State or Province Name (full name) [Some-State]:rio-de-janeiro
Locality Name (eg, city) []:niteroi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:solar
Organizational Unit Name (eg, section) []:tec
Common Name (eg, YOUR name) []:jpfaria.com
Email Address []:jpfaria@jpfaria.com

Testando o seu certificado:

# openssl x509 -noout -text -in smtp.cert.pem

Setando permissões nos certificados:

# chmod 600 /etc/mail/certs -R

   1. Introdução
   2. Cyrus-SASL2, saslauthd e Qpopper
   3. Clamav
   4. SpamAssassin
   5. Sendmail
   6. Usando os arquivos .db
   7. Colocando todos os recursos para iniciar automaticamente no servidor
   8. Testando
   9. Desabilitando o POP inseguro (porta 110)
   10. Quota de disco

Instalando o PostgreSQL no Slackware

Solução completa com o sendmail

Kernel 2.6.9 no Slackware

Instalando Snort e Guardian no Slackware

Instalando o AWSTATS no Slackware

Claws Mail: o cliente de correio eletrônico que morde!

Configurando Postfix + MySQL + Courier + SPF + Clamav + SpamAssassin + Greylist + TLS

Os atuais MDAs e as linguagens de filtragem de e-mail (parte 1 - Procmail)

POP3 gateway com fetchmail

Hotwayd :: Conectando-se ao servidor POP3 do Hotmail

#1 Comentário enviado por jpfaria em 24/08/2006 - 19:56h
Alteração:
Os arquivos para ativação de quota no slackware mudaram!

# touch /aquota.user
# touch /aquota.group
# chmod 600 /aquota.user
# chmod 600 /aquota.group
#2 Comentário enviado por gr4ph1x em 25/08/2006 - 08:00h
mano, na hora que fui dar um boot aparece isso no sendmail

Starting sendmail MTA daemon: /usr/sbin/sendmail -L sm-mta -bd -q25m
WARNING: Xclmilter: local socket name /var/run/clamav/milter.sock missing
Starting sendmail MSP queue runner: /usr/sbin/sendmail -L sm-msp-queue -Ac -q25m

O que seria : WARNING: Xclmilter: local socket name /var/run/clamav/milter.sock missing ???
#3 Comentário enviado por gr4ph1x em 25/08/2006 - 09:33h
Ja arrumei aqui, era o local do socket que não estava correto
#4 Comentário enviado por jpfaria em 25/08/2006 - 09:35h
Eu ja estava aqui vendo o que podia ser!
#5 Comentário enviado por thelinux em 25/08/2006 - 11:21h
jpfaria,

Parabéns pelo artigo. Nota 10.
#6 Comentário enviado por wrlima em 27/08/2006 - 21:10h
Artigo é bom, porem o MTA sendmail já era... nada como Qmail ou Postfix.

Abs,
#7 Comentário enviado por fsoliveira em 28/08/2006 - 11:40h
fala paulinho !

nota 10.0 o artigo...

abraçao leki

Fred.
#8 Comentário enviado por gr4ph1x em 10/11/2006 - 15:56h
Mano

Tudo esta funcionando beleza aqui...

Só que quando configuro o Outlook fica aperecendo a msg:

"Uma cadeia de certificação foi processada, mas terminou em um certificado raiz que não é de confiança do fornecedor" Deseja continuar? Sim - Não

Tem como tirar esse aviso??
#9 Comentário enviado por metall em 04/12/2006 - 17:45h
Dai fio!! blz!!
seguinte Joao Paulo to com problema assim usei seus passos como caminho instalei isso no CL10 blz tudo funcionando certinho ate agora! soh um probleminha nao tem um lugar nem um o milter.sock e esta instaldo tudo certinho clamav!! o que poderia ser como faco pra resolver este problema!!
Abraco[] Velho!! Fico no Aguardo
#10 Comentário enviado por metall em 04/12/2006 - 18:07h
Boa Tarde foi instalar a autenticao em outro cliente hj usando o cl10 mesmo to com o seguinte problema segui suas instrucoes...
quando uso o database.sh me retorna isso
sh databese.sh
WARNING: World writable directory /etc
WARNING: World writable directory /etc
WARNING: World writable directory /etc
WARNING: World writable directory /etc
WARNING: World writable directory /etc
WARNING: World writable directory /etc

e quando vou usar o m4 me retorna isso tambem

m4 sendmail.mc > /etc/mail/sendmail.cf
*** WARNING: missing -T<TMPF> in argument of FEATURE(`access_db', hash -T /etc/mail/access)

poderia me dar uma mao eh urgente! tao me cobrando isso e nao consegui resolver
Abraco!!
Fico no Aguardo!!
#11 Comentário enviado por metall em 04/12/2006 - 21:51h
bom soh pra dar um parecer ai consegui resolver o problema nao sei q cargas dagua o etc tinha muda as permisao do diretorio! ai se tei para chmod 755 acabou todos os problemas!! funciono tudo tranquilo...

Pra quem tiver este problema! ta ai eh soh permisao usei
#chmod 755 /etc


Soh fiquei com o problema do milter.sock q nao tem nesta distribuicao Cl10 poderia me passar alguma possicao?
Abraco[]s
#12 Comentário enviado por metall em 21/12/2006 - 14:39h
Dai Bruxo do Sendmail!!
Seguinte velho nunca implemento o sendmail para usar o ip-reverso!
tipow ele soh aceita email quem tiver com ip-reverso configurado!
se nao ele recusa! como hj muito servidores! utilizao isso! tu nao sabe como implementa isso?

poderia passar uma dica algo assim se souber! ou ate mesmo da uma pesquisada!! ja q o senhor!! eh o Kara no Sendmail!!

Aquele Abraco!!
Fico No Aguardo!!
#13 Comentário enviado por makleod em 13/02/2008 - 15:45h
jpfaria,

como posso configurar o sendmail para enviar um aviso automatico que a senha do usuario esta expirando em X data?
#14 Comentário enviado por msinformatica em 22/03/2009 - 17:55h
tenho o slackware 12.1 instalado ja com os pacotes Sendmail sasl 8.13 , tenho o clamav e tenho o Cyrus-sals. Alguem poderia me ajudar ,como configurar a autenticacao smtp.
#15 Comentário enviado por adilsom em 29/10/2010 - 14:55h
ola, cinfigurei o sendmail com imap, e ja consigo enviar e receber email prfeitamente com a conta addfone que criei no linux.

So que queria ter outros email para o mesmo dominio "addfone.com.br"

ex:
info@addfone.com.br
suporte@addphone.net

tenho que adicionar cada usuario no linux, ou tem alguma outra forma.


e tambem nao consegui enviar email com a funçao MAIL do php.



obrigado

Contribuir com comentário

Entre na sua conta para comentar.