Escolar Documentos
Profissional Documentos
Cultura Documentos
Resumo
Neste arquivo, ser tratado da configurao de um servidor de email's utilizado em plataformas compatveis com o UNIX como, por exemplo: o Linux, FreeBDD, etc. Utilizaremos o servidor qmail, um software que leva a segurana e flexibilidade em primeiro lugar para o tratamento de mensagens. Este documento possu um carter didtico, tentarei passar de forma clara e detalhada a instalao do servidor de e-mail's qmail bem como, alguns conceitos bsicos para o endentimento de um servidor de menssagens.
Palavras-chave
qmail, MTA, ucspi-tcp, checkpassword, Maildir, Mailbox, mbox, sendmail, pop3, smtp, email, domnio virtual, redirecionamento
1. Introduo
O qmail um servidor de E-Mail's, ou seja, um MTA - Mail Transfer Agent, utilizado nas plataformas do tipo UNIX - incluindo o Linux - sendo que o melhor de tudo ele ser um software gratuito. Sua primeira verso publica foi disponibilizada em 1996 (verso 0.7) contudo, a verso 1.0 s foi liberada em 1997 e, aps, Dan Bernstein (DJB) - seu autor ofereceu 500 dlares para os que conseguissem encontrar uma falha no programa. Para nossa surpresa, nenhuma falha de segurana foi encontrada no programa. Lembrando que as falhas eram no qmail e, isso, no inclua os programas externos a ele, como: problemas com o NFS, problemas de segurana no TCP/IP, DNS, bugs em scripts que eram executados em arquivos .forward e bugs gerais em sistemas operacionais. Em 1998 foi lanada a verso 1.03 e, por incrvel que parea, a verso disponibilizada at hoje. Um grupo de usurios do qmail chegaram a oferecer 1.000 dlares a quem conseguisse descobrir uma falha no programa seguindo as mesmas regras anteriores no perodo de um ano. Bem, ningum nunca solicitou o prmio e, o dinheiro foi doado Free Software Foundation. Esta pequena histria foi contada para ilustrar o quo seguro o qmail. O sendmail um programa que executado como root e, como ele um nico programa (monoltico) que faz todas as tarefas, quem descobrir uma falha no sendmail ter os privilgios de root. No qmail, as tarefas so modularizadas, ou seja, existe um conjunto de programas que gerenciam as mensagens, somente, dois programas utilizam a permisso de superusurio - qmail-start e qmail-lspawn - logo, se o invasor conseguir desvendar alguma falha nestes programas, no conseguir fazer muita coisa no sistema. Para o sendmail, os programas e arquivos so tratados como endereos, logo, uma pessoa qualquer pode, arbitrariamente, executar um programa ou escrever em um arquivo, no qmail, os programas e arquivos no so tratados como endereos. Alm de outros detalhes, tambm utiliza uma biblioteca prpria, a qual, facilita a no ocorrncia de buffer overruns, vazamento de memria, estouro no escopo de variveis, normalmente, causados pela utilizao de bibliotecas que costumam a encorajar o surgimento destes bugs em seu desenvolvimento, como a stdio, etc.
http://www.geleira.org 1
Notas: - O nome correto do software "qmail" e, no "Qmail". - A pronuncia correta do software "kyoo mail".
2. Requisitos
Para o nosso estudo, precisaremos dos seguintes programas, que podem ser obtidos nos endereos abaixo: - qmail: http://www.qmail.org - ucspi-tcp: http://cr.yp.to/ucspi-tcp.html - checkpassword: http://cr.yp.to/checkpwd.html
3. Instalao
Devemos criar um diretrio qualquer, a qual, utilizaremos para a compilao e instalao do qmail e programas auxiliares, para tal:
3.1 - Arquivos
# mkdir /usr/src/svremail # cd /usr/src/svremail # tar zxvf /caminho_do_arquivo/ucspi-tcp-x.xx.tar.gz # tar zxvf /caminho_do_arquivo/checkpassword-x.xx.tar.gz # tar zxvf /caminho_do_arquivo/qmail-x.xx.tar.gz
3.2 - Preparao
Antes de compilar e instalar o qmail, precisamos seguir alguns passos necessrios para a preparao do sistema. Logo, siga-os abaixo: 1. Criar o diretrio do qmail, onde todos os programas e configuraes do mesmo sero armazenados: # mkdir /var/qmail obs.: possvel escolher outro diretrio, para isso, edite o arquivo chamado "conf-qmail" que encontra-se no diretrio dos arquivos de instalao do qmail e, altere para o diretrio desejado. Contudo, no aconselho a alterao deste diretrio, pois interessante manter o padro de configurao, entretanto, deixo isso a sua escolha. 2. Criao dos usurios e grupos utilizados pelo qmail # 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
http://www.geleira.org 2
# useradd -g qmail -d /var/qmail qmailr # useradd -g qmail -d /var/qmail qmails obs.: Para a criao de usurios e grupos para outros sistemas como FreeBSD, BSDI e AIX, favor ler o arquivo "INSTALL.ids"
3.3 - Compilao
No diretrio dos arquivos de instalao do qmail execute: # cd /usr/src/svremail/qmail-x.xx/ # make setup check Com a execuo deste arquivos, ser compilado o programa e criado dos arquivos/diretrios para execuo do qmail, dentro de /var/qmail. Esta parte pode demorar um pouco, v tomar um cafezinho, d tempo! :)
3.4 - Instalando
Nesta fase, ser feita a instalao de algumas configuraes. Execute: # ./config Este comando responsvel por descobrir o nome do host (no caso, o nome do nosso servidor de e-mails) no servidor DNS. Alm de procurar pelo endereo IP local que decide quais hosts vo aceitar mensagens. Entretanto, caso queira, voc mesmo pode especificar o nome de sua mquina, execute o comando: # ./config-fast host.dominio.com.br ex.: ./config-fast email.servidorqmail.com.br Alterando "host.dominio.com.br" pelo nome d mquina escolhido para o servidor de e-mail's. Lembrando que, esse nome deve ser vlido, ou seja, um FQDN do sistema. Isso coloca o nome "host.dominio.com.br" no arquivo "/var/qmail/control/me" O resultado na execuo destes comandos algo como: Your fully qualified host name is email.servidorqmail.com.br. Putting email.servidorqmail.com.br into control/me... Putting servidorqmail.com.br into control/defaultdomain... Putting servidorqmail.com.br into control/plusdomain... Putting email.servidorqmail.com.br into control/locals... Putting email.servidorqmail.com.br into control/rcpthosts... Now qmail will refuse to accept SMTP messages except to email.servidorqmail.com.br. Make sure to change rcpthosts if you add hosts to locals or virtualdomains! Feito isto, temos os seguintes arquivos com seus respectivos contedos:
http://www.geleira.org
/var/qmail/control/me contedo: email.servidorqmail.com.br descrio: o nome de seu host, ou seja, sua mquina. /var/qmail/control/defaultdomain contedo: servidorqmail.com.br descrio: o domnio de seu host. /var/qmail/control/plusdomain contedo: org descrio: extenso do domnio. /var/qmail/control/locals contedo: email.servidorqmail.com.br descrio: domnios em que as mensagens so enviadas localmente. /var/qmail/control/rcpthosts contedo: email.servidorqmail.com.br descrio: domnios que sero permitidos (relay) o recebimento de e-mail's.
todas as mensagens direcionadas para um usurio. Normalmente, localizado no diretrio "/var/spool/mail". Ver INSTALL.vsm - mbox (Mailbox): mais comum, funciona com a maioria dos MTA's. A localizao das mensagens difere um pouco do mbox tradicional, as mensagens ficam armazenadas no diretrio HOME dos usurios. Ver INSTALL.mbox - maildir: pouco suporte pelos MTA's existentes, contudo, funciona com o Outlook e o Netscape Menssager, kmail, etc. Alm disso, muito flexvel, possu uma tima segurana e organizao das mensagens, alm de funcionar perfeitamente sobre o NFS. Maior compatibilidade com o qmail e possu timas ferramentas para seu suporte. Ver INSTALL.maildir
desabilitar o sendmail e criar uma compatibilidade com o mesmo. Para tal, prossiga da seguinte forma: 1. Desabilitar o script de inicializao: Em seus sistema, normalmente, existe um arquivo de inicializao do sendmail. Para alguns sistemas Linux, edite o arquivo "sendmail", como segue: # vi /etc/rc.d/init.d/sendmail Procure pela linha, cujo formato seja parecido com: "sendmail -bd -q15m" e, coloque um comentrio na mesma. Existem outras formas de desabilitar o sendmail na inicilizao, como, por exemplo, o programa "ntsysv", encontrado na maioria dos sistemas procedentes do Redhat. 2. Mate os processos do sendmail: Caso o Sendmail esteja sendo executado em sua mquina, necessrio matar seu daemon e seus filhos, caso exista deve-se proceder: # kill -9 nmero_do_processos_do_sendmail ou # killall -TERM sendmail Ou, caso seja um sistema do tipo Redhat, faa: # /etc/rc.d/init.d/sendmail stop 3. Limpando o mqueue Ao parar o sendmail, ainda pode existir algumas mensagens que no foram enviadas na fila de mensagens (mqueue), logo, podemos forar um flush nas messagens que ainda restaram: # sendmail -q Repita isso, at que a fila esteja vazia. 4. Protegendo o sistema do Sendmail Para que no seja possvel que nenhum usurio ainda utilize o sendmail, iremos retirar o bit setuid do arquivo binrio do sendmail, prevenindo que os usurios locais no consigam privilgios extras atravs do sendmail. # chmod 0 /usr/lib/sendmail # chmod 0 /usr/sbin/sendmail # chmod 0 /usr/lib/sendmail.mx
http://www.geleira.org 6
5. Fazendo o backup do sendmail Uma atitude de qualquer bom administrador fazer o backup dos arquivos que julgarem importantes. Assim, iremos proceder com o backup dos arquivos para execuo do sendmail. # mv /usr/lib/sendmail /usr/lib/sendmail.bak # mv /usr/sbin/sendmail /usr/sbin/sendmail.bak 6. Compatibilidade com o Sendmail Muitos programas do sistema esto acostumas a utilizar o sendmail para enviarem suas mensagens. Pensando nisso, o qmail possibilita a compatibilidade com estes programas. Sendo assim, basta criar alguns links simblicos: # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail 7. Caso no tenha o Sendmail (Opcional) Este passo deve ser feito para os que no possuam o Sendmail instalado em seus sistema. Se voc j procedeu com os passos acima, no deve efetuar este procedimento. # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail
# grep "status" /var/log/maillog May 5 18:58:29 email qmail: 989103509.011508 status: local 0/10 remote 0/20 o mesmo processo pode ser feito para verificar se no estiver rodando: # grep "cannot start" /var/log/maillog Antes dos testes, para um usurio qualquer do sistema, precisamos criar seu Maildir (que ser explicado detalhadamente no tem 4), para isso, em nosso exemplo, iremos criar o Maildir para o usurio "fabio", logo, basta executar: # su fabio # /var/qmail/bin/maildirmake Maildir # echo "./Maildir/" > .qmail Feito isso, partimos para os testes de envio de mensagens: 1. Enviando uma menssagem para voc mesmo: # echo to: usurio | /var/qmail/bin/qmail-inject obs.: substitua "usurio" por um usurio vlido cadastrado no sistema. Ex.: # echo to: geleira | /var/qmail/bin/qmail-inject Tendo como resultado, algo como: May 5 20:10:28 email qmail: 989107828.724226 new msg 83958 May 5 20:10:28 email qmail: 989107828.724402 info msg 83958: bytes 217 from <root@email.servidorqmail.com.br> qp 1934 uid 0 May 5 20:10:28 email qmail: 989107828.728849 starting delivery 8: msg 83958 to local fabio@email.servidorqmail.com.br May 5 20:10:28 email qmail: 989107828.728975 status: local 1/10 remote 0/20 May 5 20:10:28 email qmail: 989107828.804831 delivery 8: success: did_1+0+0/ May 5 20:10:28 email qmail: 989107828.804981 status: local 0/10 remote 0/20 May 5 20:10:28 email qmail: 989107828.805048 end msg 83958 obs.: 83958 um nmero de inode, 217 o nmero do processo (PID). Em seu teste, certamente, os nmeros sero diferentes. 2. Enviando uma menssagem para um usurio inexistente: # echo to: cerebro | /var/qmail/bin/qmail-inject Tendo como resultado, algo como: May 6 09:29:05 email qmail: 989155745.486967 new msg 84075 May 6 09:29:05 email qmail: 989155745.487131 info msg 84075: bytes 219 from <root@email.servidorqmail.com.br> qp 1643 uid 0 May 6 09:29:05 email qmail: 989155745.490428 starting delivery 1: msg 84075 to local cerebro@email.servidorqmail.com.br May 6 09:29:05 email qmail: 989155745.490532 status: local 1/10 remote 0/20 May 6 09:29:05 email qmail: 989155745.571794 delivery 1: failure:
http://www.geleira.org 8
Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/ May 6 09:29:05 email qmail: 989155745.575570 status: local 0/10 remote 0/20 May 6 09:29:05 email qmail: 989155745.581507 bounce msg 84075 qp 1646 May 6 09:29:05 email qmail: 989155745.581644 end msg 84075 May 6 09:29:05 email qmail: 989155745.623875 new msg 84593 May 6 09:29:05 email qmail: 989155745.624000 info msg 84593: bytes 779 from <> qp 1646 uid 406 May 6 09:29:05 email qmail: 989155745.626564 starting delivery 2: msg 84593 to local root@email.servidorqmail.com.br May 6 09:29:05 email qmail: 989155745.626661 status: local 1/10 remote 0/20 May 6 09:29:05 email qmail: 989155745.683693 delivery 2: success: did_1+0+0/ May 6 09:29:05 email qmail: 989155745.683834 status: local 0/10 remote 0/20 May 6 09:29:05 email qmail: 989155745.683901 end msg 84593 3. Usando o modo Sendmail Para verificar a compatibilidade entre o sendmail e o qmail, podemos enviar uma menssagem como se estivesse utilizando o sendmail. # echo "Contedo da menssagem." | mail -s "Qualquer Assunto" fabio Como resultado: May 6 09:44:38 email qmail: 989156678.953943 new msg 84077 May 6 09:44:38 email qmail: 989156678.954109 info msg 84077: bytes 267 from <root@email.servidorqmail.com.br> qp 1780 uid 0 May 6 09:44:38 email qmail: 989156678.957417 starting delivery 6: msg 84077 to local fabio@email.servidorqmail.com.br May 6 09:44:38 email qmail: 989156678.957520 status: local 1/10 remote 0/20 May 6 09:44:38 email qmail: 989156678.966617 delivery 6: success: did_1+0+0/ May 6 09:44:38 email qmail: 989156678.966755 status: local 0/10 remote 0/20 May 6 09:44:38 email qmail: 989156678.966823 end msg 84077 Lembrando que, neste caso, o nome "fabio" um usurio vlido no sistema.
Obs_2.: Para utilizar o pop3 necessrio instalar o "checkpassword", que ser mostrado no prximo tpico. Obs_3.: A utilizao do pop3 e smtp do qmail via inetd deve ser feita em servidores com baixo fluxo de mensagens, para uma maior carga, utilize o modo tcp-server apresentado no tpico 3.9.2 .
http://www.geleira.org
10
# /usr/local/bin/tcpserver 0 110 /var/qmail/bin/qmail-popup email.servidorqmail.com.br /bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>/dev/null& Obs_1: Cada comando acima executado em uma nica linha. Obs_2: Altere no comando de POP3 o domnio "email.servidorqmail.com.br" para o host+domnio de sua mquina servidora de emails. 3.9.2.4 - Testando o SMTP e POP3 SMTP: # telnet 0 25 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. 220 email.servidorqmail.com.br ESMTP helo <- voc escreve 250 email.servidorqmail.com.br <- retorno mail from: <- voc escreve (remetente da menssagem) 250 ok <- retorno rcpt to: fabio@email.servidorqmail.com.br <- voc escreve (destinatrio da menssagem) 250 ok <- retorno data <- voc escreve (diz que o contedo vir logo aps) 354 go ahead <- retorno Subject: Assunto_Qualquer <- voc escreve (assunto da menssagem) Aqui o contedo da menssagem, <- voc escreve (corpo da menssagem) voc pode escrever o que quiser e, ao terminar, basta colocar uma linha com um ponto representado o fim da menssagem, como feito na linha de baixo: . <- voc escreve (caracter de escape) 250 ok 989162824 qp 305 <- retorno quit <- voc escreve (sair da porta 25, SMTP) 221 email.servidorqmail.com.br <- retorno Connection closed by foreign host. <- retorno No log (/var/spool/maillog) temos um resultado parecido com: May 6 11:36:18 email qmail: 989163378.270885 new msg 84084 May 6 11:36:18 email qmail: 989163378.271057 info msg 84084: bytes 230 from <> qp 3076 uid 401 May 6 11:36:18 email qmail: 989163378.273961 starting delivery 14: msg 84084 to fabio@email.servidorqmail.com.br May 6 11:36:18 email qmail: 989163378.274062 status: local 1/10 remote 0/20 May 6 11:36:18 email qmail: 989163378.275383 delivery 14: success: May 6 11:36:18 email qmail: 989163378.275517 status: local 0/10 remote 0/20 May 6 11:36:18 email qmail: 989163378.275583 end msg 84084 Pode verificar se a menssagem foi recebida com sucesso olhando, em nosso exemplo, no diretrio: # ls -la /home/fabio/Maildir/new/
http://www.geleira.org
11
total 12 drwx------ 2 fabio fabio 4096 Mai 6 12:20 ./ drwx------ 5 fabio fabio 4096 Mai 5 18:55 ../ -rw------- 1 fabio fabio 254 Mai 6 12:20 989166033.3148.email.servidorqmail.com.br Vale ressaltar que, par enviar uma menssagem para um domnio que no seja o seu necessrio adicion-lo no arquivo "/var/control/rcpthosts". Em nosso exemplo, o nosso domnio email.servidorqmail.com.br, caso queiramos enviar um e-mail para, por exemplo, suporte@meuprovedor.com.br, devemos, ento, adicion-lo no arquivo rcpthosts d seguinte forma: # vi /var/control/rcpthosts" e, colocar o seguinte contedo: email.servidorqmail.com.br <- j tinha meuprovedor.com.br <- foi inserido
Existem outras formas de controlar o relay, como por meio de regras para domnios ou IP's. Contudo, isso assunto para o documento de administrao do qmail. POP3: # telnet 0 110 Trying 0.0.0.0... Connected to 0. Escape character is '^]'. +OK <3090.989164321@email.servidorqmail.com.br> user fabio +OK pass fabio1234 +OK stat +OK 7 3059 list +OK 1 345 2 345 3 345 4 345 5 345 6 345 7 989 . top 1 1 +OK Return-Path: <root@email.servidorqmail.com.br> Delivered-To: fabio@email.servidorqmail.com.br Received: (qmail 1804 invoked by uid 0); 6 May 2001 13:49:22 -0000 Date: 6 May 2001 13:49:22 -0000 Message-ID: <20010506134922.1803.qmail@email.servidorqmail.com.br> From: root@email.servidorqmail.com.br
http://www.geleira.org
12
To: fabio@email.servidorqmail.com.br Subject: Qualquer Assunto Contedo da menssagem. . dele 1 +OK list +OK 2 345 3 345 4 345 5 345 6 345 7 989 . top 2 1 +OK Return-Path: <root@email.servidorqmail.com.br> Delivered-To: fabio@email.servidorqmail.com.br Received: (qmail 1814 invoked by uid 0); 6 May 2001 13:50:09 -0000 Date: 6 May 2001 13:50:09 -0000 Message-ID: <20010506135009.1813.qmail@email.servidorqmail.com.br> From: root@email.servidorqmail.com.br To: fabio@email.servidorqmail.com.br Subject: Teste de Envio Menssagem de teste utilizando o qmail como forma de envio. . dele 2 +OK list +OK 3 345 4 345 5 345 6 345 7 989 . dele 3 +OK dele 4 +OK dele 5 +OK dele 6 +OK dele 7 +OK list +OK . quit
http://www.geleira.org 13
Feito isso, alm de testar o funcionamento do recebimento dos e-mail's, aprendemos alguns comando que facilitam a administrao das mensagens para as horas que precisar e no tiver um leitor de e-mail's grficos. Alerto as pessoas que utilizam o sendmail que os comando da pop3 para o qmail diferenciam um pouco. Logo, segue alguns comandos e suas respectivas aes na tabela abaixo:
Comandos user usurio pass senha stat list top x y dele n quit
Descrio nome do usurio. senha do usurio. lista o nmero de mensagens e tamanho totais da conta pop. lista todas as mensagens e tamanho da cada uma. mostra a menssagem nmero x com y linhas aps o cabealho. apaga a menssagem de nmero n. sair da porta 110, ou seja, finalizar.
Finalmente, aps efetivado os testes no SMTP e no POP3 e, verificado o funcionamento correto dos mesmos. Podemos, ento, criar um script de inicializao, que possa inicializar o qmail (rc), o SMTP (qmail-smtpd) e o POP3 (qmail-pop3d), seguimos, ento, para o prximo item.
http://www.geleira.org
14
# vi /etc/rc.d/init.d/qmail --- contedo qmail --#!/bin/sh # Biblioteca de funes # Neste caso, ir apresentar OK, caso o comando # seja executado com sucesso. . /etc/rc.d/init.d/functions case "$1" in start) action "Iniciando o qmail: " /usr/local/bin/qmail-start ;; stop) action "Parando o qmail: " /usr/local/bin/qmail-stop ;; restart) action "Parando o qmail: " /usr/local/bin/qmail-stop action "Iniciando o qmail: " /usr/local/bin/qmail-start ;; *) echo "Utilizar: $0 {start|stop|restart}" exit 1 esac exit 0 ------ fim qmail ----# chmod 755 /etc/rc.d/init.d/qmail Feito o script, pode-se colocar e chamar em um script que seja executado na inicializao do sistema. Ex.: # cp qmail-start /etc/rc.d/init.d/ # vi /etc/rc.d/rc.local Colocar no final do arquivo rc.local: /etc/rc.d/init.d/qmail start Assim, sempre que for iniciado seu sistema, o qmail ser iniciado em conjunto.
# cd ~fabio # /var/qmail/bin/maildirmake Maildir # chown -R fabio.users Maildir Aps, crie um arquivo chamado ".qmail", como segue: # cd ~fabio # vi .qmail e, insira o seguinte contedo: --- incio .qmail --./Maildir/ --- fim .qmail --Feito estes passos, ao enviar um e-mail para fabio@email.servidorqmail.com.br ele ser armazenado no "~fabio/Maildir" e, com isso, basta puxar os e-mail's via POP3 com o nome de seu usurio e senha do mesmo. Assim, pode-se criar qualquer usurio e seguir os procedimentos acima para receber os e-mail's do domnio email.servidorqmail.com.br, pois este o domnio do host e, onde o qmail diretamente responsvel e reconhecido. Contudo, caso queira que este servidor de e-mail seja responsvel por outros domnios, ento, deve-se alterar o MX do servidor DNS responsvel pelo domnio para a mquina onde encontra-se nosso servidor qmail e, fazer as configuraes para estes domnios virtuais, como ser explicado posteriormente.
5. Domnio Virtual
Para configurar os e-mail's deve-se entender o que um domnio virtual. Ou seja, o servidor onde est instalado o qmail possu um domnio prprio ou, mais especificamente, quando foi instalado o servidor ele pegou o domnio da mquina via DNS ou inserid pelo usurio ao configur-lo e, colocou em suas configuraes (/var/qmail/control/*). Com isso, possvel entender que o qmail responde, especificamente, por este domnio e, caso queira que ele responda por outro domnio que no de sua autoridade, entende-se que o mesmo um domnio virtual e, para tal, deve-se inclu-lo no arquivo "/var/qmail/control/virtualdomains", que ser mostrado logo abaixo. Antes de configurar os domnios no Qmail, interessante que seja apontado o MX do domnio em questo no servidor DNS responsvel pelo mesmo para o servidor onde est configurado o Qmail. Se est configurao no for feita, ao enviar um e-mail para o domnio virtual, como mostrado mais abaixo, ser visualizado a seguinte menssagem de erro no maillog: Apr 3 10:29:51 p1 qmail: 986304591.013117 delivery 56: failure: Sorry._Although_I'm_listed_as_a_best-preference_MX_or_A_for_that_host, /it_isn't_in_my_control/locals_file,_so_I_don't_treat_it_as_local._(#5.4.6)/ Caso necesside de maiores informaes a respeito da configurao de um servidor DNS, visite nosso artigo: Servidor DNS. Com as configuraes do MX feitas, seguimos as explicaes:
http://www.geleira.org
16
Ao criar um domnio virtual, deve-se adicion-lo no arquivo "/var/qmail/control/virtualdomains", no seguinte formato: dominio_virtual:alias-identificador ex.: geleira.org:alias-geleira obs.: com a colocao da palavra "alias" depois dos dois pontos(:), ir indicar que todas as configuraes para esse servidor virtual devero ser realizadas no diretrio "/var/qmail/alias". Deve-se adicionar este domnio no arquivo: /var/qmail/control/rcpthosts, com isso, ser habilitado o envio de e-mail's para este domnio. /var/qmail/alias/.qmail-geleira-xxx -> xxx indica o nome antes do @ referente ao seu domnio. Ex.: /var/qmail/alias/.qmail-geleira-fabio -> significa: fabio@geleira.org, e tem como contedo, como exemplo: --- incio .qmail-geleira-fabio --&fabio --- fim .qmail-geleira-fabio --Neste caso, quando for enviar um e-mail para fabio@geleira.org, verificado pelo arquivo ".qmail-geleira-fabio" cujo o recipiente ser um usurio do sistema, a qual, seu diretrio home "/home/geleira" definido pelo "/etc/passwd". Logo, ser acessado /home/fabio/.qmail que possu o contedo: --- incio .qmail --/home/fabio/Maildir/ --- fim .qmail --ou, com o mesmo sentido --- incio .qmail --./Maildir/ --- fim .qmail --Dizendo que as mensagens para esse usurio de sistema devem ser guardados em seu Maildir. Recebido o e-mail, basta o usurio do sistema "fabio" receber seus e-mail's, normalmente, por um programa de correio eletrnico qualquer.
6. Arquivos .qmail
Terminada as explicaes referentes ao funcionamento dos e-mail's para o domnio do host e para os domnios virtuais, segue algumas informaes referentes ao formatos aceitos pelo arquivo ".qmail_qualquer_coisa". Os arquivos ".qmail-xxx" possuem o seguinte padro em seu contedo:
http://www.geleira.org
17
&user@example.com user@example.com &user Lembrando que, a forma logo abaixo no aceita: &<user@exemplo.com.br> & user@exemplo.com.br &Usurio Fbio <user@exemplo.com.br> Caso queira que todos os e-mails para um determinado domnio seja enviado para um e-mail ou conta de sistema especfica, deve-se criar o arquivo ".qmail-default". Possuindo o contedo, como por exemplo: Uma conta do sistema: --- incio .qmail-default --&fabio --- fim .qmail-default --ou Um redirecionamento de e-mail: --- incio .qmail-default --&fabio@meuprovedor.com.br --- fim .qmail-default --ou Usurio + redirecionamento: --- incio .qmail-default --&fabio@meuprovedor.com.br &fabio --- fim .qmail-default --Mesmo com este procedimentos, voc deve estar se perguntando: Como fao para criar um e-mail com ponto? Como, por exemplo, fabio.bombonato@geleira.org, ento, deve-se criar um arquivo em seu home chamado ".qmail-geleira_org-fabio:bombonato", para este caso. Ou seja, utiliza-se dois pontos (:) para criar um e-mail com ponto. Os arquivos ".qmail" possui uma lista de instrues de envio, a qual, definida por alguns caracteres colocados no comeo da linha que determina a ao a ser tomada. Segue abaixo a tabela dos caracteres:
Caracter # | / ou . / ou .
Tipo de Envio nada (comentrio) programa mbox (se o ltimo diretrio do mbox caracter no uma " / " ) maildir (se o ltimo diretrio do mbox caracter no uma " / ")
Ao ignorado o programa executado por um shell diretrio do mbox (incluindo o / ou .) diretrio do maildir (incluindo o / ou .) endereo para onde ser redirecionado a
http://www.geleira.org
18
menssagem, podendo ser uma conta do sistema ou um endereo eletrnico. endereo para onde ser redirecionado a menssagem (incluindo o primeiro caracter)
Alguma vezes, voc pode desejar que quando uma menssagem antes de ser direcionada a uma conta ou para outro e-mail, execute um programa, deve-se ento, editar o arquivo ".qmail-xxx" correspondente ao e-mail em questo e, em seu contedo, deve-se utilizar o formato: |preline programa ou seja, deve comear com uma barra vertical e, depois, o comando do programa a ser executado. |preline /usr/sbin/autoresposta -s "Assunto da Menssagem" -f "/home/fabio/respotas.txt"
9. Concluso
Visto que o Sendmail utilizado, aproximadamente, em 70 % dos servidores de correio eletrnico no mundo. O qmail um dos grandes programas que tm a possibilidade de concorrer de igual para igual, ou diferente, de igual para melhor. Visto que o Sendmail j conhecido por prover diversas falhas/bugs em sua implementao. O qmail pode ser utilizado para substitu-lo com grandes ganhos, pois em seu projeto, a segurana e flexibilidade esto em primeiro lugar. Lembro que, ele no um software com propsito de substituir o Sendmail, mas, uma tima opo caso queira montar um servidor de e-mail's.
Alteraes
http://www.geleira.org
19
Apndice Segue abaixo uma tabela, contendo os valores default e os significados dos arquivos de configurao que podem ser utilizados pelo "qmail-control", localizados no diretrio "/var/qmail/control", apresentado pelo documento Life with qmail: Control badmailfrom bouncefrom bouncehost concurrencylocal Padro vazio MAILERDAEMON me 10 Utilizado Significado por qmail-smtpd lista negra de endereos (From) qmail-send qmail-send qmail-send username de retorno de envios hostname de retorno de envios
mximo de envios locais, simultaneamente qmail-send mximo de envios remotos, simultaneamente qmail-inject nome padro do domnio qmail-inject nome padro do host qmail-smtpd nm. mximo de bytes para 1 mens. (0=sem limite) qmail-send nome do host com duplo retorno no envio qmail-send usurio que recebe mens. de retorno duplicadas qmail-send domnio padro para usurios sem o "@" qmailnome do host utilizado no remote comando SMTP HELO qmail-inject nome do host para os ID's das menssagens. qmail-smtpd nome substitudo para um endereo IP local qmail-send domnios que ns enviamos localmente. various padro para muitos arquivos de controle qmail-smtpd base de dados secundria para o rcpthosts qmail-send domnios que utilizam o estilo de relay "%" 20 qmail-inject domnios substitudos pelo sinal "+" qmail-qmqpc endereo IP para servidores QMQP.
doublebouncehost me doublebounceto envnoathost helohost idhost localiphost locals me morercpthosts percenthack postmaster me me me me me FQDN of system vazio vazio
http://www.geleira.org me plusdomain
qmqpservers
vazio
segundos que as mens. podem aguardar no queue domnios que aceitamos qmail-smtpd menssagens. qmail-smtpd recepo menssagem SMTP qmailrotas artificias de SMTP remote qmailqto tempo, em seg., esperado na remote conexo SMTP qmailqto tempo, em seg., esperado por remote um serv. remoto qto tempo, em seg., esperado pelo qmail-smtpd cliente SMTP qmail-send domnios e usurios virtuais qmail-send
http://www.geleira.org
21