Este artigo apresenta o servidor Postfix, que permite o envio e recebimento de e-mails em diversas situações, desde um simples servidor de e-mails até um servidor de repasse de e-mails.
Em que situação o tema útil:
O conteúdo apresentado neste artigo auxiliará os usuários que necessitam implantar um servidor de e-mail que utiliza uma conexão segura para comunicação de dados (POP3 e IMAP) entre os clientes e o servidor, além de um webmail com tecnologias CSS2, AJAX e XHTML.
Postfix, Courier e Roundcube:
Este artigo apresenta a instalação e configuração do servidor Postfix na distribuição Ubuntu, utilizando-se de modo texto e modo gráfico para a configuração do mesmo. Ao término do artigo, o leitor terá um servidor Postfix em pleno funcionamento.
Inúmeras reportagens na Internet sugerem o fim do e-mail, sendo este substituído por mensagens instantâneas ou mesmo por redes sociais. Nota-se que, atualmente, as empresas estão cada vez mais ágeis, utilizando dentro de suas estruturas a comunicação online. Contudo, apesar de todo esse murmúrio, certamente o e-mail ainda será utilizado por muito tempo.
Neste cenário, existem diversos servidores de e-mail na Internet, cada qual com seu software gerenciador. Dentre os mais utilizados estão o Sendmail, Postfix e Qmail. Apesar de o Sendmail ser robusto, sua configuração e manutenção são complexas e, com isso, muitos administradores optam pelo Postfix.
Vale reforçar que um servidor de e-mail tem a incumbência de enviar e receber e-mails apenas através do protocolo SMTP (Simple Mail Transfer Protocol - Protocolo Simples de Transferência de Correio). Toda interação do usuário com o servidor de e-mail é feita através de um webmail ou de um cliente de e-mail, sendo que estes são configurados para acessar o servidor através de POP3 (Post Office Protocol – Protocolo de Agência de Correio) ou IMAP (Internet Message Access Protocol – Protocolo de Acesso a Mensagens da Internet). Para que essa comunicação entre os clientes e o servidor ocorra, os dois protocolos devem estar instalados e configurados no servidor de e-mail, sendo gerenciados pelo Courier ou Cyrus.
O Cyrus é um servidor de e-mail com alta escalabilidade, tendo como foco o mercado corporativo, uma vez que utiliza-se de controles de cotas, hierarquia, autenticação e filtros. Já o Courier é uma suíte completa contendo desde um servidor de e-mail até um webmail, sendo voltado para qualquer necessidade de envio e recebimento de e-mails.
Com base em tudo isso, este artigo será focado na instalação e configuração do servidor de e-mail Postfix, apresentando a configuração através do terminal e, também, através de um programa gráfico que utiliza o navegador como interface de configuração.
Histórico
O Postfix foi lançado em 1998 no Centro de Pesquisas da IBM por Wietse Venema como uma alternativa ao servidor de correio Sendmail. A ideia era criar um servidor rápido, de fácil configuração e administração, além de seguro.
Atualmente, o Postfix está na versão 2.9.4, sendo oferecido através de pacotes para diversas distribuições Linux, Unix, BSD, AIX, HP-UX, Mac OS X, Solaris, dentre outros. Além dos pacotes, no sítio do Postfix[1] está disponibilizado o código fonte que pode ser compilado para qualquer sistema que seja baseado em Unix.
Instalação
Para demonstrar a instalação do Postfix será utilizada a distribuição Linux Ubuntu, sendo que recomendamos para a utilização em servidores de produção, as distribuições Debian e Slackware.
Pode-se instalar o Postfix mais facilmente através dos pacotes que já vêm nas próprias distribuições, ou através do binário encontrado no site do Postfix. Muitas vezes os pacotes disponibilizados nas distribuições não são os da última versão do Postfix, porém, é uma versão estável e já testada e, com isso, não haverá problemas de conflitos e/ou incompatibilidades. Nas diversas distribuições Linux existentes, pode-se utilizar a versão em testes ou ainda a instável deste servidor de e-mails, entretanto, para um servidor em produção, isso não é recomendado.
A instalação do Postfix no Ubuntu pode ser feita utilizando-se do Terminal ou pela Central de Programas.
O Terminal pode ser encontrado no Ubuntu, na interface clássica, acessando-se o menu Aplicativos > Acessórios > Terminal. Já na versão do Ubuntu com interface Unity (versões mais recentes), clique no logotipo do Ubuntu e digite terminal para encontrar o programa. Dentro do terminal, execute o comando:
sudo apt-get install postfix
Ao pressionar Enter será iniciada a instalação do Postfix e das dependências necessárias para que o servidor de correio funcione corretamente.
Já a Central de Programas do Ubuntu (ou Ubuntu Software Center), para as versões acima da 9.04 do Ubuntu, encontra-se no menu Aplicativos. Para a versão clássica da interface gráfica, ou na interface Unity, a Central de Programas encontra-se na barra do menu abaixo do logo do Ubuntu.
Após iniciar a Central de Programas, na caixa de pesquisa apresentada na Figura 1 (A), digite “postfix” e tecle Enter. O retorno da busca será exibido na janela logo abaixo da caixa de pesquisa, aparecendo uma linha contendo a opção High-performance mail transport agent – postfix, o botão Mais informações (Figura 1 (B)), e o botão Instalar (Figura 1 (C)). Ao clicar no botão Mais informações, será aberta uma nova tela que mostrará uma descrição completa do aplicativo a ser instalado. Veja a Figura 2.
Figura 1. Janela da Central de Programas do Ubunutu: (A) campo de pesquisa (B) botão de mais informações e (C) botão para instalar.
Figura 2. Descrição do Postfix com o botão Instalar em destaque.
Nessa página, descendo a barra de navegação lateral, serão apresentados os complementos do Postfix (Figura 3), isto é, os programas que auxiliam o Postfix em determinadas tarefas. Por exemplo, pode-se integrar o servidor de correio a um servidor LDAP da rede.
Figura 3. Complementos do Postfix.
Após selecionar os complementos adequados à sua realidade, clique no botão de Instalar (Figura 2 (C)). No caso da instalação básica do Postfix, não é necessário clicar em nada além desse botão.
Ao clicar em Instalar, a Central de Programas do Ubuntu instalará automaticamente todos os pacotes necessários para que o Postfix funcione corretamente.
Durante a instalação, tanto através do Terminal quanto através da Central de Programas do Ubuntu, aparecerá uma janela para a configuração do servidor de correio – Terminal (Figura 4) e Central (Figura 5) – a qual solicita o Tipo geral da configuração de mail. Nesse momento devem ser analisadas as necessidades locais, pois para resolver determinadas situações, pode ser melhor uma determinada configuração que, quando utilizada em outra ocasião pode não ser adequada. Dentre as opções, tem-se: Sem Configuração, Site Internet, Internet com Smarthost, Sistema Satélite e Apenas Local.
Figura 4. Escolha da configuração do servidor na instalação via Terminal.
Figura 5. Escolha da configuração do servidor na instalação via Central de Programas do Ubuntu.
Sem Configuração
Nada será solicitado para configuração do servidor de correio nesse momento, porém, serão criados os arquivos de configuração padrão que foram escritos pelos desenvolvedores do Postfix. Esses arquivos de configuração, posteriormente, poderão ser analisados e configurados conforme a necessidade. Eles estão localizados em /etc/postfix;
Site Internet
Esta é a opção padrão. Com essa configuração o servidor enviará e receberá e-mails diretamente através do servidor Postfix. Ela é recomendada para quase todos os casos de utilização do Postfix.
Selecionada a opção padrão (Site Internet), clica-se em Avançar (na Central de Programas do Ubuntu) ou Ok (no Terminal). Em seguida, aparecerá a tela solicitando o nome que será dado ao servidor de e-mail – Terminal (Figura 6) e Central de Programas (Figura 7). Recomenda-se, como para qualquer servidor, que não sejam utilizados nomes contendo caracteres especiais ou espaços. Após o preenchimento, clica-se em próximo e será iniciada a instalação do Postfix.
Figura 6. Tela para preenchimento do nome do servidor na instalação via Terminal.
Figura 7. Tela para preenchimento do nome do servidor na instalação via Central de Programas do Ubuntu.
Ao término da instalação através do Terminal, será exibida uma tela semelhante à Figura 8. Logo em seguida o servidor Postfix é inicializado e já estará em funcionamento.
Figura 8. Tela do Terminal apresentando o término da instalação do Postfix.
No caso da instalação através da Central de Programas, ao término será apresentada uma tela semelhante à Figura 9, na qual, além dos programas que foram instalados para auxiliar na administração do Postfix, também é exibido o botão Remover, que pode ser selecionado para desinstalar o serviço de e-mail.
Figura 9. Tela apresentando os diversos programas instalados, no detalhe, juntamente com a instalação do Postfix e o botão de remover.
Internet com Smarthost
Nesta opção, os e-mails poderão ser enviados e recebidos através do próprio servidor que está sendo instalado, ou pode-se utilizar outro software/servidor para realizar esse serviço. Muitas vezes algumas aplicações, por exemplo, alguns sistemas internos de empresas ou mesmo ambientes de ensino à distância, acabam por gerenciar todo o envio e recebimento das mensagens sem a necessidade do gerenciamento através do Postfix.
Sistema Satélite
A grande maioria dos servidores de e-mail presentes da Internet, sempre que recebem um e-mail, verificam sua origem pesquisando em servidores de DNS o domínio que consta no remetente do e-mail. Se nessa verificação o servidor que enviou o e-mail não estiver registrado em nenhum servidor de DNS, esse e-mail é automaticamente inserido na caixa de spam do usuário ou, em alguns casos, é excluído.
O Sistema Satélite é utilizado quando se está em uma estrutura de rede diferenciada, pois em algumas instituições a estrutura de servidores é administrada por empresas/pessoas terceirizadas e que não estão o tempo todo disponíveis para alterar configurações dos servidores.
Em alguns projetos, faz-se necessário um servidor de e-mail com configurações específicas, diferentes do servidor principal, e este novo servidor deve estar registrado no servidor de DNS para que não tenha problemas na entrega dos e-mails, conforme explicado anteriormente. Caso não seja possível a inclusão do novo servidor de e-mail no DNS, uma alternativa é fazer com que todos os e-mails deste servidor sejam enviados pelo servidor principal, fazendo com que os servidores destinatários aceitem os e-mails (Figura 10).
Figura 10. Esquema gráfico do Sistema Satélite.
No exemplo da Figura 10, todos os e-mails enviados pelo servidor B serão entregues para o servidor A (Servidor de E-mail Principal registrado no DNS), que enviará esses e-mails como se fosse dele próprio.
No caso, o Servidor de E-mail de Projeto (B) não está registrado no servidor de DNS, e com isso praticamente todos os servidores de correio (Gmail, Yahoo, Hotmail, etc.) ou recusarão os e-mails enviados ou colocarão os e-mails como Spam.
Ao receber um e-mail, o servidor A verificará que é para o servidor B e o encaminhará para o mesmo. Para os usuários, todo esse processo de envio e reenvio é transparente.
A configuração de Sistema Satélite também é utilizada com estruturas menores. Por exemplo, um servidor de correio (servidor B) não registrado em um servidor de DNS e o servidor de entrega sendo o servidor do Gmail (servidor A).
Apenas Local
Alguns sistemas dependem da instalação de um servidor de e-mail para que funcionem corretamente, porém, os e-mails são enviados apenas como mensagens entre os usuários do sistema. Uma vez que os e-mails não sairão para outros servidores na Internet, por motivos de segurança, a utilização da configuração Apenas Local é a mais indicada, pois entregará os e-mails apenas aos usuários locais do servidor de e-mails, como se não existisse uma rede para comunicação externa com outros servidores.
Independente de qual método de instalação for utilizado, alguns daemons (processos em background) serão iniciados. Alguns dos processos que podem aparecer após a instalação e inicialização do Postfix são:
• master: responsável por gerenciar os outros daemons que farão o envio e recebimento das mensagens na rede e localmente;
• smtpd: responsável por tratar as requisições SMTP, além de aplicar algumas filtragens (remetentes, destinatários, etc.);
• qmrg: responsável por gerenciar a fila de mensagens que chegam e que devem ser entregues.
Teste do servidor de correio instalado
Após a instalação do Postfix, para testar se realmente está tudo funcionando, utiliza-se o programa telnet. Este é um protocolo cliente-servidor para comunicação entre computadores que já vem instalado no Ubuntu.
Deste modo, no terminal, digite e execute a sequência da Listagem 1.
Listagem 1. Sequência de teste do postfix
telnet localhost 25
MAIL FROM: teste
RCPT TO: thiago
DATA
Teste de e-mail.
.
QUIT
Ao término, a tela do terminal será semelhante à Figura 11. Note que a cada comando o servidor de correio responde algo. Ainda na Figura 11, destacado pela seta está o comando “MAIL FROM: teste”, que será enviado ao servidor dando-se Enter. Na linha subsequente aparece a resposta do servidor, contendo alguns números e a palavra Ok. Essa resposta significa que o comando foi recebido e interpretado pelo servidor corretamente. No destaque em caixa é exibido o número de identificação do e-mail, em hexadecimal. A cada e-mail que o servidor de correio recebe, estes são inseridos em uma fila de mensagens a serem entregues.
Figura 11. Tela do terminal exibindo o teste de envio de e-mail. Em destaque (na caixa), o número atribuído à mensagem ao ser inserida na fila do servidor de correio.
As linhas digitadas no terminal referem-se aos itens mínimos para o envio de uma mensagem de e-mail.
A descrição dos comandos executados é:
- telnet localhost 25: faz a comunicação entre o usuário e o servidor de correio. No caso, localhost faz referência à máquina local, e 25 é a porta padrão de comunicação com servidores de correio;
- MAIL FROM: teste: Nesta linha será indicado o remetente do e-mail. No exemplo, teste seria um usuário do sistema de correio que supostamente estaria enviando o e-mail. No entanto, como não é verificada a existência do usuário no servidor de origem, será aceita qualquer coisa escrita nesse campo;
- RCPT TO: thiago: Aqui indica-se o destinatário do e-mail. O usuário thiago é um usuário existente e válido no sistema, pois se não o fosse, o servidor de correio recusaria o e-mail por não conhecer o destinatário;
- DATA: Esse comando indica ao servidor de correio que a partir dessa linha tudo que estiver escrito deve ser colocado no corpo do e-mail;
- Teste de e-mail: Mensagem do corpo do e-mail;
- .: Para finalizar a mensagem, é obrigatória a inserção de uma linha com apenas ponto (.);
- QUIT: Comando para sair do telnet e voltar ao prompt de comandos.
No exemplo realizado na Figura 11, o envio do e-mail aconteceu corretamente, pois o servidor respondeu com o número de identificação do e-mail inserido na fila de entrega. Para confirmar a entrega do e-mail do exemplo, analisa-se a caixa de correio do usuário que o deveria ter recebido. No exemplo supracitado, o usuário do servidor de correio utilizado foi thiago, e através do terminal, com o comando cat, pode-se visualizar o e-mail enviado (Figura 12). Para tanto, digite no terminal o comando:
cat /var/mail/thiago
Figura 12. Tela do terminal exibindo o conteúdo do arquivo de correio do usuário thiago.
Note que o número de identificação do envio da mensagem (Figura 11) é o mesmo do recebimento (Figura 12). Como não foi identificado o domínio do e-mail (o que vem após o @ no endereço), o servidor assumiu o destinatário como sendo do próprio domínio (mirnavbx).
Interagindo com os e-mails
Atualmente, os usuários comuns não utilizam programas de terminal como o mutt ou mail para a visualização de e-mails, pois os usuários interagem melhor e mais facilmente com interfaces gráficas e principalmente através do navegador.
Nesse contexto, a utilização de programas como o Cyrus ou Courier é praticamente obrigatória para a utilização de um servidor de correio, pois se nenhum deles estiver instalado, os usuários só conseguirão verificar suas caixas de correio se estiverem localmente no servidor de correio. Programas de webmail ou clientes de e-mail dependem desses programas para se comunicarem com o servidor de correio e receber e enviar os e-mails dos usuários do servidor.
O Courier é uma suíte completa para auxiliar a comunicação entre o usuário e o servidor de e-mail e, por ser tão completo, contendo um servidor de e-mails e até webmail, é muito utilizado, sendo muitas vezes instalado por completo e utilizado como servidor de correio. No entanto, na grande maioria dos casos, que podem ser encontrados na Internet, utiliza-se juntamente a um servidor de e-mail as ferramentas do Courier para auxiliar na entrega dos e-mails aos usuários de forma mais agradável, como no caso deste artigo. A não “popularização” do Courier como servidor MTA padrão se deve ao fato das distribuições Linux terem adotado como padrão o Postfix e o Exim, porém nada impede que o administrador baixe, através do site do Courier, e configure manualmente a solução.
O Courier (Couriermail transfer agent – MTA) é um servidor de correio e groupware baseado em protocolos abertos. Em sua lista de funcionalidades estão o ESMTP, IMAP, POP3, webmail e serviço de lista de e-mails, sendo que se pode instalar cada componente individualmente.
O Postfix, por sua vez, não provê a comunicação através dos protocolos POP3 e IMAP e, com isso, serão utilizados os dois protocolos que são fornecidos pelo Courier, pois aplicativos como o Outlook, Thunderbird ou mesmo um webmail, necessitam que o servidor compreenda os dois protocolos para que o usuário consiga acessar/baixar os seus e-mails.
O protocolo POP3 é utilizado para acessar remotamente uma caixa de correio, permitindo que as mensagens do servidor de correio sejam transferidas sequencialmente para o computador local.
O protocolo IMAP também é utilizado para acessar remotamente uma caixa de correio, porém, não transfere as mensagens do servidor de correio para o computador local. Ele permite ao usuário gerenciar sua conta de qualquer computador através de um webmail ou um cliente de correio.
A utilização do SSL (Secure Sockets Layer– Protocolo de Camada de Sockets Segura) é recomendada, uma vez que a comunicação entre o computador do usuário e o servidor pode ser interceptada. Com a utilização dessa camada, a comunicação passa a ser criptografada de uma ponta a outra.
A instalação do Courier pode ser feita, como a do Postfix, através do Terminal ou da Central de Programas do Ubuntu, e para que tudo funcione corretamente, será necessária a inserção de uma linha no arquivo de configuração do Postfix (/etc/postfix/main.cf), que posteriormente será detalhadamente explicada. Sendo assim, execute o seguinte comando no terminal:
sudo sh -c "echo 'home_mailbox = Maildir/' >> /etc/postfix/main.cf"
Para instalação no terminal, digite:
sudo apt-get install courier-pop-ssl courier-imap-ssl
Ao pressionar Enter, o Ubuntu listará os pacotes que serão instalados e questionará se realmente deseja instalá-los (Figura 13). Digite S ou Y (a depender da versão do Ubuntu instalada – Português ou Inglês).
Figura 13. Tela do Terminal apresentando a instalação do Courier.
Logo em seguida, os pacotes necessários para que o Courier, POP3 e IMAP funcionem corretamente, serão baixados e instalados.
Para realizar a instalação do Courier através da Central de Programas do Ubuntu, pesquise por courier ssl no campo de pesquisa – Figura 14 (A). Como resultado, aparecerão diversos aplicativos baseados no Courier. Selecione o aplicativo Courier Mail Server – POP3 over SSL e clique em Instalar – Figura 14 (B).
Figura 14. Central de Programas do Ubuntu. (A) campo de pesquisa e (B) botão para instalar o aplicativo.
O Courier utiliza diversos arquivos de configuração que ficam dentro do diretório /etc/courier após a instalação. Alguns desses arquivos podem ser substituídos por um subdiretório que o conteúdo pode ser concatenado e tratado como um único arquivo de configuração.
Durante a instalação aparecerá uma janela de configuração do Courier-Base – Terminal (Figura15) e Central de Programas (Figura 16), questionando sobre qual método utilizar para o armazenamento dos arquivos de configuração do Courier. No terminal, escolhe-se Não, pois toda a configuração, tanto do Courier quanto do Postfix, será feita localmente. A opção Sim pode ser utilizada quando o Courier for o servidor de correio e se quer administrá-lo através da web. Na Central de Programas, mantenha desmarcada a caixa de seleção (igual à Figura 16) e clique em Avançar.
Figura 15. Configuração do Courier-Base durante a instalação através do terminal.
Figura 16. Configuração do Courier-Base durante a instalação através da Central de Programas.
Em seguida, aparecerá a tela da Figura 17 (Terminal) ou Figura 18 (Central de Programas) informando que será necessária a criação de um certificado SSL (Secure Sockets Layer – Camada de Sockets Segura). Essa camada de segurança é a mesma utilizada nos Internet Banking para que os dados transmitidos entre o cliente e o servidor sejam criptografados. Na criação do certificado X.509 são inseridas informações do servidor de correio juntamente com uma chave criptográfica que será enviada ao cliente de e-mail no momento do pedido de conexão ao servidor. Nesse momento inicia-se o estabelecimento da conexão criptografada entre o usuário e o servidor de correio.
Figura 17. Tela informando a configuração do courier-SSL no Terminal.
Figura 18. Tela informando a configuração do courier-SSL na Central de Programas
Ao término da instalação, o terminal liberará o prompt de comando, exibindo uma tela semelhante à Figura 19. No caso da instalação através da Central de Programas, o término da instalação resultará em uma tela semelhante ao término da instalação do Postfix, com a opção de desinstalar.
Figura 19. Tela do terminal exibindo o término da instalação dos pacotes Courier.
A instalação através do terminal já terminou, porém, para a Central de Programas, ainda falta instalar o aplicativo Courier Mail Server – IMAP over SSL. Deste modo, selecione o aplicativo Courier Mail Server – IMAP over SSL, presente na tela da Central de Programas, onde foi instalado o aplicativo Courier Mail Server – POP3 over SSL, e clique em Instalar (ver Figura 20).
Figura 20. Central de Programas do Ubuntu. Em destaque, o botão para instalar o aplicativo.
Após a instalação dos pacotes e criação do certificado e chaves de criptografia, os servidores Courier POP3, POP3-SSL, IMAP e IMAP-SSL são iniciados e estão prontos para receberem solicitações através de um cliente de e-mails, tanto no modo POP3 ou IMAP quanto utilizando SSL.
Cliente via WEB – Webmail
A utilização de e-mails através de um webmail facilita a vida dos usuários de servidores de correio por não necessitar de configurações de contas de e-mails em clientes e estações de trabalhos, sendo necessário apenas um navegador e Internet.
Dentre os diversos softwares para a utilização de webmails, destacam-se o SquirrelMail [7], o Open Webmail [8] e o Roundcube [9]. O SquirrelMail estava presente em quase todos os servidores com webmail pela facilidade de uso, pois contém estritamente o necessário. No entanto, com o passar dos anos, os usuários ficaram mais exigentes com as interfaces e também com a segurança de suas informações e correspondências.
O Roundcube é um cliente de e-mail escrito na linguagem PHP e que utiliza AJAX, CSS2 e XHTML para conseguir agradar os usuários. Mesmo estando na versão 0.8.1, o software continua em pleno desenvolvimento, sendo utilizado por grandes instituições e até mesmo por universidades com grande quantidade de usuários, como a Universidade de Harvard [10], além de disponibilizar diversos plug-ins, como calendário, emoticons e reCAPTCHA (caixa de diálogo em que aparecem palavras a serem escritas pelo usuário, como recurso de segurança). O início do desenvolvimento ocorreu em agosto de 2005, porém, a primeira versão estável foi disponibilizada apenas em 2008. Por ser um software livre, seu desenvolvimento é baseado na licença GPL (GNU General Public License - Licença Pública Geral) [11].
Para que o Roundcube seja instalado e funcione corretamente, é necessário que antes da instalação sejam fornecidos alguns softwares, a saber: Apache, MySQL e PHP. Apesar do Ubuntu instalar automaticamente todas as dependências necessárias para que o Roundcube funcione, sugere-se que os três softwares citados já estejam instalados e funcionando corretamente.
A instalação do Roundcube através do Terminal segue o mesmo procedimento já utilizado na instalação do Postfix e do Courier. Com o Terminal aberto, digite:
sudo apt-get install roundcube
Ao pressionar Enter, o Ubuntu listará os pacotes que serão instalados e questionará se realmente deseja instalá-los (Figura 21). Novamente, digite S ou Y (a depender da versão do Ubuntu instalada – Português ou Inglês).
Figura 21. Tela do Terminal apresentando a instalação do Roundcube.
Logo em seguida, os pacotes necessários para que o Roundcube funcione corretamente serão baixados e instalados. Neste processo, aparecerá uma janela questionando sobre a configuração da base de dados (Figura 22).
Figura 22. Tela do Terminal sobre a configuração do roundcube-core.
Nesta tela, escolha Sim para que o instalador já configure as opções mínimas necessárias. Feito isso, na tela seguinte é questionada a Base de Dados a ser utilizada: mysql (MySQL) ou pgsql (PostgreSQL). Como já foi instalado o Banco de Dados MySQL, deve-se selecionar esta opção (Figura 23).
Figura 23. Escolha do Banco de Dados para utilização do roundcube.
Após selecionar o Banco de Dados, será solicitada a senha do administrador do MySQL. Ao informar a senha e escolher Ok, a próxima tela solicitará uma senha a ser utilizada para registrar o Roundcube no MySQL. Neste momento pode-se optar por deixar a senha em branco. Deste modo o sistema gerará uma senha aleatória e já a colocará nas configurações do Roundcube e também do MySQL.
Ao término da instalação, o terminal liberará o prompt de comando. Durante a instalação foram criadas as tabelas e usuários no MySQL e, também, foram inseridas as configurações necessárias ao Apache e ao PHP, além da instalação do próprio Roundcube.
Após a liberação do prompt de comandos, execute:
sudo ln -s /usr/share/roundcube /var/www/roundcube
Este comando criará um link para que se possa acessar o Roundcube através do navegador pelo endereço: http://127.0.0.1/roundcube.
Ao acessar este endereço, aparecerá no navegador uma tela de login. Ao inserir o usuário criado no Ubuntu com a respectiva senha, e clicar em Login, os dados serão validados pelo servidor de correio e aparecerá uma tela semelhante à Figura 24.
Figura 24. Tela do Roundcube acessando a caixa de correio.
No menu do Roundcube, ao se escolher a opção Escrever Nova Mensagem, a tela que aparecerá será semelhante à Figura 25, onde se pode escolher entre um texto puro ou em HTML. Todo o esquema de formatação de texto está disponível, além da inserção de anexos e a verificação ortográfica do texto digitado.
Figura 25. Tela de envio de e-mails do roundcube.
Caso queira, o usuário poderá alterar as configurações em Settings e escolher, por exemplo, o idioma Portuguese (Brasil), modificando automaticamente toda a interface do Roundcube para o novo idioma (Figura 26). Dentre as várias configurações permitidas, o usuário pode personalizar o formato de exibição dos e-mails dentro do ambiente ou até criar pastas para organizar os e-mails.
Figura 26. Tela de configuração da interface do usuário do Roundcube.
Configuração
Após as instalações dos softwares necessários para o funcionamento do Postfix com POP3 e IMAP seguros e utilizando-se do webmail, deve-se configurar corretamente o servidor. A configuração padrão funcionará bem, porém quando se compreende os parâmetros que podem ser ajustados no servidor, este funcionará muito melhor e dentro das expectativas do usuário.
A configuração do Postfix pode ser feita através da edição do arquivo de configuração ou através de interfaces gráficas. A segunda opção é muito utilizada, principalmente por usuários inexperientes ou na primeira vez em que se está configurando o servidor. Após instalar e configurar algumas vezes o Postfix nota-se que pouca coisa muda de uma instalação para outra, por exemplo: o nome do servidor e o domínio. Com isso, administradores mais experientes normalmente apenas substituem o arquivo de configuração instalado originalmente por um arquivo de configuração que já foi utilizado e configurado em outra instalação.
Os arquivos de configuração do Postfix encontram-se no diretório /etc/postfix/, sendo eles:
- master.cf: Neste arquivo o Postfix gerencia todos os processos necessários para sua execução, indicando o tipo do processo e a quantidade máxima de processos que cada serviço poderá executar;
- main.cf: Este é o arquivo dos parâmetros de configuração do servidor de correio. Nele existem mais de 280 parâmetros diferentes para serem configurados dependendo das necessidades. Tais opções podem ser consultadas no arquivo /usr/share/postfix/main.cf.dist. O main.cf instalado pelo Ubuntu contém apenas 20 parâmetros, sendo que dois deles estão desabilitados por padrão.
A Listagem 2 apresenta o arquivo /etc/postfix/main.cf, sendo que as linhas foram numeradas para facilitar a explicação durante o texto.
Listagem 2. Arquivo de configuração MAIN.CF do Postfix.
1. #myorigin = /etc/mailname
2. smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
3. biff = no
4. append_dot_mydomain = no
5. #delay_warning_time = 4h
6. readme_directory = no
7. smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
8. smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
9. smtpd_use_tls=yes
10.smtpd_tls_session_cache_database=btree:${data_directory}/smtpd_scache
11.smtp_tls_session_cache_database=btree:${data_directory}/smtp_scache
12.myhostname = mirnavbx
13.alias_maps = hash:/etc/aliases
14.alias_database = hash:/etc/aliases
15.mydestination = mirnavbx, localhost.localdomain, localhost
16.relayhost =
17.mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
18.mailbox_size_limit = 0
19.recipient_delimiter = +
20.inet_interfaces = all
A linha 1 da Listagem 2 é utilizada apenas pela distribuição Debian, servindo para designar o nome do domínio. Note que o símbolo # faz com que a linha seja desabilitada. Caso seja necessário, pode-se habilitar a linha retirando o #, e no lugar de /etc/mailname, insere-se o domínio desejado (o que vem após o @ no endereço de e-mail).
A linha 2 refere-se ao que é apresentado quando o usuário se conecta no servidor de correio. Um exemplo da execução dessa linha pode ser observado na Figura 11, onde é exibida a linha 220 mirnavbx ESMTP Postfix (Ubuntu). Caso seja necessário, pode-se trocar a mensagem de boas-vindas do servidor.
Na linha 3, caso esteja utilizando o serviço local biff, troque para yes. Esse serviço notifica o usuário do Unix da chegada de uma nova mensagem no servidor de correio.
A linha 4 evita que o servidor auxilie o usuário na colocação do domínio após o que foi digitado no endereço. Esta opção, por padrão, é setada para no (não), pois se estivesse com yes, para todos os endereços de e-mail digitados, seria inserido no final deste, novamente o domínio do servidor, ficando, por exemplo: thiago@mirnavbx.com.br.mirnavbx.com.br (este último, inserido pelo servidor).
Muitas vezes o usuário recebe uma mensagem do servidor de correio informando que uma determinada mensagem enviada por ele ainda não pode ser entregue. A linha 5 é a responsável por determinar após quanto tempo o usuário deve ser avisado de uma mensagem ainda não ter sido entregue. As unidades utilizadas são: s (segundos), m (minutos), h (horas), d (dias), w (semanas).
A linha 6 indica ao usuário onde encontrar os arquivos do Postfix com explicações de como recompilar seus arquivos fonte. Esse parâmetro recebe no (não), pois o Ubuntu utiliza pacotes já compilados e torna-se desnecessário qualquer tipo de explicação de recompilação de fontes.
O conteúdo entre as linhas 7 e 11 refere-se à localização e utilização do SSL, e não devem ser modificado.
A linha 12 indica o nome do servidor de correio. Vale lembrar que na instalação do Postfix o nome do servidor foi solicitado. Este nome pode ser alterado nessa linha.
As linhas 13 e 14 referem-se aos “apelidos” dos usuários do servidor de e-mails presentes no arquivo /etc/aliases. Para que o administrador do servidor não tenha que verificar diversas contas de e-mail (root, postmaster, webmaster, etc.), basta inserir o novo apelido ao root e, todos os e-mails cairão diretamente em uma caixa de entrada única.
Na linha 15 estão os domínios válidos que receberão as mensagens.
A linha 16 é utilizada para que as mensagens sejam entregues por outro servidor. Esta linha apenas é habilitada no caso da configuração do Postfix como sistema satélite ou internet com smarthost. Neste caso, deve-se informar o endereço do servidor que tratará o e-mail, realizando a entrega ou envio.
A linha 17 obriga que as mensagens sejam enviadas localmente, ou seja, apenas as mensagens geradas pelo próprio servidor poderão ser enviadas. Caso este servidor seja um relayhost (explicado anteriormente como sistema satélite) de outro servidor, deve-se colocar o endereço da rede do outro servidor em questão.
A linha 18 indica o tamanho da caixa de mensagens de cada usuário, quando se utiliza um mailbox. O valor 0 (zero) indica que este parâmetro está desabilitado.
A linha 19 especifica um delimitador entre o nome do usuário e as extensões do endereço. Seu uso, que pode ser “+” (por padrão) ou “-“ (adotado em sites baseados em JavaScript), auxilia o usuário na criação de uma etiqueta de e-mail. Um exemplo disso é verificado ao se cadastrar em um site, quando adotamos, por exemplo, o e-mail thiago+siteonline@meudominio.com.br. Deste modo, quando chegar algum e-mail ao servidor, este analisará se existe o usuário thiago+siteonline. Como não existirá, o servidor entregará para o usuário thiago, como normalmente faz, porém ficará marcado no cabeçalho do e-mail o destinatário original.
A linha 20 refere-se a qual interface de rede o Postfix responde. Normalmente, em servidores em produção, utiliza-se mais de uma interface de comunicação para evitar gargalos gerados por tráfegos internos. Nessa linha, define-se quais interfaces de rede poderão solicitar informações do servidor de e-mail. Por padrão, todas (all) as interfaces podem solicitar dados, porém em estruturas mais complexas de rede, pode ser que apenas uma interface de rede do servidor possa solicitar informações de e-mails e as outras serão utilizadas apenas para comunicação e troca de dados entre servidores, por exemplo.
Mailbox vs. Maildir
Muitos administradores de servidor de e-mails sabem configurá-lo pelo o que viram em um tutorial na Internet ou mesmo pelo padrão “próximo – próximo – próximo – concluir”. Quando assim, normalmente não conseguem analisar a melhor configuração para o armazenamento dos e-mails no servidor.
Pensando nesta questão, podemos dizer que existem dois tipos de armazenamento de e-mails no Postfix: Mailbox e Maildir.
O formato Mailbox armazena todas as mensagens do usuário em um único arquivo. Como exemplificado na Figura 12, todas as mensagens do usuário thiago estão em /var/mail/thiago. O formato Maildir, por outro lado, utiliza-se de uma estrutura de diretórios e arquivos independentes para arquivar cada mensagem.
Sendo assim, para acessar as mensagens através de IMAP, o formato Mailbox irá demorar mais para responder aos comandos, uma vez que todas as mensagens estão em um único arquivo e a cada comando (exclusão, alteração, etc.) este precisa ser reorganizado. No caso do Maildir, se uma mensagem é apagada, simplesmente apaga-se o arquivo referente à mensagem.
Tendo diferenciado os dois formatos de armazenamento, os administradores deverão definir qual a melhor opção para seus servidores de e-mail, obtendo assim um melhor desempenho no acesso às informações.
Interfaces Gráficas de Configuração
Inúmeros usuários ainda não têm muita familiaridade ou mesmo não estão habituados com linhas de comandos e preferem configurar os serviços de um modo visualmente mais fácil. Com isso, utilizam-se de programas que, através de um navegador, exibem as configurações para serem selecionadas por botões e caixas de texto. No site do Postfix [2] existe uma relação de diversas interfaces para auxiliar em sua configuração, e dentre elas, o Webmin se destaca por ser mais a utilizada. Apesar disso, nada impede que se testem outras opções.
Webmin
O Webmin é uma interface, via navegador, que auxilia na configuração de praticamente todos os serviços do Linux, desde a criação de usuários, configurações avançadas de um servidor de e-mails ou DNS, dentre outros serviços. No entanto, mesmo sendo útil para inúmeros usuários, ele foi retirado do repositório padrão do Ubuntu. Assim, para instalar o Webmin, este deverá ser baixado do seu site [3]. Para este artigo, o arquivo a ser baixado do Webmin deve ser o de extensão .deb (Ubuntu).
Para realizar a instalação do arquivo baixado há duas opções: através da linha de comando (Terminal) ou simplesmente com um duplo-clique no arquivo baixado. No caso da linha de comando, o comando dpkg (debian package – gerenciador de pacotes do Debian) auxiliará na instalação dos pacotes baixados manualmente.
Portanto, para instalar o Webmin, estando no Terminal e no mesmo diretório onde está o arquivo baixado, execute:
sudo dpkg -i webmin_1.590_all.deb
Como a instalação do Webmin depende de diversos outros serviços e pacotes que já deveriam estar instalados, como as bibliotecas libnet-ssleay-perl e libio-pty-perl, ocorrerão alguns erros durante a execução do comando anterior. Felizmente, não é preciso se preocupar com os pacotes e serviços faltantes, pois no Ubuntu o comando apt resolve o problema desses pacotes e instalações incompletas. Para que o Webmin termine de ser instalado, após o dpkg, execute o comando:
sudo apt-get -f install
Esse comando pode ser utilizado para qualquer pacote .deb que tenha sido instalado através do dpkg e, como no caso do Webmin, não haviam todas as dependências previamente instaladas.
No caso de optar pelo duplo-clique, será aberta a Central de Programas do Ubuntu com o Webmin selecionado, conforme demonstra a Figura 27. Nesta tela, basta clicar em Instalar. Nesse caso, não é necessário nenhum outro comando, pois todas as dependências serão instaladas automaticamente.
Figura 27. Tela da Central de Programas para instalação do webmin. Em destaque, o botão de Instalar.
Executado os passos para a instalação do Webmin, este estará instalado e funcionando, caso não ocorra nenhum erro. Para acessá-lo da própria máquina onde foi instalado, abra o navegador e, na barra de endereços, informe:
https://127.0.0.1:10000
Em servidores em produção, normalmente, não são instaladas interfaces gráficas – para não ocupar desnecessariamente recursos do servidor ou por medida de segurança, para que usuários inexperientes não utilizem o servidor como uma estação de trabalho.
Com isso, a utilização do Webmin deverá ser feita através de outro computador com qualquer sistema operacional que tenha um navegador e esteja conectado na mesma rede da máquina onde foram instalados o Webmin e o Samba. Nesse outro computador, deverá ser colocado na barra de endereços do navegador o endereço IP do servidor o qual se quer acessar. Ainda por medida de segurança, toda comunicação entre o cliente e o Webmin será feita através do protocolo de segurança SSL, por isso do acesso ser feito através de HTTPS.
A primeira tela que aparecerá é a de login. O usuário que deverá ser utilizado é o usuário criado na instalação do Ubuntu e a senha é a mesma definida para acessar o Linux com este usuário.
Após a instalação, pode-se criar novos usuários para acessarem o Webmin, porém esses usuários serão apenas para esse acesso, não funcionando como usuários do Ubuntu.
Nesse cenário, algo muito recomendado é a alteração da senha do usuário que gerenciará o Webmin, pois uma vez que se obtenha a senha do Webmin, pode-se acessar o servidor Ubuntu com a mesma senha.
Ainda falando em senhas, muitas vezes acontece de não nos lembrarmos de todas elas e, no caso de perda da senha de acesso do Webmin, esta poderá ser alterada executando-se o seguinte comando no terminal:
/usr/share/webmin/changepass.pl /etc/webmin usuário novasenha
O programa changepass, feito em Perl, faz parte do pacote do Webmin e auxiliará na alteração da senha perdida. Os parâmetros do comando a serem utilizados para essa alteração são:
- /etc/webmin: pasta onde estão os arquivos de configuração do Webmin;
- usuário: nome do usuário que se quer alterar a senha;
- novasenha: a nova senha para o usuário.
Feito o login, a tela inicial do Webmin exibirá as informações do sistema, além de um menu lateral com diversas opções para o gerenciamento do próprio Webmin, conforme ilustra a Figura 28. No centro da tela do navegador podem ser vistas a utilização do processador, memória e disco, além das versões do sistema operacional e do Webmin.
Figura 28. Tela inicial do Webmin.
Para verificar as configurações do servidor de e-mail Postfix, no menu lateral esquerdo, deve-se acessar o item Servidores > Postfix Mail Server. Ao selecionar esse item, aparecerá à direita as configurações do Postfix, como pode ser verificado na Figura 29.
Figura 29. Tela principal de configuração do Postfix.
Pela quantidade de opções que se encontram para cada item apresentado no menu de configurações do Postfix, a explicação da configuração completa através do Webmin resultaria em um novo artigo. Com isso, serão apresentadas algumas telas com os principais itens de configurações básicas, apresentadas anteriormente no arquivo main.cf.
Na Figura 29, ao selecionar Opções Gerais, será carregada uma tela semelhante à Figura 30, onde se pode ver o item Receber email de que domínios. Este item é o mesmo explicado anteriormente, na Listagem 2, e refere-se à linha 15.
Figura 30. Tela parcial das Opções Gerais de configuração do Postfix.
Selecionando-se a opção SMTP server options (Figura 29), será exibida uma tela semelhante à Figura 31. As opções de configuração presentes nessa tela referem-se ao envio e recebimento dos e-mails por parte do servidor. Um exemplo desta configuração já foi visto na Figura 11, na linha onde aparece a “saudação” do servidor ao usuário conectado (mirnavbx ESMTP Postfix (Ubuntu)). A opção SMTP greeting banner (“saudação”) foi configurada anteriormente na linha 2 da Listagem 2.
Figura 31. Tela de opções do servidor SMTP.
Por fim, pode-se verificar as mensagens recebidas pelo usuário clicando-se no item User Mailboxes (Figura 29), e posteriormente, selecionando o usuário desejado, obtém-se uma tela semelhante à Figura 32.
Figura 32. Listagem das mensagens do usuário.
Conclusão
O servidor Postfix é amplamente utilizado como servidor de correio na Internet pela sua robustez, facilidade de configuração e interação com outros aplicativos. As ferramentas gráficas para configuração do Postfix auxiliam a usuários sem muita afinidade com o mundo Unix, como também àqueles que já têm certa experiência, abrindo um leque de opções de configurações avançadas.
A integração do Postfix com o Courier para a entrega de mensagens utilizando-se POP3 e IMAP com e sem SSL ocorre de forma fácil e transparente, tanto para o administrador do servidor quanto para o usuário final, porém torna-se interessante, também, instalar e explorar as possibilidades que o Cyrus oferece.
Para oferecer uma boa interface ao usuário, o Roundcube foi escolhido para este artigo, porém se os usuários não forem tão exigentes quanto a isso, pode-se utilizar o SquirrelMail, já bem consolidado, ou mesmo o Open Webmail.
Apesar de este artigo ter abordado apenas os passos iniciais para criação de um servidor de e-mail, a integração com um bom antivírus e um bom antispam tornarão esse servidor ainda mais robusto e confiável. Atualmente, existem diversos antivírus e antispams gratuitos e pagos para servidores, portanto deve-se verificar o que melhor se adéqua à realidade financeira e também estrutural da sua empresa.
[1] Sítio Oficial do Postfix
http://www.postfix.org
[2] Softwares para interagir com o Postfix
http://www.postfix.org/addon.html
[3] Sítio do Webmin
http://prdownloads.sourceforge.net/webadmin/webmin_1.590_all.deb
[6] Sítio de Manuais do Postfix
http://www.postfix.org/postfix-manuals.html
[7] Sítio do
SquirrelMail – Webmail for Nuts.
http://squirrelmail.org/
[8] Sítio do Open Webmail.
http://openwebmail.org/
[9] Sítio do Roundcube.
http://www.roundcube.net
[10] Sítio do webmail da Universidade de Harvard.
http://www.spl.harvard.edu/webmail/
[11] Sítio com a GNU GPL
http://www.gnu.org/licenses/gpl.html
[12] Sítio com bom material sobre Postfix.
http://www.unitednerds.org/thefallen/docs/index.php?area=Postfix&tuto=Palestra-LinuxChix-2004