QmailLDAP

De Infraestrutura São Carlos
Ir para navegação Ir para pesquisar

Objetivo

Instalação e configuração do software QmailLDAP em servidores Ubuntu.

Requisitos

Introdução

O qmailLDAP é a versão do qmail adaptada para acessar a base de usuários em um serviço de diretório LDAP.

Procedimentos

Compilação e instalação

  1. Instale os seguintes pacotes:
    # apt-get install openssh-server
    # apt-get install patch
    # apt-get install make
    # apt-get install gcc
    # apt-get install gcc++
    # apt-get install vim
    # apt-get install libssl-dev
    # apt-get install libldap2-dev
    # apt-get install nfs-client
    # apt-get install openssl
    # apt-get install bc
    # apt-get install libcurl3-dev
    # apt-get install libbz2-dev
    # apt-get install libgmp3-dev
    # apt-get install unrar
    # apt-get install lha
    # apt-get install arj
    # apt-get install unzoo
    # apt-get install unzip
    
  2. Instale o software Ucspi-tcp.
  3. Instale o software Daemontools.
  4. Instale o software Qmail-conf.
  5. Instale o software Maildrop.
  6. Crie os seguintes grupos e usuários do sistema:
    # groupadd nofiles
    # useradd -g nofiles -d /var/qmail/alias alias
    # useradd -g nofiles -d /var/qmail qmaild
    # useradd -g nofiles -d /var/qmail qmaill
    # useradd -g nofiles -d /var/qmail qmailp
    # groupadd qmail
    # useradd -g qmail -d /var/qmail qmailq
    # useradd -g qmail -d /var/qmail qmailr  
    # useradd -g qmail -d /var/qmail qmails 
    
  7. Crie o grupo e o usuário virtuais do sistema de correio eletrônico:
    # groupadd vmail -g 509
    # useradd vmail -u 509 -g vmail -d /home/vmail -s /bin/false
    # mkdir /home/vmail
    # chown -R vmail:vmail /home/vmail
    
  8. Vá ao diretório /usr/local/src
    # cd /usr/local/src
    
  9. Obtenha a última versão do qmail:
    # wget http://cr.yp.to/software/qmail-1.03.tar.gz
    
  10. Obtenha a correção que converte o qmail para qmail-ldap. Esta correção deve ser correspondente à versão do qmail:
    # wget http://www.nrg4u.com/qmail/qmail-ldap-1.03-20060201.patch.gz
    
  11. Descomprima a correção:
    # gunzip qmail-ldap-1.03-20060201.patch.gz
    
  12. Obtenha a correção do qmail para utilização do timezone local
    # curl http://www.ksknet.net/sample/qmail-date-localtime.patch > qmail-date-localtime.patch
    
  13. Obtenha a correção do qmail para agregar um tempo de atraso (delay) quando o cliente enviar um comando RCPT TO para um usuário que não existe.
    # wget http://kristof.bajnok.hu/qmail/qldap-badrcptdelay.patch
    
  14. Obtenha a correção do qmail para permitir alias de domínios, como por exemplo, cisc.usp.br ser alias para sc.usp.br:
    # wget http://kristof.bajnok.hu/qmail/qldap-domainalias.patch
    
  15. Obtenha a correção do qmail para permitir rejeitar mensagens oriundas de endereços IPs não resolvidos (DNS reverso):
    # wget http://kristof.bajnok.hu/qmail/qldap-reqptr.patch
    
  16. Desagrupe o pacote do qmail:
    # tar zxf qmail-1.03.tar.gz
    
  17. Vá ao diretório criado:
    # cd qmail-1.03
    
  18. Aplique a correção do qmail-ldap:
    # patch -p1 < ../qmail-ldap-1.03-20060201.patch
    
  19. Aplique as demais correções:
    # patch -p1 < ../qmail-date-localtime.patch.txt
    # patch -p1 < ../qldap-badrcptdelay.patch
    # patch -p1 < ../qldap-domainalias.patch
    # patch -p1 < ../qldap-reqptr.patch
    

    Obs.: Alguns avisos serão emitidos, mas podem ser ignorados.

  20. Edite o arquivo Makefile e altere as seguintes linhas:
    ...
    LDAPFLAGS=-DQLDAP_CLUSTER -DEXTERNAL_TODO -DDASH_EXT -DDATA_COMPRESS \
              -DQMQP_COMPRESS -DSMTPEXECCHECK -DALTQUEUE -DIGNOREVERISIGN -DDOMAIN_ALIAS
    LDAPLIBS=-L/usr/local/lib -lldap -llber
    LDAPINCLUDES=-I/usr/local/include
    ...
    ZLIB=-lz
    ...
    TLS=-DTLS_REMOTE -DTLS_SMTPD
    TLSINCLUDES=-I/usr/local/include
    TLSLIBS=-L/usr/local/lib -lssl -lcrypto
    OPENSSLBIN=/usr/bin/openssl
    ...
    MNW=-DMAKE_NETSCAPE_WORK
    ...
    SHADOWLIBS=-lcrypt
    ...
    DEBUG=-DDEBUG
    
  21. Compile e instale o software:
    # make setup check
    
  22. Gere o certificado utilizado pelo qmail em conexões seguras:
    # make cert
    
  23. Crie os arquivos de configuração do qmail:
    # ./config
    

