Português do Brasil English
Devin no Facebook  Devin no Twitter  RSS do Site 
Servidores    

Montando um servidor de E-Mail com o qmail


Comentários  46
Visualizações  
135,068

Como montar um servidor de e-mail utilizando o qmail, um robusto e seguro servidor de e-mail. Contém instruções e passo-a-passos para instalar um sistema completo de e-mail, com filtros, anti-virus, servidor IMAP e POP3, contas gerenciáveis via MySQL, entre outros.

Uma Introdução

O qmail é um poderoso servidor de e-mail, leve e muito rápido, que foi desenvolvido com o intuito de ser totalmente seguro. Desde sua última versão estável (1.03), o qmail nunca teve nenhum bug comprometedor conhecido. Isso nos faz pensar que ele é muito bom para o uso em produção, inclusive porque além de ele ser muito estável, é flexível o bastante para aguentar um tráfego de e-mails muito grande.

O site do qmail é:

http://www.qmail.org

Vamos aprender aqui como montar um servidor de e-mail usando o qmail junto com o vpopmail. O qmail vai trabalhar com o manuseio dos e-mails, enquanto o vpopmail irá cuidar das contas dos usuários, senhas, informações, quotas, entre outros. Neste tutorial irei explicar também como utilizar o vpopmail para armazenar as informações de contas em um servidor de banco de dados, que no nosso caso será o MySQL.

Instalando e configurando o QMail

Neste tutorial, instalaremos o qmail a partir do seu código-fonte. Existem pacotes já prontos em RPM, DEB, etc, mas para um completo entendimento e compatibilidade entre todos os sistemas, usaremos mesmo o código-fonte. A versão que estamos usando é a 1.03, e pode ser obtida no endereço:

http://www.qmail.org/qmail-1.03.tar.gz

Patches

