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.065 ]

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


Quota de disco



IMPORTANTE: Verifique o seu sistema de arquivos.
  • Se for EXT2 ou EXT3, pode pular o passo 3.
  • Se for ReiserFS, verifique se:

    a) a versão do seu Disk Quota é igual ou superior a 6.5.1 com o comando:

    # dmesg | grep -i Disk

    b) a versão do seu kernel seja igual ou superior a 2.6.7.

    c) verifique se seu kernel está com suporte a quota ativado.

    Caso não esteja, recomendo parar por aqui, pois não foi testado com a sua configuração.

  • - Se for qualquer outro, recomendo procurar outra fonte.

1. Primeiro vamos configurar o /etc/fstab. O servidor de email, por padrão, sempre usa o /var/spool/mail para armazenar as caixas de e-mail, então devemos setar a quota na partição que contem esse diretório. Vamos num caso simples que a máquina só tem um partição. Vamos editar o arquivo /etc/fstab e supor que sua a linha que se encontra a sua partição seja assim:

/dev/hda1    /        ext3    defaults     1   1

Ela deverá ficar assim:

/dev/hda1    /        ext3    defaults,usrquota,grpquota     1   1

Adicionamos o usrquota e grpquota.

2. Criando arquivos e dando as permissões necessárias:

# touch /quota.user
# touch /quota.group
# chmod 600 /quota.user
# chmod 600 /quota.group


3. Se seu sistema de arquivo por o ReiserFS, modifique o seu arquivo /etc/rc.d/rc.M. Substitua o bloco que inicia a quota pelo conteúdo abaixo:

if grep -q quota /etc/fstab ; then
  if [ -x /sbin/quotacheck ]; then
    echo "Checking filesystem quotas: /sbin/quotacheck -avugmF"
    /sbin/quotacheck -avugmF vfsv0
  fi

  if [ -x /sbin/quotaon ]; then
    echo "Activating filesystem quotas: /sbin/quotaon -avugF"
    /sbin/quotaon -avugF vfsv0
  fi
fi

4. Agora para a gente seguir adiante vamos ter que dar um BOOT para o sistema começar a funcionar.

5. Após o boot, esse passo é para quem não gosta do editor "vi", para os que gostam podem ir para o sexto passo. Vamos dar o comando abaixo para mudar temporariamente o editor padrao do seu Slackware. Usaremos o PICO.

# export EDITOR=/usr/bin/pico

6. Agora crie o usuário "emailquota" para que possamos usá-lo de espelho para os outros usuários.

7. Vamos especificar o "grace period" do seu sistema. Vou setar que o usuário pode ultrapassar sua cota por 1 dia, mas não ultrapassará o limite máximo.

# edquota -t

Vai Aparecer algo assim:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem             Block grace period     Inode grace period
/dev/hda1              7days                  7days
Vamos setar que o usuário só pode ultrapassar por 1 dia, então o arquivo ficará assim:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem             Block grace period     Inode grace period
/dev/hda1              1days                  7days
8. Criando a quota do usuário emailquota:

# edquota -u emailquota

Vai aparecer algo assim:
Disk quotas for user emailquota (uid 3125):
Filesystem    blocks     soft   hard   inodes   soft   hard
/dev/hda1     1097896    0      0      167      0      0

inodes


Um inode é uma identificação única que cada arquivo recebe dentro da partição. Um inode fica alocado numa tabela que é criada na formatação da partição. Nesta formatação você define o tamanho lógico que cada inode vai suportar. Um inode contém toda informação de um arquivo. Você pode verificar o uso dos inodes do seu sistema com o comando:

# df -i

blocks


Um block é a unidade que especifica espaço em disco, no nosso caso expresso em kilobytes. O que seria um 1024-block.

Soft limit


É muito usado para contas shell. É o limite do usuário. Se essa opção for usada junto com 'Grace period', o usuário que ultrapassar esse limite vai receber notificações que está acima do permitido, durante um período estabelecido de tempo. Se não estiver junto com 'Grace period' esse valor é o limite do usuário.

Hard Limit


Funciona apenas com 'Grace period', especifica o limite absoluto. O usuário não pode passar desse limite de forma alguma.

Grace Period


É o tempo limite antes que as condições de limite do 'soft limit' sejam impostas sobre o filesystem. Mais abaixo iremos mostrar como especificar isso.

Vamos colocar uma quota de 10MB (10240) para esse usuáio espelho e vamos colocar 10% a mais (11264) no HARD para que ele possa ultrapassar um pouquinho a quota durante 1 dia.
Disk quotas for user emailquota (uid 3125):
Filesystem    blocks    soft    hard    inodes  soft   hard
/dev/hda1     1097896   10240   11264   167     0      0
9. Verificando a quota do usuário emailquota:

# repquota -a | grep emailquota

Vai aparecer algo assim:
emailquota --       0   10240   11264          1     0     0 
10. Agora vamos utilizar o nosso usuário espelho para replicar para outros usuários.

# edquota -p emailquota fulano
# edquota -p emailquota ciclano


Após ter feito isso, os usuários fulano e ciclano receberam as mesmas configurações do usuário espelho "emailquota".

Dica final


Configurando o Outlook Express para enviar e receber e-mails.

Basta informar que o servidor de e-mail requer autenticação e setar a porta do servidor POP para 995, a porta de SMTP para 465 e setar que ambas são portas seguras.

Página anterior    

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

Sendmail com antivírus e autenticação SMTP

Usando Spammer e SpamDomains no sendmail

Kernel 2.6.9 no Slackware

Instalando e configurando um servidor DNS (Bind)

Leitura recomendada

Webmail Roundcubemail em PHP4/PHP5 com skins, LDAP e extras

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

Servidor de e-mail no Linux com MTA Sceo

Sylpheed - a GTK+ based, lightweight, and fast e-mail client

Email + EGroupWare + Active Directory

  
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