Configuração

Arquivos de configuração

Os arquivos de configuração geral do QmailLDAP ficam no diretório /var/qmail/control.

  1. Vá ao diretório de configuração /var/qmail/control
    # cd /var/qmail/control
    
  2. Edite ou crie os seguintes arquivos de configuração com o seguintes conteúdos:
    • me: valor padrão de configuração para outras configurações onde não são definidas explicitamente:
    sc.usp.br
    
    • concurrencylocal: define o número máximo de processos qmail-local:
    30
    
    • concurrencyremote: define o número máximo de processos qmail-remote:
    80
    
    • databytes: define, em bytes, o tamanho máximo da mensagem aceita na conexão SMTP:
    20971520
    
    • defaultdomain: define o domínio padrão do sistema:
    sc.usp.br
    
    • defaulthost: define o computador padrão do sistema, adicionado ao endereço eletrônico que não possuir um nome de computador:
    sc.usp.br
    
    • doublebouncehost: define o computador padrão para mensagens doublebounced:
    smtp.sc.usp.br
    
    • doublebounceto: define o nome do usuário que envia mensagens doublebounced, que significa que estas mensagens devem ser removidas da fila.
    doublebounce
    
    • locals: define o(s) domínio(s) para a entrega de mensagens locais:
    localhost
    sc.usp.br
    
    • plusdomain: define o domíno a ser adicionado ao final de endereços terminados com o sinal +:
    usp.br
    
    • queuelifetime: define, em segundos, o tempo máximo de permanencia de uma mensagem na fila:
    259200
    
    • quotawarning: define a mensagem a ser enviada ao usuário se uma mensagem não foi entregue devido ao estouro da cota:
    Caro(a) Usuário(a),
    
    Se você está recebendo esta mensagem, isso significa que uma mensagem
    não pôde ser recebida pela sua caixa postal por não ter espaço suficiente
    em disco no momento da entrega.
    
    Por exemplo, se você tem uma cota de 20 MB e está utilizando 15 MB e
    alguém envia a você uma mensagem com 10 MB, você estará recebendo
    esta mensagem.
    
    Dessa forma, por favor, acesse o site
    
    http://webmail.sc.usp.br/
    
    e remova as mensagens que não são mais necessárias. Não se esqueça da
    pasta Sent-mail, pois ela também está na sua cota.
    
    Caso você tenha seu próprio computador, configure algum aplicativo
    POP3 para retirar as mensagens do servidor. Acesse:
    
    http://www.cisc.usp.br/correio/#pop3
    
    SEÇÃO DE SUPORTE
    
    • rbllist: define os sites de RBL (Realtime Blackhole List) utilizados para verificação de spammers:
    #baseaddress            action  matchon Message
    #==========================================================================
    bl.spamcop.net          reject  127.0.0.2       See http://www.spamcop.net/bl.shtml
    dnsbl.sorbs.net         reject  127.0.0.2       See http://www.us.sorbs.net/
    sbl.spamhaus.org        reject  any             See http://www.spamhaus.org/SBL
    
    • rcpthosts: define o(s) domínio(s) aceitos nas conexões SMTP:
    localhost
    sc.usp.br
    cisc.usp.br
    
    • ldapbasedn: define a base da busca no LDAP:
    ou=qmail,dc=usp,dc=br
    
    • ldapserver: define o(s) servidor(es) LDAP:
    10.225.1.30:389
    127.0.0.1:389
    
    • ldaprebind: se tem o valor 1 força a conexão com servidor LDAP com a senha do usuário e não com a senha do administrador LDAP:
    1
    
    • ldapuid: define o UID dos usuários virtuais:
    509
    
    • ldapgid: define o GID dos usuários virtuais:
    509
    
    • ldaplocaldelivery: se tem o valor 1, verifica a base de usuário do sistema caso o usuário não seja encontrado na base LDAP:
    0
    
    • ldapcluster: se tem o valor 1, o QmailLDAP está trabalhando em um ambiente de cluster:
    0
    
    • badmailfrom: endereços ou partes de endereços que não são aceitos na conexão SMTP:
    fulano@dominio.com.br
    @dominio.com
    ciclano@
    