Precisaremos também aplicar alguns patches para o QMail antes de instalá-lo no sistema. Você pode instalar o QMail puro, mas eu recomendo estes patches para um aumento de desempenho e recursos. A seguir temos os patchs recomendados junto com suas descrições:

  • big-concurrency (http://www.qmail.org/big-concurrency.patch): Este patch faz com que o qmail possa processar mais de 255 mensagens de uma vez no queue. Assim se a máquina for boa e com grande volume de mensagens simultâneas, o servidor poderá processá-las mais rapidamente.
  • qmailqueue (http://www.qmail.org/qmailqueue-patch): Com este patch, o qmail antes de processar qualquer mensagem em seu queue, verifica a variável de ambiente QMAILQUEUE em busca do programa de queue. Com isso pode-se encaminhar as mensagens para um script (qmail-scanner por exemplo) que filtrará estas mensagens. Isso pode ser usado para repassar a mensagem para filtros de extensões, palavras e anti-virus.
  • tarpit (http://www.palomine.net/qmail/tarpit.patch): O Tarpit é uma técnica anti-spam que adiciona um pequeno tempo de espera (sleep) quando o envio de e-mails passa de um certo limite. Por exemplo, se um spammer resolver mandar 1000 mensagens em uma conexão só, o qmail com este patch verificará esta ação e a cada mensagem que o spammer mandar, você pode configurar quanto tempo ele terá que esperar. Então se configurado pra 50 mensagens, quando o spammer for mandar a mensagem 51, esperara por exemplo, 5 minutos. E depois pra mensagem 52, mais 5 minutos, e por aí vai. Tudo isso configurável.

Existem outros patches interessantes, que você pode querer usar em seu servidor de e-mail. Abaixo estão as descrições de alguns que na minha opinião são interessantes. Como estou descrevendo-os apenas para o leitor conhecer mais recursos, não os cobrirei neste tutorial. Cobrirei apenas o três patches anteriores.

Agora vamos primeiro descompactar o qmail e instalar estes patches. Usaremos neste tutorial diretórios exemplo. Adapte como quiser.

mkdir /root/build
cd /root/build
tar zpvfx /root/download/qmail-1.03.tar.gz
patch -p0 < /root/download/big-concurrency.patch
patch -p0 < /root/download/qmailqueue.patch
cd qmail-1.03
patch -p0 < /root/download/tarpit.patch

Pronto. Agora o qmail já está descompactado e aplicamos os três patches como queríamos. Se você quiser aplicar algum outro patch, esta é a hora. Se não quiser, seguimos em frente.

Compilando e instalando o qmail

Hora de se preparar para compilar o qmail e instalá-lo. Por padrão, o qmail é instalado no diretório “/var/qmail”. Você pode especificar em que diretório ele será instalado editando o arquivo “conf-qmail” dentro do diretório em que você descompactou o código-fonte do qmail. E em falar nisso, temos aqui alguns arquivos para configurar antes de compilar o programa. Aqui vai uma descrição deles:

  • conf-users e conf-groups: Aqui estão os arquivos que indicam que usuários serão usados para rodar o qmail. É bom deixar o padrão mesmo, criaremos estes usuários e grupos logo a seguir.
  • conf-qmail: Como dito anteriormente, o diretório onde o qmail irá ser instalado e estará funcional. Recomendo deixar este valor como “/var/qmail” mesmo, a não ser que você queira instalar em outro lugar (outra partição de disco por exemplo). Este tutorial irá usar o valor “/var/qmail”, se por acaso você mudou esta configuração, substitua o “/var/qmail” pelo diretório que você configurou durante os passos deste tutorial. Uma outra boa idéia é mudar este valor para algo como /var/qmail-algumacoisa para indetificar esta instalação, e depois fazer um link simbólico como /var/qmail para manter a compatibilidade. Assim você pode compilar vários qmails diferentes, e apenas mudar o link simbólico para alterar a instalação do qmail que você fez.
  • conf-spawn: Quantas mensagens poderão ser processadas de uma vez pelo qmail. Com o patch que aplicamos, o “big-concurrency”, pode-se colocar o valor maior que 255. O próprio patch modificou este valor para 1000, e até que é um número bom. Mas como não queremos ter que recompilar o kernel para suportar mais de 509 “file descriptors”, colocaremos 500. Se seu servidor não tiver tantas mensagens assim, pode diminuir (deixar 240). Se tiver mensagem até demais (e o computador for bom também), pode aumentar.
  • conf-split: Quantos subdiretórios o diretório de queue do qmail terá. 23 é um bom número, mas se quiser pode aumentar um pouquinho.

Depois de ajustados os arquivos ao seu gosto, é hora de criar os usuários do qmail. Como criar estes usuários está descrito no arquivo “INSTALL.ids”, mas colocarei aqui também para fins didáticos:

mkdir /var/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
useradd -g qmail -d /var/qmail qmailr
useradd -g qmail -d /var/qmail qmails

Agora crie um link simbólico para refletir as configurações do qmail no diretório /etc/qmail (fica mais bonito). Para fazer isso execute o comando:

mkdir /etc/qmail
ln -s /etc/qmail /var/qmail/control

Feito isso, agora iremos compilar o qmail:

make setup check

Lembre-se de que para compilar os programas no Linux, você deve ter os pacotes de desenvolvimento de sua distribuição. Então você terá que ter eles instalados no sistema, ou a compilação nunca será feita. Em algumas distribuições mais novas (como por exemplo, o Red Hat 9.0), durante a compilação ocorre um erro com o “errno” indefinido, se isso estiver ocorrendo com você, pegue os patches para os programas usados neste tutorial no seguinte endereço:

ftp://moni.csi.hu/pub/glibc-2.3.1/

E aplique os patches como os anteriores antes de compilar. Os arquivos que você precisará são os que tem “programa.errno.patch” como nome de arquivo.

Depois de compilado e instalado no diretório /var/qmail, é hora de configurar. O qmail contém um script que faz uma configuração rápida. Certifique-se que sua máquina tenha um nome válido no DNS, e digite:

./config

Caso você não tenha um DNS ainda, você pode ir configurando o qmail para ser usado. Tenha em mãos o hostname e domínio de sua máquina e digite:

./config-fast nomedamaquina.dominio

Substitua o nomedamaquina e dominio pelo hostname da sua máquina. Lembre-se que se isso não for válido no DNS, você precisará ter acesso ao DNS e configurar este hostname para que o qmail funcione corretamente.

Instalando programas adicionais

Agora é hora de instalar alguns programas adicionais que trabalharão junto ao qmail. Estes são: ucspi e daemontools.

  • ucspi-tcp (http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz): O ucspi-tcp é um programa feito pelo criador do qmail que substitui o inetd. Ele é usado para servir de ponte entre o cliente e o servidor.
  • daemontools (http://cr.yp.to/daemontools/daemontools-0.76.tar.gz): O daemontools é um pacote com uma série de scripts para lidar com servidores (daemons). Ele é usado para o controle dos programas do qmail.

Vamos instalar os dois programas:

cd /root/build
tar zpvfx /root/download/ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
make
make setup check

mkdir /package
chmod 1755 /package
cd /package
tar zpvfx /root/download/daemontools-0.76.tar.gz
cd admin/daemontools-0.76
package/install

Pronto. Os dois programas foram instalados com êxito.

Configurando a inicialização do qmail

Agora vamos ter que criar uma série de scripts e procedimentos para a inicialização do qmail. Crie o arquivo /var/qmail/rc com o seguinte conteúdo:

#!/bin/sh

# Using stdout for logging
# Using control/defaultdelivery from qmail-local to deliver messages by default

exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start "`cat /var/qmail/control/defaultdelivery`"

Depois digite os comandos:

chmod 755 /var/qmail/rc
mkdir /var/log/qmail

Agora precisaremos configurar qual o tipo de caixa de mensagem teremos no nosso servidor. Usaremos o Maildir, que é o formato preferido para se trabalhar com o qmail. O Maildir faz com que as mensagens sejam colocadas separadamente em diretórios, diferentemente do mbox, que é o formato padrão do UNIX. No mbox todas as mensagens ficam em um arquivo só, e quando este arquivo está muito grande, pode-se perder um pouco de desempenho. Para configurar o tipo de caixa de mensagem, é só colocar o tipo no arquivo “/var/qmail/control/defaultdelivery”. Com o comando abaixo, iremos configurar com Maildir:

echo "./Maildir/" > /var/qmail/control/defaultdelivery

Crie então o arquivo /var/qmail/bin/qmailctl com o seguinte conteúdo:

#!/bin/sh

# description: the qmail MTA

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-send ; then
      svc -u /service/qmail-send /service/qmail-send/log
    else
      echo "qmail-send supervise not running"
    fi
    if svok /service/qmail-smtpd ; then
      svc -u /service/qmail-smtpd /service/qmail-smtpd/log
    else
      echo "qmail-smtpd supervise not running"
    fi
    if [ -d /var/lock/subsys ]; then
      touch /var/lock/subsys/qmail
    fi
    ;;
  stop)
    echo "Stopping qmail..."
    echo "  qmail-smtpd"
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "  qmail-send"
    svc -d /service/qmail-send /service/qmail-send/log
    if [ -f /var/lock/subsys/qmail ]; then
      rm /var/lock/subsys/qmail
    fi
    ;;
  stat)
    svstat /service/qmail-send
    svstat /service/qmail-send/log
    svstat /service/qmail-smtpd
    svstat /service/qmail-smtpd/log
    qmail-qstat
    ;;
  doqueue|alrm|flush)
    echo "Flushing timeout table and sending ALRM signal to qmail-send."
    /var/qmail/bin/qmail-tcpok
    svc -a /service/qmail-send
    ;;
  queue)
    qmail-qstat
    qmail-qread
    ;;
  reload|hup)
    echo "Sending HUP signal to qmail-send."
    svc -h /service/qmail-send
    ;;
  pause)
    echo "Pausing qmail-send"
    svc -p /service/qmail-send
    echo "Pausing qmail-smtpd"
    svc -p /service/qmail-smtpd
    ;;
  cont)
    echo "Continuing qmail-send"
    svc -c /service/qmail-send
    echo "Continuing qmail-smtpd"
    svc -c /service/qmail-smtpd
    ;;
  restart)
    echo "Restarting qmail:"
    echo "* Stopping qmail-smtpd."
    svc -d /service/qmail-smtpd /service/qmail-smtpd/log
    echo "* Sending qmail-send SIGTERM and restarting."
    svc -t /service/qmail-send /service/qmail-send/log
    echo "* Restarting qmail-smtpd."
    svc -u /service/qmail-smtpd /service/qmail-smtpd/log
    ;;
  cdb)
    tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
    chmod 644 /etc/tcp.smtp.cdb
    echo "Reloaded /etc/tcp.smtp."
    ;;
  help)
    cat <

Este script é o script de controle de inicialização do qmail. Com ele você poderá iniciar o qmail, parar, reiniciar, entre outros. Depois de criado esse arquivo com o conteúdo acima, utilize os comandos:

chmod 755 /var/qmail/bin/qmailctl
ln -s /var/qmail/bin/qmailctl /usr/sbin

Quando quiser colocar o qmail para ser rodado na inicialização do Linux, faça os ajustes necessários em sua distribuição para rodar o comando “/usr/sbin/qmailctl start”.

Agora iremos criar os scripts “supervise” do qmail:

mkdir -p /var/qmail/supervise/qmail-send/log
mkdir -p /var/qmail/supervise/qmail-smtpd/log

Preencha agora os conteúdos dos arquivos:

  • /var/qmail/supervise/qmail-send/run
#!/bin/sh
exec /var/qmail/rc
  • /var/qmail/supervise/qmail-send/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
  • /var/qmail/supervise/qmail-smtpd/run
#!/bin/sh

QMAILDUID=`id -u qmaild`
NOFILESGID=`id -g qmaild`
MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
LOCAL=`head -1 /var/qmail/control/me`

if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
    echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
    echo /var/qmail/supervise/qmail-smtpd/run
    exit 1
fi

if [ ! -f /var/qmail/control/rcpthosts ]; then
    echo "No /var/qmail/control/rcpthosts!"
    echo "Refusing to start SMTP listener because it'll create an open relay"
    exit 1
fi

exec /usr/local/bin/softlimit -m 50000000 \
    /usr/local/bin/tcpserver -H -v -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \
        -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp /var/qmail/bin/qmail-smtpd 2>&1
  • /var/qmail/supervise/qmail-smtpd/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail/smtpd

Execute os comandos:

echo 20 > /var/qmail/control/concurrencyincoming
chmod 644 /var/qmail/control/concurrencyincoming
chmod 755 /var/qmail/supervise/qmail-send/run
chmod 755 /var/qmail/supervise/qmail-send/log/run
chmod 755 /var/qmail/supervise/qmail-smtpd/run
chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
mkdir -p /var/log/qmail/smtpd
chown qmaill /var/log/qmail /var/log/qmail/smtpd
echo '127.:allow,RELAYCLIENT=""' >> /etc/tcp.smtp
ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service

Logo após feito isso, o qmail será iniciado pelo sistema e já estará funcionando.

Configurações adicionais para o qmail

Relay

Como configurações adicionais, veremos primeiro quem poderá usar seu servidor de e-mails para mandar e-mails pra fora. Isso se chama “relay”, e é muito importante, pois impede que os spammers usem seu servidor de e-mail para mandar spams para e-mails por aí afora. Edite o arquivo /etc/tcp.smtp, nele temos a seguinte linha:

127.:allow,RELAYCLIENT=""

Essa linha diz que o IP 127.x.x.x pode utilizar o relay no seu servidor SMTP. Adicione aqui os IPs e/ou faixas de IPs que poderão utilizar o seu servidor SMTP para enviar e-mails. Como por exemplo:

192.168.1.:allow,RELAYCLIENT=""
200.165.123.223:allow,RELAYCLIENT=""

E por aí vai. Depois salve o arquivo e utilize o seguinte comando para recarregar essa configuração:

qmailctl cdb

Tarpit

Quando fomos compilar o qmail, utilizamos o patch “tarpit”, que serve para injetar uma quantidade de segundos entre certas mensagens (veja a descrição do patch para uma melhor explicação). Agora é a hora de configurar esses valores. Existem dois arquivos aos quais teremos que criar para essa configuração:

  • /var/qmail/control/tarpitcount: Quantidade de mensagens aceitas. Depois que o numero de mensagens exceder o valor configurado neste arquivo, o qmail irá esperar X segundos entre cada mensagem adicional. O X segundos está configurado no outro arquivo.
  • /var/qmail/control/tarpitdelay: Quantidade de segundos que o qmail irá esperar entre as mensagens.

Então vamos usar como exemplo no nosso servidor 30 mensagens de limite, e 1 minutos entre cada mensagem adicional:

echo 30 > /var/qmail/control/tarpitcount
echo 60 > /var/qmail/control/tarpitdelay

Mude os valores conforme suas necessidades e gostos.

Outros arquivos de configuração do qmail

Vá no diretório /var/qmail/control (ou /etc/qmail) e verifique os arquivos deste diretório. Eles contém os arquivos de configuração criados pelo comando ./config (ou ./config-fast) que foi executado durante a instalação do qmail. Modifique estes arquivos se você precisar, colocando o hostname completo (isso é feito se o ./config deu certo).

Instalando o vpopmail

Agora para cuidar das contas, iremos usar o vpopmail. O vpopmail pode ser encontrado na URL:

http://www.inter7.com/vpopmail/vpopmail-5.2.1.tar.gz

Baixe este arquivo e o descompacte:

cd /root/build
tar zpvfx /root/download/vpopmail-5.2.1.tar.gz

Configurando e compilando

Antes de compilar, temos que saber o que configurar. Primeiro crie os usuários do vpopmail no sistema:

groupadd vchkpw
useradd vpopmail -g vchkpw -d /mailhome

Repare que o /mailhome irá ser o diretório HOME do usuário vpopmail. Neste diretório estarão armazenados todos os e-mails dos usuários, então substitua esse diretório por um diretório que esteja numa partição grande. É sempre bom você criar uma partição (ou quem sabe colocar outro HD) grande para os e-mails e montar em um diretório. E foi isso que foi usado neste tutorial, uma partição montada no diretório /mailhome.

No nosso tutorial iremos usar o servidor MySQL para armazenar os dados das contas. A configuração inicial do MySQL não é explicada neste tutorial. Primeiro crie um banco de dados para o vpopmail no seu servidor MySQL. Certifique-se que o servidor esteja rodando e execute o comando:

mysqladmin -u root -p create vpopmail

Depois logue-se como root no seu servidor MySQL e crie um usuário vpopmail com as permissões necessárias para o banco de dados vpopmail:

mysql -u root -p mysql

mysql> GRANT ALL PRIVILEGES ON vpopmail.* TO vpopmail@localhost
    ->     IDENTIFIED BY 'senhasecreta' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Substitua “senhasecreta” pela senha do usuário vpopmail que você desejar. Veja também se você tem instalado os pacotes de desenvolvimento do MySQL, pois eles serão necessários na hora de compilar o vpopmail. Agora edite o arquivo vmysql.h e altere as seguintes linhas:

/* Edit to match your set up */
#define MYSQL_UPDATE_SERVER "localhost"
#define MYSQL_UPDATE_USER   "root"
#define MYSQL_UPDATE_PASSWD "secret"

#define MYSQL_READ_SERVER   "localhost"
#define MYSQL_READ_USER     "root"
#define MYSQL_READ_PASSWD   "secret"
/* End of setup section*/

Substitua o “root” e o “secret” para o usuário “vpopmail” e a senha que você escolheu. Depois disso o vpopmail já estará pronto para utilizar o MySQL como banco de informações sobre as contas de e-mail.

O vpopmail inclui várias configurações na hora da compilação. Todas estas configurações são passadas ao código-fonte do programa através do script ./configure. Vou incluir aqui as descrições de algumas opções interessantes, você poderá escolher quais opções escolher, ou pode seguir o comando exato que utilizei neste tutorial (que é bom também).

  • –enable-learn-passwords: Se a senha do usuário estiver vazia, da próxima vez que o usuário logar no sistema e autenticar, a senha será configurada automaticamente com o que ele tentou autenticar.
  • –enable-auth-logging: Faz um log das tentativas de autenticação no servidor de banco de dados MySQL.
  • –enable-mysql-logging: Faz um log detalhado das tentativas de autenticação no servidor MySQL.
  • –enable-clear-passwd: Além das senhas criptografadas, coloca-se também elas em texto puro. É útil para quando o usuário esquece a senha e o administrador do sistema precisa dela. Mas não recomendado.
  • –enable-default-domain: O domínio padrão do servidor.
  • –enable-mysql: Utilizar o MySQL ou não. Neste tutorial o utilizamos.
  • –enable-many-domains: Se sim, o vpopmail é otimizado para suportar vários dominios. Se não, é otimizado para poucos domínios com muitos e-mails.
  • –enable-qmail-ext: Suporte às extensões de e-mail do qmail (recomendado).
  • –enable-defaultquota: Qual o limite de espaço que cada usuário pode ter por padrão. Sem essa opção, fica sem limite. Você pode configurar isso para cada usuário separadamente depois, mas se quiser estabelecer um padrão, utilize o valor “XS” ou “XC” onde o X é substituido pela quantidade de bytes e numero de mensagens respectivamente. Por exemplo, o parâmetro “–enable-defaultquota=30000000S,2000C” significa que o limite padrão dos usuários será 30MB ou 2000 mensagens. Leia o README.quotas dentro do diretório do código-fonte do vpopmail para mais informações.

Então neste tutorial usaremos o comando:

./configure --enable-learn-passwords=y --enable-auth-logging=y \
            --enable-clear-passwd=n --enable-valias=y \
            --enable-mysql-logging=y --enable-mysql=y \
            --enable-qmail-ext=y --enable-defaultquota=30000000S,2000C

Caso o configurador não ache as bibliotecas do MySQL, instale o pacote de desenvolvimento do MySQL (como dito acima) e aponte com o parâmetro “–enable-libdir”. Por exemplo: “–enable-libdir=/usr/include/mysql”.

Agora é hora de compilar e instalar o vpopmail através dos comandos:

make
make install-strip

Pronto! O vpopmail já está configurado e funcionando no diretório /mailhome (ou o que você escolheu). Agora é hora de criarmoso o seu primeiro domínio. Fazemos isso com o comando:

/mailhome/bin/vadddomain dominio.com.br

Digite a senha do postmaster, repita e o domínio está criado. Agora é só ir adicionando usuários neste domínio:

/mailhome/bin/vadduser eitch@dominio.com.br
(Senha)
/mailhome/bin/vadduser hugo@dominio.com.br
(Senha)
/mailhome/bin/vadduser sakura@dominio.com.br
(Senha)

E por aí vai.

Instalando o Courier-IMAP

Por enquanto nós configuramos o servidor de e-mail (SMTP) e suas contas. Já dá pra mandar e-mail e tudo mais. Mas e pra pegar os e-mails no servidor? Precisaremos de um servidor POP e/ou IMAP. Neste tutorial usaremos o Courier-IMAP, que é um servidor POP e IMAP especialmente feito para servidores qmail com o tipo de caixa de mensagem “Maildir”. Caso você não tenha usado o formato “Maildir” na caixa de mensagem, utilize outro servidor como o próprio qmail-pop3d.

O Courier-IMAP pode ser obtido na seguinte URL:

http://prdownloads.sourceforge.net/courier/courier-imap-2.1.1.tar.bz2

Baixe este arquivo para o diretório /tmp. Você terá que virar um usuário comum, pois o Courier-IMAP não permite que você compile o programa com o root. Depois descompacte o programa e compile:

cd /tmp
tar jpvfx courier-imap-2.1.1.tar.bz2
cd courier-imap-2.1.1
su root -c "cp /mailhome/lib/libvpopmail.a /usr/lib ; chmod 644 /usr/lib/libvpopmail.a"
(Senha)
./configure --prefix=/usr --sysconfdir=/etc/courier-imap
make
su root -c "make install-strip; make install-configure"

Agora você terá que decidir quais os serviços que você rodará com o Courier-IMAP. Estão disponíveis: IMAP, POP3, IMAP sob SSL e POP3 sob SSL. No caso deste tutorial, usaremos o IMAP e o POP3. Primeiro logue-se como root e copie o arquivo de inicialização para o diretório /etc/init.d:

cd /tmp/courier-imap-2.1.1
cp courier-imap.sysvinit /etc/init.d
chmod 755 /etc/init.d/courier-imap

Depois coloque este script na inicialização do Linux, de acordo com sua distribuição. O comando para iniciar é:

/etc/init.d/courier-imap start

Mas primeiro devemos configurar primeiro. Vá no diretório “/etc/courier-imap”, e edite os arquivos “imapd” e “pop3d”, mudando no final de cada arquivo:

IMAPDSTART=YES
(e)
POP3DSTART=YES

Agora você já pode iniciar o courier-imap com o comando anterior, que os servidores de IMAP e POP3 estarão funcionando.

Instalando programas adicionais

Certo, temos os serviços básicos para um servidor de e-mail rodar: um servidor SMTP, POP3, um banco de dados com as contas dos usuários. Temos agora que instalar novos programas e acoplá-los à nossa instalação para melhorar o nosso servidor de e-mail. Isso inclui um gerenciador de listas de discussão, filtro de e-mails, anti-virus, e por último uma interface de administração de contas do vpopmail.

Gerenciador de listas de discussão: ezmlm-idx

O ezmlm-idx é uma versão extendida do ezmlm, que por sua vez é um gerenciador de listas de discussão criado pelo próprio criador do qmail para funcionar em conjunto com o qmail. O ezmlm é um gerenciador muito bom, e muito usado. Outras alternativas ao ezmlm incluem o majordomo, mas no nosso tutorial usaremos o ezmlm-idx. O site oficial do ezmlm-idx é:

http://www.ezmlm.org

Você pode obter a versão 0.40 do ezmlm-idx e a versão 0.53 do ezmlm (você vai precisar dos dois), nas seguintes URLs:

http://gd.tuwien.ac.at/infosys/mail/qmail/ezmlm-patches/ezmlm-idx-0.40.tar.gz
http://gd.tuwien.ac.at/infosys/mail/qmail/ezmlm-patches/ezmlm-0.53.tar.gz

Baixe e depois descompacte estes dois arquivos:

cd /root/build
tar zpvfx /root/download/ezmlm-0.53.tar.gz
tar zpvfx /root/download/ezmlm-idx-0.40.tar.gz
cd ezmlm-0.53

Agora você vai precisar editar 3 arquivos, que são:

  • conf-bin: Diretório onde vão ficar os binários do ezmlm. Utilize o /usr/bin
  • conf-man: Diretório onde vão ficar as páginas de manual do ezmlm. Utilize o /usr/man
  • conf-qmail: Caso você tenha instalado o qmail em algum lugar quie não seja o /var/qmail, modifique este arquivo, colocando nele o diretório onde você instalou o qmail. No nosso caso vai ficar como /var/qmail mesmo.

Depois de editado os arquivos, vamos aplicar o patch do ezmlm-idx antes de compilar e instalar. Para fazer isso execute os seguintes comandos:

