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: 76.401 ]

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


Cyrus-SASL2, saslauthd e Qpopper



Criando o Sendmail.conf (o S é em maiúsculo):

# echo "pwcheck_method: saslauthd" >> /usr/lib/sasl2/Sendmail.conf
# echo "mech_list: getpwent LOGIN PLAIN" >> /usr/lib/sasl2/Sendmail.conf


Executando o saslauthd:

# chmod +x /etc/rc.d/rc.saslauthd
# /etc/rc.d/rc.saslauthd start


Se não ocorrer nenhum erro é porque seu sistema esta funcionando perfeitamente.

Qpopper


Adquirindo e instalando o pacote (qpopper-4.0.8-i386-P1.tgz):

# cd /pkg
# wget
http://ftp.yz.yamagata-u.ac.jp/pub/linux/plamo/Plamo-4.2/\
plamo/n/qpopper-4.0.8-i386-P1.tgz

# installpkg qpopper-4.0.8-i386-P1.tgz

Criando o qpopper.config:

# mkdir /etc/mail/pop
# echo "set tls-support = alternate-port" >> /etc/mail/pop/qpopper.config
# echo "set tls-server-cert-file = /etc/mail/certs/pop.cert.pem" >> /etc/mail/pop/qpopper.config
# echo "set tls-private-key-file = /etc/mail/certs/privatekey.pem" >> /etc/mail/pop/qpopper.config
# chmod 600 /etc/mail/pop -R


Criando os certificados SSL. Estou utilizando como padrão o meu domínio jpfaria.com, é muito importante que utilize o seu domínio.

# mkdir /etc/mail/certs
# cd /etc/mail/certs
# openssl genrsa -des3 -out CA.pop.key 1024


Generating RSA private key, 1024 bit long modulus
...++++++

...............................................++++++
e is 65537 (0x10001)
Enter pass phrase for CA.pop.key:1234
Verifying - Enter pass phrase for CA.pop.key:1234

# openssl req -new -x509 -days 365 -key CA.pop.key -out CA.pop.crt

Enter pass phrase for CA.pop.key: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 -new -nodes -key CA.pop.key -out pop.req.pem -keyout pop.cert.pem

Enter pass phrase for CA.pop.key: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

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:1234
An optional company name []:solar

# openssl x509 -req -CA CA.pop.crt -CAkey CA.pop.key -days 3650 -in pop.req.pem -out pop.cert.pem -CAcreateserial

serial
Signature ok
subject=/C=BR/ST=rio-de-janeiro/L=niteroi/O=solar/OU=tec/CN=joao/ emailAddress=joaopaulo@deoliveira.com.br
Getting CA Private Key
Enter pass phrase for CA.pop.key:1234

# openssl rsa -in CA.pop.key -out privatekey.pem

Enter pass phrase for CA.pop.key:1234
writing RSA key

# chmod 600 /etc/mail/certs -R

Abaixo estão algumas linhas de teste, se não houver nenhuma mensagem de erro é que os certificados foram gerados com sucesso.

# openssl x509 -noout -modulus -in pop.cert.pem | openssl md5
56e98cf020dfc80f909618717cf1dd15

# openssl rsa -noout -modulus -in CA.pop.key | openssl md5

Enter pass phrase for CA.pop.key:1234
56e98cf020dfc80f909618717cf1dd15

# openssl rsa -noout -modulus -in privatekey.pem | openssl md5
56e98cf020dfc80f909618717cf1dd15

Repare que os três comandos geraram o mesmo código.

Para que o qpopper funcione você precisa do Linux-PAM, se você executar o seguinte comando:

# popper -s -f /etc/mail/pop/qpopper.config

e retornar a seguinte mensagem:

popper: error while loading shared libraries: libpam.so.0: cannot open shared object file: No such file or directory

Então você precisa instalar a lib Linux-PAM. Você pode achar em:
Vou utilizar a versão 0.99.3.0.

# cd /pkg
# wget
http://opensys.linuxpackages.net/Slackware-10.2/Library/\
Linux-PAM/Linux-PAM-0.99.3.0-i486-1cjm.tgz

# installpkg Linux-PAM-0.99.3.0-i486-1cjm.tgz

Habilitando o spop3 (porta 995). Para habilitar o spop3, edite o arquivo /etc/inetd.conf e coloque a linha abaixo no final do arquivo.

spop3   stream  tcp     nowait  root    /usr/sbin/tcpd          popper -s -f /etc/mail/pop/qpopper.config

Reiniciando o inetd:

# /etc/rc.d/rc.inetd restart

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

PEAR - Utilizando classes prontas e documentadas no PHP

Como hospedar um site/domínio de graça na sua casa

Instalando o AWSTATS no Slackware

Configurando o iptables-p2p no Slackware

Controle de banda no Apache 1.3.X com mod_bandwidth (Slackware)

Leitura recomendada

Webmail Horde 4 - Instalação e configuração no Debian Squeeze

XMail - Servidor de email fácil de configurar

Servidor de e-mails vinculado ao AD (Postfix + Courier)

MTA Selor: Servidor de E-mails - Novo Projeto GPL

Servidor de email com SMTP, POP, IMAP, quota e MySQL

  
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