CIn/UFPE Sistemas de Informação Redes de Computadores Professor: Kelvin Lopes Dias Monitor: Edson Adriano Maravalho Avelar {kld,eama}@cin.ufpe.br Instalando o POSTFIX. Este tutorial irá mostrar como instalar um servidor de e-mail no linux. Para isso, foi utilizado uma máquina virtual com Ubuntu 12.04 rodando em um hospedeiro também com Ubuntu 12.04. Antes de iniciar a instalação é necessário verificar se o hospedeiro consegue se comunicar com a máquina virtual e se esta tem livre acesso à internet. Para isso, basta configurar a interface de rede da máquina virtual em modo bridge e associar a interface física do hospedeiro que fornece acesso à internet. A Figura 1, mostra um exemplo de configuração. Figura 1. Configuração de rede da VM Passos Preliminares: Acessando a máquina virtual via ssh. Primeiramente, acesse a máquina virtual diretamente pelo virtualbox. Verifique se ela está conectada à Internet. Exemplo: ping 8.8.8.8 Antes de instalar qualquer pacote em um sistema linux, sempre atualize o repositório.
sudo apt-get update Por padrão os sistema linux mais modernos já possuem o cliente ssh. Porém, nem todos vêm com o servidor ssh previamente instalados. Instale o servidor ssh executando o seguinte comando. sudo apt-get install openssh-server Feito isso, a máquina virtual está quase pronta. Agora precisamos saber qual o IP foi atribuido à ela. ifconfig A Figura 2, mostra a saida do ifconfig destacando a interface que está conectada à interface e que pode ser alcançada pelo host. Neste caso, o IP é 192.168.1.19 Figura 2 Saída do ifconfig Agora, minimize a máquina virtual pois não vamos mais acessá-la diretamente. Abra um terminal no hospedeiro. E digite o comando abaixo, substituindo o nome_do_usuario pelo nome do usuário da sua máquina virtual e o ip_da_maquina_virtual pelo IP obtido no seu ifconfig exemplificado na Figura 2. ssh -X nome_do_usuario@ip_da_maquina_virtual O -X significa que você poderá requisitar interfaces gráficas da máquina remota. Como por exemplo, acessar o firefox ou gedit. Após rodar o ssh, ele perguntará se você realmente quer acessar esta máquina remota. Digite yes e depois enter. Figura 3. Comando SSH Em seguida pedirá a senha do usuário remoto. Digite sua senha da sua VM e confirme. Figura 4. ssh requisitando senha de usuário.
Se tudo der certo, você estará dentro da máquina virtual. A Figura 5 mostra a máquina remota acessada via ssh. Figura 5. Acesso à máquina remota concedido. Agora vamos para o que interessa. Instalar o POSTFIX. Todos os comandos abaixo deverão ser executado pelo terminal que está contectado remotamente à máquina virtual. Passo 1: Instalar o POSTFIX Atualize o repositório se já não o fez. sudo apt-get update Instale o POSTFIX. sudo apt-get install postfix Após rodar o comando. Ao instalar o postifx algumas telas de configurações são apresentadas. Na tela da Figura 6, apenas selecione o <ok> e confirme. Figura 6. Tela de configuração 1 do postfix.
Abaixo a próxima tela. Nesse caso escolha a opção Internet Site. Figura 7. Tela de configuração 2 do postfix. A próxima tela pede para escolhar o nome do sistem onde o servidor de e-mail será instalado. Deixe como está, selecione <ok> e tecle enter. Figura 7. Tela de configuração 3 do postfix.
Passo 2: Configurar o POSTFIX Primeiramente vamos criar um backup do arquivo de configuração do POSTFIX. sudo mv /etc/postfix/main.cf /etc/postfix/main.cf-default Após mover o arquivo de configuração padrão para um backup. Vamos criar um novo arquivo e inserir nossas configurações nele. sudo nano /etc/postfix/main.cf O comando acima cria um aquivo vazio. Preencha este arquivo segundo a Figura 8. Figura 8. Configurações Iniciais do POSTFIX É recomendado usar um editor de texto sem interface gráfica como nano, vi ou vim. Pois, nem sempre o servidor remote possui interface gráfica. Neste caso, a máquina remota possui servidor X 1, portanto é possível usar o gedit para modificar os arquivo. Lembrando que para requisitar interfaces gráficas do host remoto é necessário passar o -X no comando de conexão do SSH. Se você usar o nano, após preencher o arquivo, basta executar a sequência de teclas CTRL + O para salvar o arquivo e depois o atalho CTRL + X para sair do modo de edição do nano. Passo 3: Recarregar as configurações do POSTFIX sudo service postfix reload 1 http://www.vivaolinux.com.br/artigo/configuracao-universal-do-servidor-x-(modo-grafico)
Passo 4: Criar duas contas de usuário para teste. Criando usuário de nome usuario1 e senha usuario111 $sudo useradd -m usuario1 $sudo passwd usuario1 Digite a nova senha UNIX: usuario111 Redigite a nova senha UNIX: usuario111 Criando usuário de nome usuario2 e senha usuario222 sudo useradd -m usuario2 sudo passwd usuario2 Digite a nova senha UNIX: usuario222 Redigite a nova senha UNIX: usuario222 É possível ver os usuários adicionados no sistema através do comando: getent passwd cut -d \: -f1 Passo 5: Enviar um e-mail de teste com o telnet Acesse a porta 25 (SMTP) usando o telnet. telnet localhost 25 Execute a sequência de comandos linha por linha. Depois de cada linha aperte enter. HELO dominio.com.br MAIL FROM: usuario1 RCPT TO: usuario2 DATA From: "Remetente"<usuario1@dominio.com.br> TO: "Destinatario"<usuario2@domain.com.br> Subject: Assunto Content-Type: text/html <p>ola usuario2, estou na turma de SI do CIn aprendendo a configurar o POSTFIX.</p>. Após finalizar o e-mail, dê um QUIT para fechar a comunicação.
QUIT A Figura 9, mostra toda a sequência de comandos inclusive com as saída mostradas após cada comando. Figura 9. Enviando e-mail do usuario1 para o usuario2 usando telnet. Passo 6: Instalar o Serviço de Autenticação SASL 2 (Simple Authentication and Security Layer) O SASL é um framework para authenticação e segurança. Evita que usuário não autenticados usem o serviço de e-mail para enviar SPAMs. sudo apt-get install sasl2-bin Passo 7: Adicionando as configurações do SASL no POSTFIX Edite o arquivo de configurações do postfix sudo nano /etc/postfix/main.cf E adicione as linhas a seguir, logo abaixo das linhas já adicionadas da Figura 8. 2 http://en.wikipedia.org/wiki/simple_authentication_and_security_layer
[...] smtpd_sasl_auth_enable = yes broken_sasl_auth_clients = yes smtpd_sasl_authenticated_header = yes smtpd_helo_required = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination Essas linhas de configuração, basicamente habilitam a autenticação no postfix e barra qualquer tentativa de envio de email não autorizado. Após inserir as linhas digite CTRL + O (salvar) e CTRL +X (sair) Passo 8: Ativar o SASL Para ativar o SASL, serão necessárias duas mudanças no arquivo de configuração do SASL sudo nano /etc/default/saslauthd No início do arquivo, mude a linha: START=no para: START=yes No final do arquivo, mude a linha: OPTIONS="-c -m /var/run/saslauthd" para: OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r" Passo 8: Verificar se o usuário postfix possui o grupo sasl, senão adicione. No comando abaixo, vemos que o usuário postfix, possui apenas o grupo postfix. Para adicionar o grupo sasl execute o comando a seguir.
Execute novamente o comando, groups postfix. O resultado deve ser algo como: Passo 10: Configurar o serviço SMTP. sudo nano /etc/postfix/sasl/smtpd.conf Após criar o arquivo adicione as duas linhas a seguir. pwcheck_method: saslauthd mech_kist: plain login Passo 11: Reiniciar o POSTFIX e os serviços de autenticação do SASL. Reiniciando o POSTFIX: sudo service postfix restart Reiniciando o SASL: sudo service saslauthd restart Passo 12: Criar certificado TLS (Transport Layer Security). Crie o seguinte diretório sudo mkdir /etc/postfix/ssl Gere uma senha RSA de 1024 bits. sudo openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 Quando requisitado, digite uma senha para destravar o chaveiro. Guarde esta senha, ela será requisitada posteriormente. Minha Senha: postfix1234 Modifique a permissão de sua chave para que apenas o dono do arquivo tenha permissão de leitura e escrita. sudo chmod 0600 smtpd.key Agora vamos criar a requisição de certificado a partir da senha RSA criada anteriormente. openssl req -new -key smtpd.key -out smtpd.csr
Digite a senha do chaveiro smtpd.key configurada anteiormente. Deixa todas as configurações como estão dando enter até o final. A Figura 10, mostra a saida do comando anterior. A Figura 10. Criando o certificado digital a partir de uma senha RSA. Nesse passo criaremos o certificado propriamente dito. sudo openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt Novamente será requisitado a senha do chaveiro smtpd.key configurada anteriormente. Agora vamos validar o certificado. sudo openssl rsa -in smtpd.key -out smtpd.key.unencrypted Senha do chaveiro smtpd.key sudo mv -f smtpd.key.unencrypted smtpd.key Criando o arquivo PEM. sudo openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 Senha PEM: 123456789
Passo 13: Adicionar as configurações do TLS no POSTFIX sudo nano /etc/postfix/main.cf Adicionar no final do arquivo as linhas abaixo. [...] smtpd_tls_auth_only = yes smtp_use_tls = yes smtpd_use_tls = yes smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt smtpd_tls_cafile = /etc/postfix/ssl/cacert.pem smtpd_tls_loglevel = 1 Passo 14: reiniciar o POSTFIX sudo service postfix restart Passo 15: Instalar o Courier 3 sudo apt-get install courier-pop-ssl Passo 16: Ler o e-mail de teste com o telnet Acesse a porta 110 (POP3) pelo telnet. telnet localhost 110 Execute os seguintes comandos, dando enter após cada comando. USER usuario2 PASS usuario222 LIST Aqui deve lista todos os e-mail recebidos pelo usuário 2. Cada e-mail está listado por um número. Neste caso vamos recuperar o e-mail número 1. RETR 1 3 http://www.courier-mta.org/
A Figura 11 mostra a said dos comando executados para ler o e-mail recebido. Figura 11. Lendo e-mail recebido pelo usuário 2, enviado pelo usuário1