CIn/UFPE Sistemas de Informação Redes de Computadores ...bfs3/UFPE/Redes -...
Transcript of CIn/UFPE Sistemas de Informação Redes de Computadores ...bfs3/UFPE/Redes -...
CIn/UFPESistemas de InformaçãoRedes de Computadores
Professor: Kelvin Lopes DiasMonitor: 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 POSTFIXAtualize 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 X1, 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: usuario111Redigite a nova senha UNIX: usuario111
Criando usuário de nome “usuario2” e senha “usuario222”sudo useradd -m usuario2sudo passwd usuario2
Digite a nova senha UNIX: usuario222Redigite 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 telnetAcesse 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"<[email protected]> TO: "Destinatario"<[email protected]> 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 SASL2 (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óriosudo 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 Courier3
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