Servidor de Email · 5 min read · Sep 27, 2025
Usuários E Domínios Virtuais Com Postfix, Courier, MySQL E SquirrelMail (Mandriva 2009.1 x86_64)
Usuários E Domínios Virtuais Com Postfix, Courier, MySQL E SquirrelMail (Mandriva 2009.1 x86_64)
Versão 1.0
Autor: Falko Timme
Este tutorial é Copyright (c) 2009 por Falko Timme. É derivado de um tutorial de Christoph Haas que você pode encontrar em http://workaround.org. Você é livre para usar este tutorial sob a licença Creative Commons 2.5 ou qualquer versão posterior.
Este documento descreve como instalar um servidor de email Postfix que é baseado em usuários e domínios virtuais, ou seja, usuários e domínios que estão em um banco de dados MySQL. Também demonstrarei a instalação e configuração do Courier (Courier-POP3, Courier-IMAP), para que o Courier possa autenticar contra o mesmo banco de dados MySQL que o Postfix usa.
O servidor Postfix resultante é capaz de SMTP-AUTH e TLS e quota (quota não está embutido no Postfix por padrão, eu mostrarei como corrigir seu Postfix adequadamente). As senhas são armazenadas em forma criptografada no banco de dados (a maioria dos documentos que encontrei lidava com senhas em texto simples, o que é um risco de segurança). Além disso, este tutorial cobre a instalação do Amavisd, SpamAssassin e ClamAV para que os emails sejam escaneados em busca de spam e vírus. Também mostrarei como instalar o SquirrelMail como uma interface de webmail para que os usuários possam ler e enviar emails e mudar suas senhas.
A vantagem de tal configuração “virtual” (usuários e domínios virtuais em um banco de dados MySQL) é que é muito mais performática do que uma configuração baseada em usuários de sistema “reais”. Com esta configuração virtual, seu servidor de email pode lidar com milhares de domínios e usuários. Além disso, é mais fácil de administrar porque você só precisa lidar com o banco de dados MySQL ao adicionar novos usuários/domínios ou editar os existentes. Sem mais comandos postmap para criar arquivos db, sem mais recarregamento do Postfix, etc. Para a administração do banco de dados MySQL, você pode usar ferramentas baseadas na web como o phpMyAdmin, que também será instalado neste tutorial. A terceira vantagem é que os usuários têm um endereço de email como nome de usuário (em vez de um nome de usuário + um endereço de email), o que é mais fácil de entender e lembrar.
Este tutorial é baseado no Mandriva 2009.1 (x86_64). Você já deve ter configurado um sistema básico do Mandriva, conforme descrito nos capítulos 1 a 7 deste tutorial: https://www.howtoforge.com/perfect-server-mandriva-2009.1-free-x86_64-ispconfig-2. Por favor, deixe de fora o capítulo 6.1 Criando Um Script De Auto-Atualização, porque se houver uma atualização do Postfix, ela substituirá nosso Postfix personalizado que construiremos no capítulo 3!
Este tutorial é destinado como um guia prático; não cobre os fundamentos teóricos. Eles são tratados em muitos outros documentos na web.
Este documento vem sem garantia de qualquer tipo! Quero dizer que esta não é a única maneira de configurar tal sistema. Existem muitas maneiras de alcançar esse objetivo, mas este é o caminho que eu sigo. Não dou nenhuma garantia de que isso funcionará para você!
Nota Preliminar
O sistema deve ter um endereço IP estático. Eu uso 192.168.0.100 como meu endereço IP neste tutorial e server1.example.com como o nome do host.
1 Instalar Apache, MySQL, phpMyAdmin
Primeiro, atualizamos nosso banco de dados de pacotes:
urpmi.update -aPodemos instalar os pacotes com um único comando:
urpmi MySQL MySQL-client lib64mysql-devel phpmyadmin db4-devel html2text lib64sasl-devel openssl-devel openldap-devel pcre-devel postgresql8.3-devel rpm-build2 Instalar Courier E Saslauthd
Para instalar o Courier e o saslauthd, simplesmente executamos:
urpmi courier-authlib courier-authlib-mysql courier-imap courier-pop cyrus-sasl lib64sasl2 lib64sasl2-devel lib64sasl2-plug-plain lib64sasl2-plug-anonymous lib64sasl2-plug-crammd5 lib64sasl2-plug-digestmd5 lib64sasl2-plug-gssapi lib64sasl2-plug-login3 Aplicar Patch De Quota Ao Postfix
Precisamos obter o rpm fonte do Postfix, aplicar o patch de quota, construir um novo pacote rpm do Postfix e instalá-lo.
cd /usr/src
wget ftp://wftp.tu-chemnitz.de/pub/linux/mandrakelinux/official/2009.1/SRPMS/main/release/postfix-2.5.6-4mdv2009.1.src.rpm
rpm -ivh postfix-2.5.6-4mdv2009.1.src.rpmO último comando mostrará alguns avisos que você pode ignorar:
warning: user mandrake does not exist - using root
warning: group mandrake does not exist - using rootAgora aplicamos o patch aos fontes do Postfix com o patch postfix-2.5.6-vda-ng (de http://vda.sourceforge.net/):
cd /root/rpmbuild/SOURCES
tar xvfz postfix-2.5.6.tar.gz
wget http://vda.sourceforge.net/VDA/postfix-2.5.6-vda-ng.patch.gz
gunzip postfix-2.5.6-vda-ng.patch.gz
cd postfix-2.5.6
patch -p1 < ../postfix-2.5.6-vda-ng.patch
cd ..
mv postfix-2.5.6.tar.gz postfix-2.5.6.tar.gz_orig
tar -pczf postfix-2.5.6.tar.gz postfix-2.5.6/
rm -fr postfix-2.5.6/Em seguida, construímos nosso novo pacote rpm do Postfix com suporte a quota e MySQL:
cd /root/rpmbuild/SPECS/
rpmbuild -ba postfix.specNosso pacote rpm do Postfix é criado em /root/rpmbuild/RPMS/x86_64, então vamos até lá:
cd /root/rpmbuild/RPMS/x86_64O comando
ls -lmostra os pacotes disponíveis:
[root@server1 x86_64]# ls -l
total 3304
-rw-r--r-- 1 root root 225752 2009-10-07 15:49 lib64postfix1-2.5.6-4mdv2009.1.x86_64.rpm
-rw-r--r-- 1 root root 1273469 2009-10-07 15:49 postfix-2.5.6-4mdv2009.1.x86_64.rpm
-rw-r--r-- 1 root root 1746832 2009-10-07 15:49 postfix-debug-2.5.6-4mdv2009.1.x86_64.rpm
-rw-r--r-- 1 root root 29372 2009-10-07 15:49 postfix-ldap-2.5.6-4mdv2009.1.x86_64.rpm
-rw-r--r-- 1 root root 24616 2009-10-07 15:49 postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm
-rw-r--r-- 1 root root 24846 2009-10-07 15:49 postfix-pcre-2.5.6-4mdv2009.1.x86_64.rpm
-rw-r--r-- 1 root root 24691 2009-10-07 15:49 postfix-pgsql-2.5.6-4mdv2009.1.x86_64.rpm
[root@server1 x86_64]#Primeiro desinstale seu pacote Postfix atual…
urpme postfix…então escolha os pacotes postfix e postfix-mysql e instale-os assim:
rpm -ivh postfix-2.5.6-4mdv2009.1.x86_64.rpm postfix-mysql-2.5.6-4mdv2009.1.x86_64.rpm4 Definir Senhas MySQL E Configurar phpMyAdmin
Por padrão, a rede não está habilitada no pacote MySQL do Mandriva 2009.1, mas a rede é necessária pelo ISPConfig. Podemos mudar isso comentando a linha skip-networking em /etc/my.cnf:
vi /etc/my.cnf| [...] # Não escute em uma porta TCP/IP. Isso pode ser uma melhoria de segurança, # se todos os processos que precisam se conectar ao mysqld rodarem no mesmo host. # Toda interação com mysqld deve ser feita via sockets Unix ou pipes nomeados. # Note que usar esta opção sem habilitar pipes nomeados no Windows # (via a opção "enable-named-pipe") tornará o mysqld inútil! # #skip-networking [...] |
Depois, criamos os links de inicialização do sistema para o Apache e MySQL…
chkconfig mysqld on
chkconfig httpd on… e iniciamos ambos os serviços:
/etc/init.d/mysqld start
/etc/init.d/httpd startAgora verifique se a rede está habilitada. Execute
netstat -tap | grep mysqlA saída deve ser parecida com isto:
[root@server1 x86_64]# netstat -tap | grep mysql
tcp 0 0 *:mysql-im *:* LISTEN 14395/mysqlmanager
tcp 0 0 *:mysql *:* LISTEN 14403/mysqld
[root@server1 x86_64]#Em seguida, execute
mysqladmin -u root password yourrootsqlpassword
mysqladmin -h server1.example.com -u root password yourrootsqlpasswordpara definir uma senha para o usuário root (caso contrário, qualquer um pode acessar seu banco de dados MySQL!).
Agora você pode direcionar seu navegador para http://server1.example.com/phpmyadmin/ ou http://192.168.0.100/phpmyadmin/ e fazer login com o nome de usuário root e sua nova senha root do MySQL.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.