Aliases

  1. Vá ao diretório de aliases /var/qmail/alias:
    # cd /var/qmail/alias
    
  2. Crie o arquivo .qmail-root para conter o alias do usuário root com o seguinte conteúdo:
    postmaster@sc.usp.br
    
  3. Crie o arquivo .qmail-cisc:usp:br-default para desviar todo e-mail destinado a cisc.usp.br para sc.usp.br, com o seguinte conteúdo:
    |/var/qmail/bin/forward $DEFAULT@sc.usp.br
    
  4. Dê as permissões corretas de acesso aos arquivos criados:
    # chown root:qmail .qmail*
    

Serviços

Os serviços do QmailLDAP são gerenciados pelas ferramentas do Daemontools e utilizam o tcpserver (Ucspi-tcp) para disponibilizar as conexões TCP. Utiliza-se também o Qmail-conf para configurar estes serviços.

POP3

POP é um serviço TCP na porta 110 utilizado para recuperação de mensagens do servidor.

  1. Execute o seguinte comando para instalar o serviço:
    # /var/qmail/bin/qmail-pop3d-conf /var/qmail/bin/auth_pop qmaill /var/qmail/service/pop3d
    
  2. Vá ao diretório do serviço:
    # cd /var/qmail/service/pop3d
    
  3. Edite o arquivo tcp com o seguinte conteúdo:
    :allow
    

    Esta configuração irá permitir que a conexão seja estabelecida de qualquer lugar.

  4. Gere o arquivo otimizado tcp.cdb do tcp:
    # make
    
  5. Vá ao diretório de configuração dos logs:
    # cd log/env
    
  6. Edite o arquivo MAXFILESIZE com o tamanho máximo do arquivo de log:
    10485760
    
  7. Edite o arquivo MAXLOGFILES com o número máximo de arquivos de logs que será mantido no sistema:
    100
    
DELIVERY

O delivery é um serviço interno do qmail responsável em distribuir as mensagens local e remotamente.

  1. Execute o seguinte comando para instalar o serviço:
    # /var/qmail/bin/qmail-delivery-conf qmaill /var/qmail/service/qmail
    
  2. Vá ao diretório do serviço:
    # cd /var/qmail/service/qmail
    
  3. Edite o arquivo run, com o seguinte conteúdo:
    #!/bin/sh
    exec env - PATH="/var/qmail/bin:$PATH" qmail-start ./Maildir/
    
  4. Vá ao diretório de configuração dos logs:
    # cd log/env
    
  5. Edite o arquivo MAXFILESIZE com o tamanho máximo do arquivo de log:
    10485760
    
  6. Edite o arquivo MAXLOGFILES com o número máximo de arquivos de logs que será mantido no sistema:
    100
    
SMTP

