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.

[ Hits: 77.055 ]

Por: João Paulo de Oliveira Faria em 24/08/2006 | Blog: http://www.jpfaria.com


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

Página anterior     Próxima página

Páginas do artigo
   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
Outros artigos deste autor

Instalando Snort e Guardian no Slackware

Instalando o PostgreSQL no Slackware

Kernel 2.6.9 no Slackware

Sendmail com antivírus e autenticação SMTP

Qpopper (POP seguro) no Slackware

Leitura recomendada

Servidor de e-mail com OpenBSD - Postfix & Cia

Qmail + Patches + Performance Tuning, the Debian AMD64 way

Aliases e autenticação para aliases no Postfix

Instalação do Postfix e OpenWebmail no Slackware

Qmail e chkuser - fila de mensagens limpa

  
Comentários
[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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts