Montando um servidor de e-mail completo com Postfix
Este tutorial aborda a criação de um servidor de e-mail baseado em banco de dados MySQL, com suporte a cota de usuários, antispam, antivírus, webmail e tudo mais o que se pode imaginar.
Parte 14: Instalando o PostfixAdmin
O PostfixAdmin é um ambiente de administração do Postfix +
MySQL, feito totalmente em PHP. Com ele, você pode:
Para esse ambiente, foi necessário fazer algumas alterações no código original para adequá-lo ao Maildrop. Essas foram algumas das minhas alterações:
Dependências:
Apache
PHP
# urpmi php-mysql
# urpmi php-ini
ATENÇÃO: Caso você não esteja utilizando o Mandrake, certamente a sua distribuição deve possuir o Apache e o PHP nos CD's de instalação. Não entrarei em detalhes sobre configuração do APACHE, pois o foco aqui é outro. Usarei a configuração DEFAULT do servidor.
Instalação:
Se você for utilizar a minha versão com essas alterações, baixe-o nesse link: Após o download, descompacte no diretório ROOT do servidor WEB ou em algum outro, lembrando apenas de criar um ALIAS na configuração do servidor.
# tar -jxvf postfixadmin-ALTERADO.tar.bz2 -C /var/www/html/
Copie os scripts para um outro diretório e mude as permissões:
# mv /var/www/html/postfixadmin/*.sh /var/www/
# chmod 700 /var/www/*.sh
# chown apache:apache /var/www/html/postfixadmin/ -R
# cd /var/www/html/postfixadmin/
Configuração do SUDO:
Como comentei antes por causa do MAILDROP, nesse ambiente precisei criar 2 scripts: adduser.sh e userdel.sh. Esses scripts devem possuir permissão de ROOT para execução. A forma que achei para resolver esse problema foi o uso do SUDO.
* Se alguém tiver alguma sugestão melhor, por favor entre em contato.
Edite o arquivo /etc/sudoers e adicione as seguintes linhas:
- Criar domínio virtuais;
- Criar/Excluir contas virtuais;
- Criar/Excluir Aliases;
- Alteração de Senhas, etc.
Para esse ambiente, foi necessário fazer algumas alterações no código original para adequá-lo ao Maildrop. Essas foram algumas das minhas alterações:
- Tradução do Ambiente para Português BR
- Desabilitei a criação automática de um ALIAS para cada endereço de email criado, achei desnecessário para esse ambiente.
- Desabilite a opção de DELETAR os dados do "mailbox" do usuário, em caso de se apagar um ALIAS para essa caixa.
- Adaptação de 2 script para CRIAÇÃO e EXCLUSÃO de usuário. Isso foi necessário, pois o MAILDROP nesse ambiente, não cria o MAILDIR/ do usuário caso ele não exista. Para a EXCLUSÃO, o Postfixadmin não apaga o diretório dos usuários. Com esses 2 scripts, você também pode realizar outras configurações, no meu caso por exemplo, a configuração de um Webmail.
- Uso do SUDO para dar permissões de execução para esses dois scripts.
- Inclusão do campo ATIVO na página de administração com a possibilidade de ativar/desativar um conta de usuário.
- Mudança na forma de apresentação do valor da COTA de disco.
- Mudança na forma de apresentação da DATA de alteração da conta, para um formato BR.
Dependências:
Apache
PHP
# urpmi php-mysql
# urpmi php-ini
ATENÇÃO: Caso você não esteja utilizando o Mandrake, certamente a sua distribuição deve possuir o Apache e o PHP nos CD's de instalação. Não entrarei em detalhes sobre configuração do APACHE, pois o foco aqui é outro. Usarei a configuração DEFAULT do servidor.
Instalação:
Se você for utilizar a minha versão com essas alterações, baixe-o nesse link: Após o download, descompacte no diretório ROOT do servidor WEB ou em algum outro, lembrando apenas de criar um ALIAS na configuração do servidor.
# tar -jxvf postfixadmin-ALTERADO.tar.bz2 -C /var/www/html/
Copie os scripts para um outro diretório e mude as permissões:
# mv /var/www/html/postfixadmin/*.sh /var/www/
# chmod 700 /var/www/*.sh
# chown apache:apache /var/www/html/postfixadmin/ -R
# cd /var/www/html/postfixadmin/
Configuração do SUDO:
Como comentei antes por causa do MAILDROP, nesse ambiente precisei criar 2 scripts: adduser.sh e userdel.sh. Esses scripts devem possuir permissão de ROOT para execução. A forma que achei para resolver esse problema foi o uso do SUDO.
* Se alguém tiver alguma sugestão melhor, por favor entre em contato.
Edite o arquivo /etc/sudoers e adicione as seguintes linhas:
# POSTFIXADMIN
apache ALL=NOPASSWD:/var/www/adduser.sh
apache ALL=NOPASSWD:/var/www/userdel.sh
apache ALL=NOPASSWD:/var/www/adduser.sh
apache ALL=NOPASSWD:/var/www/userdel.sh
Edite o arquivo config.inc.php e configure as variáveis conforme a sua configuração. As principais são:
// Login information for the database
$db_host = "localhost";
$db_name = "postfix";
$db_user = "postfixadmin";
$db_pass = "xxxxx";
$db_host = "localhost";
$db_name = "postfix";
$db_user = "postfixadmin";
$db_pass = "xxxxx";
Depois de configurado as variáveis, habilite o acesso a página de administração de domínio do PostfixAdmin, no meu caso usarei o usuário "admin".
# cd /var/www/html/postfixadmin/admin/
# htpasswd .htpasswd admin
New password:
Re-type new password:
Updating password for user admin
Inicie o servidor apache:
# service httpd start
Agora pelo BROWSER, acesse o endereço:
http://ip_do_servidor/postfixadmin/admin
Ele irá lhe pedir o usuário e o password que você cadastrou no arquivo .htpasswd.
No PostfixAdmin, você precisa cadastrar os administradores correspondentes para cada domínio que você possui na máquina.
Depois de cadastrado o administrador daquele domínio, acesse pelo endereço http://ip_do_servidor/postfixadmin/, colocando o usuário e senha cadastrados.
Não irei entrar em detalhes sobre o funcionamento do PostfixAdmin, pois a sua interface é muito intuitiva.
DICA: Caso ocorra algum problema na criação do usuário, verifique a configuração e permissão dos scripts de criação (USERDEL e ADDUSER).
Verifique também no /var/log/messages se o comando sudo foi executado.