SMTP é um serviço TCP na porta 25 utilizado para receber mensagens externas.

  1. Execute o seguinte comando para instalar o serviço:
    # /var/qmail/bin/qmail-smtpd-conf qmaild qmaill /var/qmail/service/smtpd
    
  2. Vá ao diretório do serviço:
    # cd /var/qmail/service/smtpd
    
  3. Edite o arquivo tcp com o seguinte conteúdo:
    143.107.:allow,RELAYCLIENT=""
    200.136.9.:allow,RELAYCLIENT=""
    200.136.14.:allow,RELAYCLIENT=""
    200.136.16.:allow,RELAYCLIENT=""
    200.136.18.:allow,RELAYCLIENT=""
    200.136.19.:allow,RELAYCLIENT=""
    200.17.23.:allow,RELAYCLIENT=""
    200.17.22.:allow,RELAYCLIENT=""
    10.225.1.13:allow,RELAYCLIENT=""
    127.0.0.1:allow,RELAYCLIENT=""
    :allow,SENDERCHECK="",RCPTCHECK="",RETURNMXCHECK="",RBL="",LOGLEVEL="3"
    

    onde:

    • RELAYCLIENT: permite que os equipamentos da rede declarada façam relay.
    • SENDERCHECK: verifica se o remetente realmente existe se o domínio constar na configuração control/locals.
    • RCPTCHECK verifica se o destinatário realmente existe.
    • RETURNMXCHECK: rejeita os remetentes que não tem um MX de retorno válido.
    • RBL: verifica se o IP da máquina que envia não está declarado em uma RBL (Realtime Blackhole list) da configuração control/rbl.
    • LOGLEVEL: define o nível de log gerado (0 = no logging, 1 = fatal errors, 2 = accounting, 3 = connection setup and smtp errors, 4 = verbose).

    Veja aqui a lista de todas variáveis do QmailLDAP.

  4. Gere o arquivo otimizado tcp.cdb do tcp:
    # make
    
  5. Vá ao diretório de configuração dos serviço:
    # cd env
    
  6. Edite o arquivo CONCURRENCY com o número máximo de conexões simultâneas:
    100
    
  7. Vá ao diretório de configuração dos logs:
    # cd ../log/env
    
  8. Edite o arquivo MAXFILESIZE com o tamanho máximo do arquivo de log:
    10485760
    
  9. Edite o arquivo MAXLOGFILES com o número máximo de arquivos de logs que será mantido no sistema:
    100
    
SMTP AUTH

SMTP AUTH é um serviço TCP na porta 587 utilizado para somente enviar mensagens de usuários autenticados pelo sistema.

  1. Execute o seguinte comando para instalar o serviço:
    # /var/qmail/bin/qmail-smtpd-conf qmaild qmaill /var/qmail/service/smtpd587
    
  2. Vá ao diretório do serviço:
    # cd /var/qmail/service/smtpd587
    
  3. Edite o arquivo tcp com o seguinte conteúdo:
    :allow,SMTPAUTH="",AUTHREQUIRED="",LOGLEVEL="3"
    

    onde:

    • SMTPAUTH: informa ao cliente que é uma conexão SMTP AUTH e permite relay.
    • AUTHREQUIRED: permite somente o envio da mensagem somente para usuários autenticados.
    • LOGLEVEL: define o nível de log gerado (0 = no logging, 1 = fatal errors, 2 = accounting, 3 = connection setup and smtp errors, 4 = verbose).

    Veja aqui a lista de todas variáveis do QmailLDAP.

  4. Gere o arquivo otimizado tcp.cdb do tcp:
    # make
    
  5. Vá ao diretório de configuração dos serviço:
    # cd env
    
  6. Edite o arquivo CONCURRENCY com o número máximo de conexões simultâneas:
    100
    
  7. Edite o arquivo PORT com a porta de atendimento:
    587
    
  8. Vá ao diretório de configuração dos logs:
    # cd ../log/env
    
  9. Edite o arquivo MAXFILESIZE com o tamanho máximo do arquivo de log:
    10485760
    
  10. Edite o arquivo MAXLOGFILES com o número máximo de arquivos de logs que será mantido no sistema:
    100
    

Ativação

Para ativar os serviços configurados, é necessário instalá-los no diretório /service controlado pelo Daemontools:

# ln -s /var/qmail/service/pop3d /service
# ln -s /var/qmail/service/qmail /service
# ln -s /var/qmail/service/smtpd /service
# ln -s /var/qmail/service/smtpd587 /service

Para verificar se os serviços foram ativados, execute os seguintes comandos:

# svstat /service/pop3d /service/pop3d/log
# svstat /service/qmail /service/qmail/log
# svstat /service/smtpd /service/smtpd/log
# svstat /service/smtpd587 /service/smtpd587/log

Testes

Os testes desta seção utilizam a seguinte sintaxe:

  • S: indica que o comando é emitido pelo servidor do serviço.
  • C: indica que o comando deve ser digitado e enviado pelo cliente.

Conectividade

POP3

Para testar o serviço de POP3, digite o seguinte comando:

# telnet localhost 110

Se a conexão for estabelecida, a seguinte seqüência de comandos devem se trocados com o servidor:

   Trying 127.0.0.1...
   Connected to localhost.
   Escape character is '^]'.
S: +OK <pid.timestamp@your.server.host>
C: user usuario
S: +OK 
C: pass senha
S: +OK 
C: quit
S: +OK 
   Connection closed by foreign host.

SMTP

Para testar o serviço de SMTP, digite o seguinte comando:

# telnet localhost 25

Se a conexão for estabelecida, a seguinte seqüência de comandos devem se trocados com o servidor:

   Trying 127.0.0.1...
   connected to localhost.
   Escape character is '^]'.
S: 220 sc.usp.br ESMTP 
C: ehlo
S: 250-sc.usp.br 
S: 250-PIPELINING
S: 250-SIZE 20971520
S: 250-DATAZ
S: 250 8BITMIME
C: mail from: usuario@sc.usp.br
S: 250 ok
C: rcpt to: usuario@sc.usp.br
S: 250 ok
C: data   
S: 354 go ahead punk, make my day
C: Subject: testing
C: 						
C: Test   
C: .
S: 250 ok 1183127897 qp 22295 by sc.usp.br
C: quit
S: 221 sc.usp.br Goodbye.
   Connection closed by foreign host.

SMTP AUTH

Antes de estar o serviço de SMTP AUTH, é necessário gerar a senha na base 64 através do comando:

# perl -MMIME::Base64 -e 'print encode_base64("usuario\0usuario\0senha")'

O valor gerado deve ser utilizado no comando AUTH PLAIN.

Para testar o serviço de SMTP AUTH, digite o seguinte comando:

# telnet localhost 587

Se a conexão for estabelecida, a seguinte seqüência de comandos devem se trocados com o servidor:

   Trying 127.0.0.1...
   Connected to localhost.
   Escape character is '^]'.
S: 220 sc.usp.br ESMTP 
C: ehlo
S: 250-sc.usp.br 
S: 250-PIPELINING
S: 250-SIZE 20971520
S: 250-DATAZ
S: 250-AUTH LOGIN PLAIN
S: 250 8BITMIME
C: AUTH PLAIN dGVzdAB0ZXN0AGMlc2Mu
S 235 nice to meet you
C: mail from: usuario@sc.usp.br
S: 250 ok
C: rcpt to: usuario@sc.usp.br
S: 250 ok
C: data
S: 354 go ahead punk, make my day
C: Subject: testing
C:						
C: Test 
C: .
S: 250 ok 1183140354 qp 9957 by sc.usp.br
C: quit
S: 221 sc.usp.br Goodbye.
   Connection closed by foreign host.

Funcionalidade

Relay

Relay é permitir que se utilize o serviço SMTP para o envio de mensagens eletrônicas, não levando em conta o destinatário e nem o remetente, baseado na confiança.