cp -R /root/build/ezmlm-idx-0.40/* /root/build/ezmlm-0.53
(Sobrescreva todos os arquivos se precisar)
patch < idx.patch
echo `which crontab` > conf-cron
(Isso vai colocar o executavel do crontab no arquivo conf-cron)

E antes de compilar, vamos habilitar o suporte ao MySQL já que na instalação deste tutorial estamos usando o MySQL como banco de dados para a gerencia de contas. Edite o arquivo “sub_mysql/conf-sqlcc” e o “sub_mysql/conf-sqlld”. O conf-sqlcc aponta para o diretório onde estão os cabeçalhos de desenvolvimento do MySQL (mais uma vez, você precisará ter instalado o pacote de desenvolvimento do MySQL), que geralmente fica em /usr/include/mysql (ou /usr/include). Já o “conf-sqlld” aponta para o diretório onde estão as bibliotecas, que geralmente ficam em /usr/lib/mysql (ou /usr/lib). Tente essas opções caso uma ou outra não funcione.

Depois compile o módulo do MySQL:

make mysql

Pronto, vamos agora compilar o programa, as páginas de manual, o suporte à língua Portuguesa do Brasil:

make clean
make
make man
make pt_BR

E assim o programa estará totalmente compilado. Como passo final, iremos configurar o servidor MySQL para o ezmlm-idx utilizar. Teremos primeiro que criar o nosso banco de dados, o usuário ezmlm e dar as permissões:

mysqladmin -u root -p create ezmlm
mysql -u root -p mysql

mysql> GRANT ALL PRIVILEGES ON ezmlm.* TO ezmlm@localhost
    ->     IDENTIFIED BY 'senhasecreta' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Depois na linha de comando digite:

./ezmlm-mktab -d list | mysql -uezmlm -psenhasecreta -f ezmlm

Alguns erros podem ocorrer, dizendo que as tabelas não existem. Isto é normal, e este comando irá criar essas tabelas para você, e deixar o servidor MySQL pronto para o uso do ezmlm-idx. Depois disso é só instalar o ezmlm-idx no sistema através do comando:

make setup

E assim o ezmlm-idx estará totalmente instalado no seu sistema! :)

Anti-Virus

Um bom servidor de e-mails sempre tem que ter um anti-virus. Nossa instalação irá suportar uma variedade de anti-virus para sistemas Linux disponíveis no mercado, tanto comerciais como livres. O Anti-virus será usado em conjunto com o qmail-scanner (Ver próxima seção). Como neste tutorial estamos usando uma solução livre, usaremos o ClamAV, que tem sua URL oficial sendo:

http://clamav.elektrapro.com/

Baixe a versão mais nova. Neste tutorial, usaremos o seguinte arquivo:

http://unc.dl.sourceforge.net/sourceforge/clamav/clamav-0.60.tar.gz

Baixe este arquivo, descompacte e instale:

cd /root/build
tar zpvfx /root/download/clamav-0.60.tar.gz
cd clamav-0.60
groupadd clamav
useradd clamav -g clamav -s /dev/null
./configure --prefix=/usr --sysconfdir=/etc
make
make install
ldconfig

Agora edite o arquivo /etc/clamav.conf e vamos configurar. A seguir vai um arquivo de configuração exemplo, com as opções comentadas no próprio arquivo:

# Exemplo de configuração do ClamAV
#

# Arquivo de log para o clamd, muito útil para se avaliar depois o que o
# clamav está fazendo.
LogFile /var/log/clamav.log

# Tamanho máximo do arquivo de log. Se voce estiver preocupado com seu
# espaço em disco, uns 5MB está bom. Especifique o valor 0 para deixar
# sem limite de tamanho máximo.
LogFileMaxSize 5M

# Loga a hora para cada mensagem do log
LogTime

# Log mais detalhado
LogVerbose

# O arquivo PID contendo o identificador do processo para o servidor clamd.
PidFile /var/run/clamav/clamd.pid

# Diretório onde estão os arquivos .db (banco de dados de virus, entre outros)
DataDirectory /usr/share/clamav

# Diretório onde vai ficar o socket local de conexão com o clamd
LocalSocket /var/lib/clamav/clamd

# Profundidade máxima de diretórios para ser scanneado (segurança)
MaxDirectoryRecursion 15

# Suporte adicional para scannear e-mails
ScanMail

# Scannear arquivos compactados
ScanArchive

# Tamanho máximo limite para scannear arquivos compactados.
ArchiveMaxFileSize 30M

# Limite máximo de recursividade de arquivos compactados dentro de
# arquivos compactados
ArchiveMaxRecursion 5

# Número máximo de arquivos scanneados dentro de um arquivo compactado
ArchiveMaxFiles 1000

# Habilitar o suporte ao Clamuko (Scanneamento em tempo real)
ClamukoScanOnLine

# Set access mask for Clamuko.
ClamukoScanOnOpen
ClamukoScanOnClose
ClamukoScanOnExec

# Qual o diretório que será scanneado os arquivos. Como estamos usando
# num servidor de e-mail, coloque aonde os seus e-mails ficam. No nosso
# caso fica em /mailhome
ClamukoIncludePath /mailhome

# Limite do tamanho do arquivo para ser scanneado com o Clamuko
ClamukoMaxFileSize 5M

# Habilitar suporte a arquivos compactados no Clamuko
ClamukoScanArchive

Depois execute os comandos:

mkdir /var/run/clamav
chown clamav.clamav /var/run/clamav -R
freshclam
(O freshclam atualiza a base de dados do ClamAV)

Agora pra ficar mais eficiente, vamos incluir o freshclam no crontab, para que o programa seja rodado todo dia, verificando por novos bancos de dados com novos virus. Para incluir no crontab, adicione a seguinte linha ao arquivo /etc/crontab:

0	1	*	*	*	root	/usr/bin/freshclam

Agora todo dia à 1 da manhã ele vai chegar se existem atualizações no banco de dados de Virus. Caso exista, ele baixa as atualizações automaticamente para você.

Em seguida crie o script /etc/init.d/clamav (ou o equivalente em sua distribuição) com o seguinte conteúdo:

#!/bin/sh

# description: clamav antivirus

case "$1" in
  start)
    echo -n "Iniciando o ClamAV... "
    /usr/sbin/clamd
    echo "feito."
    ;;
  stop)
    echo -n "Parando o ClamAV... "
    kill -TERM `cat /var/run/clamav/clamd.pid`
    echo "feito."
    ;;
  *)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac

exit 0

Em seguinda coloque-o na inicialização do sistema (como o script do qmail). Não esqueça de tornar o script executável com o comando:

chmod 755 /etc/init.d/clamav

Agora execute o clamav para ver se está tudo OK:

/etc/init.d/clamav start

Filtro de e-mails: qmail-scanner

O qmail-scanner é um programa que atua como intermediador dos e-mails do servidor qmail. Com ele você pode especificar que mensagens podem passar ou não, a depender de certos critérios. Estes critérios podem ser por exemplo: barramento de extensões, scannear em programas externos (anti-virus por exemplo), assunto da mensagem, entre outros. Apesar de seu servidor de e-mail perder um pouco de desempenho por ter que scannear todas as mensagens, vale muito à pena ter essa medida de segurança adicional. A URl oficial do programa é:

http://qmail-scanner.sourceforge.net/

Baixe a versão mais nova. Neste tutorial, usaremos o arquivo:

http://unc.dl.sourceforge.net/sourceforge/qmail-scanner/qmail-scanner-1.20rc3.tgz

O qmail-scanner vai fazer uso de um patch do qmail que aplicamos antes. É o qmailqueue-patch. Com ele, podemos especificar para o qmail redirecionar todo o fluxo de entrada de mensagens para o qmail-scanner ao invés do qmail-queue, assim o qmail-scanner pode fazer o filtro dos e-mails e repassar para o verdadeiro qmail-queue, que faz a entrega dos e-mails nas caixas locais.

O qmail-scanner vai precisar de alguns outros programinhas e códigos para satisfazer suas dependências. Estes são:

  • Perl 5.005_03+ e módulos: Time::HiRes, DB_File, Sys::Syslog: http://www.cpan.org\
  • Maildrop 1.3.8+: http://download.sourceforge.net/courier/maildrop-1.6.0.tar.bz2
  • TNEF Unpacker: http://unc.dl.sourceforge.net/sourceforge/tnef/tnef-1.2.1.tar.gz

Instale os módulos do Perl com o CPAN (O perl vem em praticamente todas as distribuições):

perl -MCPAN -e shell
(Configure o CPAN de acordo com as instruções)
install Time::HiRes
install DB_File
install Date::Parse

Para quem não sabe, o CPAN é um repositório de códigos em perl. Com ele você pode instalar “módulo” Perl com a facilidade de um comando. Em termos de facilidade, é bem parecido com o famoso apt :) Os comandos acima instalam os 3 módulos do Perl requeridos pelo qmail-scanner. Além disso, ele instala também outros módulos associados à esses três e que não estejam no seu sistema.

Agora vamos instalar o Maildrop:

cd /root/build
tar jpvfx /root/download/maildrop-1.6.0.tar.bz2
cd maildrop-1.6.0
./configure --prefix=/usr
make
make install-strip
make install-man

Pronto! Maildrop instalado, agora é a vez do TNEF:

cd /root/build
tar zpvfx /root/download/tnef-1.2.1.tar.gz
cd tnef-1.2.1
./configure --prefix=/usr
make
make install

Pronto! TNEF instalado. Agora vamos voltar ao qmail-scanner… Mas antes! O qmail-scanner rodará como root pelo perl, ou seja, ele precisará do perl com suid. Você precisará ter uma instalação do Perl-suid para o qmail-scanner funcionar. Procure pelo pacote do perl-suid em sua distribuição. (Por exemplo, no Debian você pode digitar apt-get install perl-suid).

cd /root/build
tar zpvfx /root/download/qmail-scanner-1.20rc3.tgz
cd qmail-scanner-1.20rc3
groupadd qscand
useradd qscand -g qscand -s /dev/null
./configure --install

O ./condigure irá vasculhar seu sistema pelos programas que ele precisa e por anti-virus disponíveis. Se você fez tudo certo, o resultado que aparecerá na tela será parecido com esse:

Building Qmail-Scanner 1.20rc3...

This script will search your system for the virus scanners it knows
about, and will ensure that all external programs
qmail-scanner-queue.pl uses are explicitly pathed for performance
reasons.

It will then generate qmail-scanner-queue.pl - it is up to you to install it
correctly.

Continue? ([Y]/N) Y

/usr/bin/uudecode works as expected on system...

Found tnef on your system! That means we'll be able to decode stupid
M$ attachments :-)

The following binaries and scanners were found on your system:

mimeunpacker=/usr/bin/reformime
uudecode=/usr/bin/uudecode
unzip=/usr/bin/unzip
tnef=/usr/bin/tnef

Content/Virus Scanners installed on your System

clamuko=/usr/bin/clamdscan (which means clamscan won't be used as clamdscan is better)

Qmail-Scanner details.

log-details=0
fix-mime=1
debug=1
notify=sender,admin
redundant-scanning=no
virus-admin=root@hayama
local-domains='hayama'
silent-viruses='klez','bugbear','hybris','yaha','braid','nimda','tanatos','sobig','winevar','palyh','fizzer'
scanners="clamuko_scanner"

If that looks correct, I will now generate qmail-scanner-queue.pl
for your system...
Continue? ([Y]/N) Y

Testing suid nature of /usr/bin/suidperl...
Looks OK...
Hit RETURN to create initial directory structure under /var/spool/qmailscan,
and install qmail-scanner-queue.pl under /var/qmail/bin: (ENTER)

perlscanner: generate new DB file from /var/spool/qmailscan/quarantine-attachments.txt
perlscanner: total of 9 entries.

Finished installation of initial directory structure for Qmail-Scanner
under /var/spool/qmailscan and qmail-scanner-queue.pl under /var/qmail/bin.

Finished. Please read README(.html) and then go over the script
(/var/qmail/bin/qmail-scanner-queue.pl) to check paths/etc.

"/var/qmail/bin/qmail-scanner-queue.pl -r" should return some well-known virus
definitions to show that the internal perlscanner component is working.

That's it!

(...)

Pronto! O qmail-scanner foi instalado no sistema, e seus arquivos de banco de dados e configuração estão disponíveis no diretório /var/spool/qmailscan. Agora aproveite para editar o arquivo “/var/spool/qmailscan/quarantine-attachments.txt” e configure o filtro de arquivos anexados. Por exemplo, adicione as seguintes linhas no final do arquivo (Nota: os espaços nas linhas não são espaços, são TABs):

.exe    0       Executable binary
.com    0       Non relocable MSDOS executable binary
.vbs    0       Visual Basic Script
.vba    0       Visual Basic Application
.shs    0       Shell automation code
.scr    0       Screen Saver
.bat    0       COMMAND.COM batch file
.btm    0       JP Software fast batch file
.reg    0       Windows Registry file
.msi    0       Executable binary
.msc    0       Executable binary
.chm    0       Compiled HTML help file
.inf    0       Windows INF file
.cpl    0       Control Panel library
.wsf    0       Windows Scripting File
.vbe    0       VisualBasic Encoded
.js     0       JavaScript
.jse    0       JavaScript Encoded
.css    0       Cascading Style Sheets
.wsh    0       Windows Scripting Host
.sct    0       Scriptlet File
.hta    0       HTML Application
.lnk    0       Windows Explorer links
.cmd    0       cmd.exe NT batch
.pif    0       Windows Program Information Files
.ade    0       Access Project Extension
.mdb    0       Access Application
.adp    0       Access Project
.mde    0       Access MDE Database
.bas    0       Visual Basic Class Module
.msp    0       Windows Installer Patch
.mst    0       Visual Test Source File
.pcd    0       Photo CD Image
.crt    0       Security Certificate
.hlp    0       Windows Help File
.url    0       Internet Shortcut (Uniform Resource Locator)
.ins    0       Internet Communication Settings
.isp    0       Internet Communication Settings
.vb     0       Script Script File
.wsc    0       Windows Script Componen
.shb    0       Shell Scrap object
.mp3    0       MPEG Layer 3 Sound
.mp2	0       MPEG Layer 2 Sound

Todas as extensões aí listadas serão bloqueadas. Dá pra perceber como funciona, né? Toda vez que você modificar este arquivo, digite o comando:

/var/qmail/bin/qmail-scanner-queue.pl -g

Agora só falta uma última modificação: falar ao qmail para usar o qmail-scanner nos seus e-mails. Para isso usaremos o recurso do patch qmailqueue, aplicado na instalação do qmail. Para quem não lembra, este patch faz com que o qmail procure pela variável de ambiente QMAILQUEUE, e use o programa contido nessa variável para mandar os e-mails recebidos. Para configurar essa variável de ambiente, temos que editar o arquivo CDB do qmail, que no nosso caso ficou como sendo o /etc/tcp.smtp. Dei um exemplo na seção do qmail, então o mesmo exemplo será usado aqui abaixo, com as modificações para o qmail-scanner:

127.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
192.168.1.:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
200.165.123.223:allow,RELAYCLIENT="",QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

Assim todo e-mail será passado pro qmail-scanner. Digite o seguinte para recarregar este arquivo:

qmailctl cdb

Conclusão

E aqui acaba o tutorial de como montar um servidor de e-mail completo usando software livre. Espero que tenha sido proveitoso para você leitor. Quaisquer dúvidas por favor me contacte pelo meu e-mail. Com o pessoal me mandando e-mail, eu consigo melhorar drasticamente este tutorial a medida do tempo! Mande suas dúvidas, sugestões e críticas, para que eu torne este tutorial cada vez melhor.

Referências:

  • Life With QMail: http://www.lifewithqmail.org
  • Página do QMail: http://www.qmail.org
  • Documentações de cada programa :)

Bom proveito!


Comentários  46
Visualizações  
135,068


TagsLeia também

Apaixonado por Linux e administração de sistemas. Viciado em Internet, servidores, e em passar conhecimento. Idealizador do Devin, tem como meta aprender e ensinar muito Linux, o que ele vem fazendo desde 1997 :-)


Leia também



Comentários

46 respostas para “Montando um servidor de E-Mail com o qmail”

  1. anderson disse:

    muito bom =]

  2. Rafael disse:

    Muito bom esse seu tutorial mesmo. Caso tenha mais alguns sobre LINUX. Concerteza ireia gostar muito se você puder me mandar.

  3. Juliano Vendramini disse:

    Parabéns Hugo, está muito bom fico grato pela ajuda, pois era o que eu estava precisando.

  4. Carlos Miranda disse:

    Muito bom tutorial, claro e objetivo. Parabens Guy

  5. Ricardo disse:

    Estou querendo montar um servidor de e-mail na minha empresa que permita que os usuários se comuniquem internamente e externamente, esse tutorial atenderia minha necessidade? obrigado

  6. Diabo disse:

    Meu numero é 666!!

    Pow cara, ótimo post!

    Fiz um serv mail de TCC e iso me ajudo muito cara!

  7. Adailton disse:

    Hugo,

    Parabéns pela iniciativa!! muito bom o seu tutorial!

    Abraço e sucesso!

  8. Ilton Baracho disse:

    Muito bom!

  9. Tomas disse:

    não tenho muita experiencia com Linux, segui o tutorial até compilar o vpopmail, segue abaixo o resultado do make:

    make all-recursive

    make[1]: Entering directory `/home/tomas/vpopmail-5.2.1'

    Making all in cdb

    make[2]: Entering directory `/home/tomas/vpopmail-5.2.1/cdb'

    make[2]: Nothing to be done for `all'.

    make[2]: Leaving directory `/home/tomas/vpopmail-5.2.1/cdb'

    make[2]: Entering directory `/home/tomas/vpopmail-5.2.1'

    gcc -I. -Icdb -g -O2 -Wall -c maildirquota.c

    maildirquota.c: In function 'doaddquota':

    maildirquota.c:516: error: invalid lvalue in assignment

    maildirquota.c:518: error: invalid lvalue in assignment

    maildirquota.c:525: error: invalid lvalue in assignment

    maildirquota.c:538: error: invalid lvalue in assignment

    make[2]: *** [maildirquota.o] Error 1

    make[2]: Leaving directory `/home/tomas/vpopmail-5.2.1'

    make[1]: *** [all-recursive] Error 1

    make[1]: Leaving directory `/home/tomas/vpopmail-5.2.1'

    make: *** [all-recursive-am] Error 2

    não consigo corrigir esses erros, se puder me ajudar?

  10. Cristina disse:

    Mail qmail criava o maildir sozinho, parou de funcionar, você sabe o que pode ser?

    Obrigada

    Cris

  11. r0berto disse:

    gostei da literatura, é ampla,

    mas quanto me custaria para ter um servidor pronto

    roberto

  12. Celio Ferraz disse:

    Gostaria de saber se tudo isso funciona no windows xp pois preciso fazer mala direta e enviar mais meu servidor me limita. Esse metodo funciona sem o servidor, minha banda é de 300 e uso serviço de rádio. E esses programs tem custo?

    Grato,

  13. @Celio:

    Não para todas as suas perguntas.

  14. jose claudio disse:

    Parabens velho pelo porst, e muito bom pessoas que nem vc no nosso meio, aqui na empresa eu administro um server com Qmail e nem sabia como funcionava praciso estudar mais vou tentar montar um Falewwwwwww

  15. Marco Junior disse:

    Muito bom seu tutorial cara!!!

    me tira uma duvida, qual distro vc usou?

    Valeu!!!

  16. Marco Junior disse:

    Outra coisa, tem alguma interface web para administração e webmail?

    Valeu!!!

  17. Marco Junior disse:

    alguem pode me ajudar, o que pode ser? quando dou o make setup check ele me retorna isso;

    ./compile qmail-local.c

    qmail-local.c:1:23: sys/types.h: No such file or directory

    qmail-local.c:2:22: sys/stat.h: No such file or directory

    qmail-local.c: In function `maildir_child':

    qmail-local.c:85: error: storage size of `st' isn't known

    qmail-local.c: In function `checkhome':

    qmail-local.c:313: error: storage size of `st' isn't known

    qmail-local.c: In function `qmeox':

    qmail-local.c:329: error: storage size of `st' isn't known

    qmail-local.c: In function `qmeexists':

    qmail-local.c:348: error: storage size of `st' isn't known

    qmail-local.c:361: error: `S_IFMT' undeclared (first use in this function)

    qmail-local.c:361: error: (Each undeclared identifier is reported only once

    qmail-local.c:361: error: for each function it appears in.)

    qmail-local.c:361: error: `S_IFREG' undeclared (first use in this function)

    qmail-local.c: In function `main':

    qmail-local.c:450: warning: return type of `main' is not `int'

    make: *** [qmail-local.o] Error 1

  18. Marco Junior disse:

    há uso o slackware

  19. Hernani disse:

    Muito bom tutorial! Mas quero fazer uma pergunta:

    Tentado ilustrar: administro uma rede com 20 computadores e dois servidores, um proxy de internet e outro servidor de dados, deixando-se de lado seus Sistemas Operacionais e aplicações, por enquanto. A empresa tem contas de e-mails proprietários (tem um domínio próprio e recebem mensagem pelo provedor de hospedagem) configurado em seus softwares clientes por onde todos recebem suas mensagens. Quero saber se um servidor de emails pode ter essas contas configuradas em si e administrar o armazenamento das mesmas enquanto os clientes os acessam. eu creio que haja configurações específicas para que cada cliente envie e receba mensagens de sua própria conta, mas o mais importante é o armazenamento das mensagens. Essa visão está correta? Este tutorial me dá possibilidade de obter este tipo de serviço?

    grato.

  20. Cleidison disse:

    @ Marco Junior

    Este erro

    qmail-local.c:1:23: sys/types.h: No such file or directory

    qmail-local.c:2:22: sys/stat.h: No such file or directory

    O o compilador não conseguiu encontrar as bibliotecas types.h e stat.h verifique se você baixou todos os arquivos necessários para a compilação.

    Abs,

    Cleidison

  21. Márcio disse:

    Olá, parabéns pela post.

    Gostaria de saber se existe uma configuração mínima de servidor para este software. Obrigado.

  22. @Márcio:

    Não acho que exista uma configuração mínima. Os softwares aqui são bem leves, mas vai depender muito do tráfego que você vai suportar. Se você tem um servidor de e-mail com anti-spam e anti-virus, precisa de uma máquina melhor (afinal, cada mensagem vai ser verificada).

    No mais, até qualquer computador antigo, com 256mb de RAM pode funcionar :P

  23. Julio Cesar disse:

    bom dia, otimo post… mais infelizmente eu sou leigo no assunto, tenho algumas duvida … qualquer tecnico que saiba instalar servidor ira conseguir configurar esses programas … tem algum email que nos possamos falar diretamente ????

  24. oooooooooooooooooooiiiiiiiiiiiiiiiiiiiiiiii

  25. sergio disse:

    ola estou gostaria de saber se tem como personalizar a aperncia do e-mail dando a ele um layaout especial?

    a ideia e criar uma interface grafica totalmente diferente da tradicional,

  26. Shawdown disse:

    Seguinte tenho um servidor dedicado e estou tentando configurar um servidor para saida de email's SMTP.

    Presciso desse servidor SMTP para utilizar em meu sistema.

    A yahoo, bol, uol e hotmail sempre reconheçem como lixo eletronico.

    a pergunta é. presciso de alguem para configurar isso para mim caso alguem se interessar gostaria de saber o quanto cobraria pelo serviço.

    meu email e shawdown [ @ ] gmail.com

    Desde ja obrigado a todos…

  27. Rafael disse:

    Ao autor do artigo:

    Prezado,

    Administro um Qmail+Ldap. E isso me dificulta um pouco na escolha de um webmail, atualmente uso o horde, e pelo que andei lendo, base de usuarios em Openldap somente Horde ou Squirrelmail. Mas temos mais opções no mercado, como Mail Enable, Atmail, Roundcube, enfim várias. todas elas para MySql ( Ou outros que não, nunca… OpenLdap ).

    Tens alguma opnião sobre:

    Qmail+Ldap X Qmail+MySQL

    PS: Caso se interesse podemos discursar via e-mail

    Grato,

    Rafael.

  28. Edgar Oliveira disse:

    Como e que eu fazo para instalar os patch???

  29. guilherme disse:

    Ai estes códigos ai são feitos para serem usados no Linux ?? ou tbm da pra rodar em .bat ???? Ajuda ae guilherme@hc-host.net

  30. Edson J Bueno disse:

    Esse tuto serve para o squeeze?

  31. Rodrigo Mansur disse:

    Ótimo tutorial !

    Mas resolvi minha vida nesse site aqui http://store.jbpserver.com.br

    Em 3 minutos eu tava com um servidor de email postfix pra multiplos dominios tudo administrado por interface gráfica usando o ISPConfig3 e ainda tem um firewall e chat corporativo.

    Valeu cada tostão !

    Rod

  32. Denis disse:

    Bom dia, Qual distribuição linux foi usada para esse tutorial ?

  33. Victor Nhone disse:

    Ola Hugo, com certeza o teu blog está muito bom… Eu pretendo fazer uma tese sob servidor de e-mail gostava de pedir algumas dicas de fazer esse trabalho… Aguardo uma sugestao sua… Aquele abraco

  34. Rommel disse:

    Senhores, estou com um cliente que tem o qmail no servidor linux dele instalado, o problema que ele está tendo, é:

    Os email quando são enviados por sistemas de mail como exemplo, o thuderbird, os emails enviados saem normalmente, porém, quando é utilizado o envio de email pelo webmail, o envio destes emails estão demorando muito para serem enviados ou as vezes nem vão.

    Obrigado se puderem ajudar!

  35. léo disse:

    muito bom seu tutorial

    tenho uma conta que me permite enviar 3000 emails por dia e eu montar um servidor como este descrito ficaria ilimitado o envio de email.

    obrigado.

  36. Ataca disse:

    Que características o computador presisará de ter para poder rodar o servidor?

  37. Ricardo disse:

    Parabéns pelo tutorial e obrigado por compartilhá-lo, é muito útil, quero instalá-lo em breve.

    Escrevo para perguntar se há algum patch que possibilite a habilitação de um token para acessar o e-mail, tornando-o mais seguro, assim como sites de bancos.

    Obrigado!

  38. Emanuel disse:

    Amigo, você é fera até eu que sou um leigo no assunto poderei me aventurar. Parabéns pela iniciativa.

  39. Roberto Vieira disse:

    Hugo Cisneiros,

    Alguem por ai que saca muito desse assunto pra me ajudar?

    Grato!

  40. fabio disse:

    este qmail roda em windows?

  41. Roxanna Kowalchuk disse:

    htps://www.youtube.com/watch?v=c7UvxKW_okY

  42. Ganhe R$ 17.940,00 mensais ou mais ttrabalhando em Casa e nas Horas vagas!

    Sistema inédito de geração de Renda 24 horas por dia!

    Saiba mais acessando http://www.lucreemcasa.com.br

    13:54:21

Deixe uma resposta