Servidor de E-mail • SMTP • POP3 Introdução • E-mail é sem dúvida a aplicação mais popular da Internet. • Em 1991, metade de todas as conexões TCP eram para o SMTP. • Atualmente, além do envio de mensagens, é possível também enviar áudio e vídeo anexados. • Para a sua compreensão, mostraremos quatro cenários diferentes, aumentando gradativamente a complexidade. 01/03/10 Cenário um • Remetente e destinatário são usuários no mesmo sistema estando diretamente conectados a um sistema compartilhado. • O administrador criou uma caixa de correio para cada usuário para armazenamento das mensagens recebidas. • Uma caixa de correio é um arquivo, ou diretório, especial com restrições de permissão. – Apenas o usuário proprietário tem acesso a ela. 01/03/10 Procedimento • Quando o remetente quer enviar uma mensagem ao destinatário, ele executa um programa agente de usuário (UA) para preparar a mensagem e armazena-la na caixa de correio do destinatário. • A mensagem tem os endereços (nomes de arquivos) da caixa de correio do remetente e do destinatário. • O destinatário pode recuperar e ler o conteúdo de sua caixa de correio quando quiser, usando um agente de usuário. 01/03/10 Procedimento • Quando o remetente e o destinatário estão no mesmo sistema, só precisamos de dois agentes de usuários. 01/03/10 Cenário dois • No segundo cenário, o remetente e o destinatário estão em sistemas diferentes. A mensagem precisa ser enviada pela Internet. • Então, precisamos de agentes de usuário (UAs) e agentes de transferência de mensagem (MTA). 01/03/10 Procedimento • O transmissor precisa de um agente de usuário para enviar sua mensagem para o seu próprio servidor de email. • O servidor usa uma fila para armazenar as mensagens que estão esperando para serem enviadas. • O receptor também precisa de um agente de usuário para recuperar as mensagens que estiverem armazenadas em sua caixa de correio do seu servidor de e-mail. • A mensagem, entretanto, precisa ser enviada pela Internet e, para isto usamos o agente de transferência. 01/03/1 Procedimento • Aqui precisamos de agentes de usuário e agentes de transferência. 01/03/10 Cenário três • Neste cenário, o remetente está conectado diretamente em seu sistema, mas o transmissor está separado do seu. Imaginemos que ele esteja conectado ao seu sistema, através de um provedor de acesso. • O transmissor precisa de um UA para preparar sua mensagem e de um MTA cliente, rodando em seu servidor de e-mail, para realizar uma conexão ao MTA do seu próprio servidor. • E, finalmente, um cliente MTA no servidor de e-mail transmissor, conectado a um servidor MTA no servidor de e-mail receptor. 01/03/10 Procedimento 01/03/10 Cenário quatro • Este é o cenário, atualmente, mais comum. • Transmissor e receptor estão conectados aos seus servidores de e-mail, remotamente. • Ao chegar ao seu servidor de e-mail, o receptor precisará de um agente de acesso à mensagem (MAA), para poder recuperá-la. • O cliente MAA envia ao servidor MAA, que está em execução o tempo todo, solicitando a transferência das mensagens. 01/03/10 Procedimentos 01/03/10 Push versus pull 01/03/10 Funções de um agente de usuário 01/03/10 Pacotes necessários a) Postfix b) System-switch-mail c) Dovecot Referência: http://wiki.centos.org/HowTos/postfix 29/03/10 Administração de redes 15 Definições a) MTA (Mail Transport Agent): - Responsável pelo envio das mensagens até o seu destino (postfix, sendmail, qmail, etc) b) MDA (Mail Delivery Agent): - Responsável pela entrega da mensagem ao destinatário, uma vez que esta já se encontra no destino (local do postfix, procmail, etc) c) MUA (Mail User Agent): - Cliente de leitura e edição de emails (mutt, outlook, thunderbird, etc) 29/03/10 Administração de redes 16 Atividade um a) Servidor: - Configurar um servidor de email para o domínio “exemplo.com” b) Cliente (na mesma máquina): - Como aluno, utilizar um cliente de e-mail de sua escolha para enviar um email para “[email protected]” - Como root, verificar se o e-mail enviado foi entregue corretamente na mailbox /var/spool/mail/root - Como root, utilizar o cliente de e-mail para ler o e-mail enviado IMPORTANTE: Durante a realização da atividade, os logs gerados pelo servidor de email devem ser monitorados 29/03/10 Administração de redes 17 Dicas Para monitorar os logs em /var/log/maillog: # tailf /var/log/maillog Para verificar quais emails estão na fila de pendentes: # postqueue -p Para reenviar os emails que estão na fila de pendentes: # postqueue -f Para apagar um email da fila de pendentes: # postsuper -d ID_DO_EMAIL 29/03/10 Administração de redes 18 Configuração do servidor 1. Parâmetros do arquivo /etc/postfix/main.cf myhostname: nome do servidor de emails mydomain: domínio do servidor de email myorigin: domínio que aparecerá nos email após o @ em emails enviados por este servidor inet_interfaces: interfaces de rede onde o postfix recebe emails mydestination: lista de domínios para os quais este servidor entrega emails mynetworks: lista de IPs que podem enviar email utilizando este servidor relay_domains: lista de domínios para os quais este servidor repassará emails 29/03/10 Administração de redes 19 Servidor 1. Editar o arquivo /etc/postfix/main.cf myhostname = mail.exemplo.com mydomain = exemplo.com myorigin = $mydomain inet_interfaces = all mydestination = $myhostname, $mydomain, localhost, localhost.$mydomain mynetworks = 171.16.0.0/22, 127.0.0.0/8 relay_domains = 2. Definir o Postfix como servidor de e-mail padrão (apenas 1 vez): # system-switch-mail-nox 3. Iniciar o Postfix (se não tiver sido iniciado): # /etc/init.d/postfix start 29/03/10 Administração de redes 20 Mandando um e-mail Como aluno, enviar email para [email protected]: mail [email protected] <Enter> Subject: Teste um <Enter> Entre com a mensagem <Enter> . <Enter> cc: <Enter> 29/03/10 Administração de redes 21 Verificando se o e-mail foi entregue • Agora, verifique se a mensagem chegou digitando o comando: • mail <Enter> Digite o número do e-mail • Verifique também, se há alguma nova mensagem em /var/spool/mail. Deve existir um arquivo com nome do usuário (root). IMPORTANTE: No servidor, analise os logs gerados pelo postfix durante o envio da mensagem no arquivo /var/log/maillog 29/03/10 Administração de redes 22 Verificações • Execute o comando telnet para o servidor de e-mail, na porta 25 conforme o exemplo: telnet <nomedoservidor> 25 Execute a seguinte sequência de comandos smtp: MAIL FROM: <usuário_destinatá[email protected]ínio>. Por exemplo, [email protected] RCPT TO: <usuá[email protected]ínio>. Por exemplo, [email protected] DATA <Enter> Subject: Teste de e-mail Estou enviando um e-mail de teste . QUIT 01/03/10 Servidor POP3 Agora vamos instalar o agente de acesso à mensagem (MAA). 1. POP3 (Post Office Protocol 3): - Protocolo utilizado no acesso remoto à uma caixa de correio eletrônico 2. IMAP (Internet Message Access Protocol): - Protocolo de gerenciamento de correio eletrônico, superior em recursos ao POP3 06/04/10 Administração de redes 24 Atividade dois a) Servidor: - Configurar um servidor POP3 e IMAP para o domínio “exemplo.com” b) Cliente (Windows): - Enviar e receber e-mails utilizando a conta [email protected] através do cliente de e-mail Outlook b) Cliente (Linux): - Enviar e receber e-mails utilizando a conta [email protected] através do cliente de e-mail Evolution IMPORTANTE: Durante a realização da atividade, os logs gerados pelo servidor POP3 e IMAP devem ser monitorados 06/04/10 Administração de redes 25 Servidor Editar o arquivo /etc/dovecot.conf. protocols = imap imaps pop3 pop3s log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot.log ssl_disable = yes disable_plaintext_auth = no mail_location = mbox:~/mail:INBOX=/var/mail/%u pop3_uidl_format = %08Xu%08Xv auth_verbose = yes 06/04/10 auth default { mechanisms = plain passdb pam { args = blocking=yes } userdb passwd { args = blocking=yes } } Administração de redes 26 Inicialização Iniciar o Dovecot (se não tiver sido iniciado): # /etc/init.d/dovecot start Monitorar o log do Dovecot: # tailf /var/log/dovecot.log 06/04/10 Administração de redes 27 CLIENTE (Windows) 1. Executar o programa Outlook 2. Configurar uma conta de email com as seguintes informações: - Servidor POP: endereço IP do computador onde o dovecot está sendo executado - Servidor SMTP: endereço IP do computador onde o postfix está sendo executado - Conta: [email protected] 3. Testar o envio de e-mails para [email protected] 4. Testar o recebimento de e-mails 06/04/10 Administração de redes 28