O teste consiste em verificar se o QmailLDAP bloqueia o relay para equipamentos não confiáveis.

  1. Vá ao diretório do serviço SMTP /var/qmail/service/smtpd
    # cd /var/qmail/service/smtpd
    
  2. Edite o arquivo tcp e comente a linha abaixo:
    #127.0.0.1:allow,RELAYCLIENT=""
    
  3. Gere o arquivo otimizado tcp.cdb do tcp:
    # make
    
  4. Estabeleça a conexão com o serviço SMTP:
    # telnet localhost 25
    
  5. Se a conexão for estabelecida, utilize as seguinte seqüência de comandos trocados com o servidor:
       Trying 127.0.0.1...
       Connected to localhost.
       Escape character is '^]'.
    S: 220 sc.usp.br ESMTP 
    C: ehlo  
    S: 250-sc.usp.br 
    S: 250-PIPELINING
    S: 250-SIZE 20971520
    S: 250-DATAZ
    S: 250 8BITMIME
    C: mail from: usuario@sc.usp.br
    S: 250 ok
    C: rcpt to: teste@gmail.com
    S: 553 sorry, relaying denied from your location [127.0.0.1] (#5.7.1)
    C: quit
       Connection closed by foreign host.
    

MX Verdadeiro

O teste consiste em verificar se o QmailLDAP não permite receber mensagens de domínios que não existem.

  1. Vá ao diretório do serviço SMTP /var/qmail/service/smtpd
    # cd /var/qmail/service/smtpd
    
  2. Edite o arquivo tcp e comente a linha abaixo:
    #127.0.0.1:allow,RELAYCLIENT=""
    
  3. Gere o arquivo otimizado tcp.cdb do tcp:
    # make
    
  4. Estabeleça a conexão com o serviço SMTP:
    # telnet localhost 25
    
  5. Se a conexão for estabelecida, utilize as seguinte seqüência de comandos trocados com o servidor:
       Trying 127.0.0.1...
       Connected to localhost.
       Escape character is '^]'.
    S: 220 sc.usp.br ESMTP 
    C: ehlo  
    S: 250-sc.usp.br 
    S: 250-PIPELINING
    S: 250-SIZE 20971520
    S: 250-DATAZ
    S: 250 8BITMIME
    C: mail from: usuario@asd.fgh.com
    S: 554 refused mailfrom because return MX does not exist
    C: quit
       Connection closed by foreign host.
    

Entrega de mensagens

O teste consiste na verificação da entrega de mensagens locais e remotas.

Local

O teste consiste em enviar uma mensagem a um usuário local e um usuário não existente.

  1. Digite o seguinte comando para enviar uma mensagem ao usuário postmaster:
    # echo to: postmaster | /var/qmail/bin/qmail-inject
    
  2. Verifique o log do serviço DELIVERY a entrega da mensagem:
    # tail /var/qmail/service/qmail/log/main/current  | tai64nlocal
    
  3. Digite o seguinte comando para enviar uma mensagem a um usuário que não existe:
    # echo to: nonexistent | /var/qmail/bin/qmail-inject
    
  4. Verifique o log do serviço DELIVERY a entrega da mensagem:
    # tail /var/qmail/service/qmail/log/main/current  | tai64nlocal
    
Remoto

O teste consiste em enviar uma mensagem a um usuário de um domínio remoto.

  1. Digite o seguinte comando para enviar uma mensagem ao usuário existente em outro domínio:
    # echo to: usuario@gmail.com | /var/qmail/bin/qmail-inject
    
  2. Verifique o log do serviço DELIVERY a entrega da mensagem remotamente:
    # tail /var/qmail/service/qmail/log/main/current  | tai64nlocal
    

Gerenciamento

Para melhor gerenciar o QmailLDAP crie o script /var/qmail/bin/qmailctl, com o seguinte conteúdo:

#!/bin/sh

PATH=/var/qmail/bin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin
export PATH

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`

case "$1" in
  start)
    echo "Starting qmail"
    if svok /service/qmail ; then
      svc -u /service/qmail
    else
      echo qmail service not running
    fi
    if svok /service/smtpd ; then
      svc -u /service/smtpd
    else
      echo smtpd service not running
    fi
    if svok /service/smtpd587 ; then
      svc -u /service/smtpd587
    else
      echo smtpd587 service not running
    fi
    if svok /service/pop3d ; then
      svc -u /service/pop3d
    else
      echo pop3d service not running
    fi
    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail
    fi
    ;;
  stop)
    echo "Stopping qmail..."
    echo "  smtpd"
    svc -d /service/smtpd
    echo "  smtpd587"
    svc -d /service/smtpd587
    echo "  qmail"
    svc -d /service/qmail
    echo "  pop3d"
    svc -d /service/pop3d
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi
    ;;
  stat)
    svstat /service/qmail
    svstat /service/qmail/log
    svstat /service/smtpd
    svstat /service/smtpd/log
    svstat /service/smtpd587
    svstat /service/smtpd587/log
    svstat /service/pop3d
    svstat /service/pop3d/log
    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Sending ALRM signal to qmail."
    svc -a /service/qmail
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail."
    svc -h /service/qmail
    ;;
  pause)
    echo "Pausing qmail"
    svc -p /service/qmail
    echo "Pausing smtpd"
    svc -p /service/smtpd
    echo "Pausing smtpd587"
    svc -p /service/smtpd587
    echo "Pausing pop3d"
    svc -p /service/pop3d
    ;;
  cont)
    echo "Continuing qmail"
    svc -c /service/qmail
    echo "Continuing smtpd"
    svc -c /service/smtpd
    echo "Continuing smtpd587"
    svc -c /service/smtpd587
    echo "Continuing pop3d"
    svc -c /service/pop3d
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping smtpd"
    svc -d /service/smtpd
    echo "* Stopping smtpd587"
    svc -d /service/smtpd587
    echo "* Sending qmail SIGTERM and restarting."
    svc -t /service/qmail
    echo "* Restarting pop3d"
    svc -t /service/pop3d
    echo "* Restarting smtpd"
    svc -u /service/smtpd
    echo "* Restarting smtpd587"
    svc -u /service/smtpd587
    ;;
      cdb)
        tcprules /service/smtpd/tcp.cdb /service/smtpd/tcp.tmp < /service/smtpd/tcp
        chmod 644 /service/smtpd/tcp.cdb
        echo "Reloaded /service/smtpd/tcp.cdb"
        tcprules /service/smtpd587/tcp.cdb /service/smtpd587/tcp.tmp < /service/smtpd587/tcp
        chmod 644 /service/smtpd587/tcp.cdb
        echo "Reloaded /service/smtpd587/tcp.cdb"
        tcprules /service/pop3d/tcp.cdb /service/pop3d/tcp.tmp < /service/pop3d/tcp
        chmod 644 /service/pop3d/tcp.cdb
        echo "Reloaded /service/pop3d/tcp.cdb"
        ;;
      help)
        cat <<HELP
       stop -- stops mail service (smtp connections refused, nothing goes out)
      start -- starts mail service (smtp connection accepted, mail can go out)
      pause -- temporarily stops mail service (connections accepted, nothing leaves)
       cont -- continues paused mail service
       stat -- displays status of mail service
        cdb -- rebuild the tcpserver cdb file for all
    restart -- stops and restarts smtp, sends qmail a TERM & restarts it
    doqueue -- sends qmail ALRM, scheduling queued messages for delivery
     reload -- sends qmail HUP, rereading locals and virtualdomains
      queue -- shows status of queue
       alrm -- same as doqueue
      flush -- same as doqueue
        hup -- same as reload
    HELP
        ;;
      *)
        echo "Usage: $0 {start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help}"
        exit 1
        ;;
    esac
    
    exit 0

Domínios Virtuais

Se o seu servidor recebe para usuario@sc.usp.br mas também deseja receber como usuario@cisc.usp.br, pode-se utilizar o campo mailAlternateAddress dos registros. Entretanto, em árvores grandes isso pode ocasionar uma grande carga no servidor LDAP. Uma alternativa é criação de um alias de dominio, ou seja, cisc.usp.br ser alias de sc.usp.br.

Para criar um alias de domínio, remova o domínio cisc.usp.br do arquivo de controle control/locals e adicione o domínio no arquivo de controle control/virtualdomains:

cisc.usp.br:cisc.usp.br

Adicione o arquivo alias/.qmail-cisc:usp:br com o seguinte conteúdo:

|/var/qmail/bin/forward $DEFAULT@sc.usp.br

É importante a utilização do programa forward ao invés de usar somente $DEFAULT@sc.usp.br no arquivo. A variável de ambiente $DEFAULT está somente disponível em programas de entrega. Tenha também certeza que as entregas locais estejam ativadas. E o arquivo .qmail-filename todos os pontos (.) devem ser trocados por dois-pontos (:) como descrito no manual do qmail-local.

Veja também

  • Como filtar as mensagens usando Simscan.

Referências