Aula06 - postfix

366 visualizações

Publicada em

Aula06 - postfix

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
366
No SlideShare
0
A partir de incorporações
0
Número de incorporações
25
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula06 - postfix

  1. 1. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Servidor MTA postfix O Postfix foi escrito por Wietse Venema, que é amplamente conhecida por suas ferramentas de segurança. Foi disponibilizado como software de livre em dezembro de 1998. A IBM patrocinou o lançamento inicial e continua a apoiar o seu desenvolvimento. São características do Postfix: Confiabilidade: O Postfix mostra seu real valor quando estiver operando sob condições estressantes. Mesmo dentro de ambientes simples, o software pode encontrar condições inesperadas, por exemplo, muitos sistemas de software se comportam de forma imprevisível, o Postfix detecta essas condições, e ao invés de descartar as mensagens existentes na fila ele dá ao sistema uma chance de se recuperar. Segurança: O Postfix assume que está sendo executado em um ambiente hostil. Ele emprega o conceito de privilégios mínimos de segurança que pode ser executado dentro de um contexto isolado, é executado com o menor conjunto de privilégios que precisa. Velocidade: O postfix foi escrito com o pensamento no desempenho e, de fato, toma tais medidas para garantir que a sua velocidade não sobrecarregue outros sistemas. Ele usa técnicas para limitar o número de novos processos a serem criados. Flexibilidade: O Postfix é na verdade composto de vários programas diferentes. Esta abordagem permite uma grande flexibilidade. Todas as peças são facilmente ajustáveis através de arquivos de configuração simples. 1
  2. 2. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Funcionamento do Postfix A figura abaixo mostra o funcionamento do Postfix: O Postfix é um mail transport agent, ele se comunica com outros MTAs e com um MDA local, ele tem uma grande dependência com os serviços de DNS. Configuração básica do postfix Os arquivo de configuração do postfix ficam armazenados no diretório /etc/postfix, são eles: main.cf: Arquivo principal de configuração do postfix, é neste arquivo que definimos a forma de como o MTA irá funcionar. master.cf: arquivo de configurações responsável em iniciar e gerenciar os mais diversos daemon que se integrarão ao postfix. 2
  3. 3. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Estrutura de diretórios do Postfix: Onde: /etc/init.d/postfix: Script de inicialização do Postfix; /etc/postfix: Arquivos de configuração do Postfix; /var/spool/postfix: Diretório contendo as filas do postfix Principais processos do Postfix: O postfix é modular, existem vários processos que controlam seu funcionamento, eles são gerenciados pelo arquivo de configuração master.cf. Os principais daemons são: smtpd, pickup, qmgr, local e postdrop. 3
  4. 4. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Processo do SMTP O servidor SMTP aceita pedidos de conexão da rede e executa zero ou mais transações SMTP por conexão. Cada mensagem recebida é canalizado através Daemon cleanup, e é colocado na fila incoming. Para este modo de operação, o processo espera ser executado a partir do gerenciador de processo Master. Processo CLEANUP O Daemon cleanup realiza checagens sobre o conteúdo de cada mensagem. Quando ele encontra um problema, por padrão, ele retorna um diagnóstico de estado para o cliente, e o deixa até o cliente lidar com a problema. Processo QMGR O Daemon qmgr aguarda a chegada de e-mails recebidos e organiza para sua entrega via processos de entrega do Postfix. O qmgr mantém as seguintes filas: Incoming, active, deferred, corrupt e hold. Processo Pickup O Daemon pickup aguarda sugestões que novos e-mails foram descartada no diretório maildrop, e encaminha para o cleanup. Arquivos mal formatadas são excluídos sem notificar o autor. Este programa espera ser executado a partir do gerenciador Master de processos. Processo Postdrop O postdrop cria um arquivo no diretório maildrop. 4
  5. 5. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Processo Local O Daemon local (é um agente de entrega de mensagens) processa pedidos de entrega da fila do Postfix para entregar o e-mail para destinatários locais. Cada solicitação de entrega especifica um arquivo da fila, um endereço de remetente, um domínio ou host para entregar a um ou mais destinatários. Este programa espera ser executado a partir do gerenciador de processos Master. 5
  6. 6. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Filas do Postfix: As filas do postfix são diretórios onde são os e-mails que chegam à aplicação são são tratados antes de chegaream ao seu destino final, elas ficam armazenadas no diretório /var/spool/postfix. São elas: Fila incoming- Esta file contém todos os emails novos que entram na fila do postfix. Eles são armazenados pelo processo cleanup. Fila active- Esta file contém todos os e-mails que foram abertos pelo gerenciador da fila para entrega. Fila deferred- Esta fila armazena todos os emails que por algum motivo não puderam ser entregues aos seus receptores. Fila corrupt- As mensagens que não podem ser lidas ou danificadas são colocadas nesta fila. Fila Hold - Esta fila é usada pelos administradores para colocar mensagens em espera até que alguém especifique que ela deva ser liberada. 6
  7. 7. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Determinando o caminho de cada mensagem: Mensagem sendo originadas do domínio local do MTA: Mensagens sendo originadas de outra rede para o MTA local 7
  8. 8. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA O arquivo main.cf contém as principais diretivas de configuração do postfix, são elas: Diretiva Descrição myhostname Nome do host onde o postfix é executado mydomain Nome do domínio utilizado para envio de mensagens mydestination Lista de domínios atendidos pelo Postfix(para mensagens recebidas). Geralmente inclui o nome do host (para receber mensagens locais). O caracter $ indica uma variável. relay_domains lista os domínios, ou mapas contendo domínios, para os quais o Postfix fará relay. biff Esquema de notificação que utiliza o cliente comsat mynetworks Redes que o postfix consideram como confiáveis smtpd_banner Mensagem de boas vindas do postfix Mapas O postfix utiliza muito o conceito de mapas que são basicamente tabelas contendo duas colunas: a 1ª é a chave e a segunda são os valores desta chave. No arquivo main.cf, podemos especificar os mapas a serem utilizados no Postfix: Exemplo: transport_maps = hash:/etc/postfix/transport header_checks = regexp:/etc/postfix/header_checks Exemplo de conteúdo de arquivos referenciados por mapas: Seunome.com.br lmtp:unix:/var/run/cyrus/socket/lmtp .seunome.com.br lmtp:unix:/var/run/cyrus/socket/lmtp 8
  9. 9. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA O mapas mais utilizados pelo postfix são: Tipo de Mapa Significado Hash Base indexada baseada em hash (usa Berkeley DB) Regexp Tabela baseada em expressões regulares pcre Tabela baseada em expressões regulares do Perl unix Tabela de consulta em base de autenticação Unix ldap Tabela de consulta em bases LDAP Mapas Remotos São mapas de conexões a sistemas externos, o mapa remoto mais utilizado é o LDAP. Mapas do tipo ldap são especificados como: ldap:fonte As opções mais importantes do mapa LDAP que podemos utilização as: • Server_host: (padrão: localhost) ◦ Nome ou endereço IP do servidor a ser conectado. • Server_port: (padrão: 389) ◦ Porta de acesso ao serviço LDAP. • Search_base ◦ Base de procura LDAP. Ex: dc=empresa,dc=com,dc=br • time_out: (padrão: 10) ◦ Tempo máximo de espera por uma resposta à consulta em segundos. • Query_filter: ◦ Expressão do filtro LDAP a ser utilizado como consulta, segundo a RFC 2254. Por exemplo, (mail=%s) onde %s será substituído pelo e-mail que o Postfix está tentando consultar, outras substituições úteis são “%u” (que recebe o 9
  10. 10. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA nome do usuários) e “%d” que recebe o hostname ou domínio. Exemplo de consulta: ((&(mail=%s)(objectClass=posixAccount)) ) • Result_attribute ◦ Lista de atributos que devem ser lidos do resultado da pesquisa e que resultarão em um endereço de e-mail. Exemplo completo de uma mapa remoro LDAP # Mapa utilizado para definir o destinatário final das mensagens virtual_alias_maps = ldap:mailboxes ldaphost = 127.0.0.1 ldapbase = dc=nome,dc=com,dc=br mailboxes_server_host = $ldaphost mailboxes_version = 3 mailboxes_timeout = 10 mailboxes_search_base = $ldapbase mailboxes_query_filter = (&(mail=%s)(objectClass=posixAccount)) mailboxes_bind = no mailboxes_domain = hash:/etc/postfix/expresso-dominios mailboxes_result_attribute = uid Protocolo LMTP LMTP é concebido como uma alternativa para SMTP normal para situações onde o lado de recebimento não tem uma fila de correio, como um servidor de armazenamento de correio agindo como um Mail Delivery Agent. 10
  11. 11. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Instalação e configuração do Postfix para o laboratório Os pacotes a serem instalados são: • Postfix: Aplicação de envio e recebimento de e-mails; • postfix-ldap: módulo de integração entre o postfix e ldap; • postfix-pcre: módulo que permite criação de expressões regulares em perl Para a instalação do Postfix digite o seguinte comando: apt-get install postfix postfix-ldap postfix-pcre A tela a seguir informa as opções de instalação do Postfix: O usuário deverá selecionar “Sem configuração”: 11
  12. 12. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Editar o arquivo /etc/postfix/main.cf e substituir o conteúdo existe pelo conteúdo abaixo: # Configuracoes do SMTP Interno #nome do domínio utilizado para envio de mensagens mydomain = seunome.com.br #Lista de domínios atendidos pelo Postfix(para mensagens recebidas). myorigin = $mydomain #nome do host onde o postfix é executado: myhostname = expressov3.seunome.com.br # Esquema de notificacao que utiliza o cliente comsat biff = no # Mensagem de boas vindas do postfix smtpd_banner = $myhostname ESMTP Expresso Livre - (GNU/Linux) # Postfix pode tratar alguns cabeçalhos de e-mails mal formatados append_at_myorigin = no append_dot_mydomain = no # A lista de dominios que esta maquina considera seu destino final. mydestination = $mydomain, $myhostname, $myorigin # Redes que o postfix consideram como confiaveis mynetworks = 127.0.0.1/8 #Interfaces de rede nas quais o Postfix pode fazer bind inet_interfaces = all inet_protocols = ipv4 # Desabilita buscas de domínios no DNS disable_dns_lookups = no #Faz com que o postfix aceite caixas de emails com caracteres especiais ex: user+service@empresa.com.br recipient_delimiter = + # Faz a entrega dos e-mails para o cyrus transport_maps = hash:/etc/postfix/transport # Utilização do SASL para o gerenciamento de autenticações no servidor # Habilita autenticação pelo SASL smtpd_sasl_auth_enable = yes #Não habilita autenticação anônima smtpd_sasl_security_options = noanonymous 12
  13. 13. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA broken_sasl_auth_clients = yes smtpd_sasl_local_domain = $mydomain #Mapas de Rewrite de domínios #smtp_generic_maps = hash:/etc/postfix/generic # log do subject - http://askubuntu.com/questions/245299/postfix-logging #header_checks = pcre:/etc/postfix/header_checks # Mapas de Apelidos alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases # Faz uma consulta pelo from do email pega o resultado uid(username) e compara com #o username da autenticacao SASL smtpd_sender_login_maps = ldap:/etc/postfix/users_from.cf # Numero maximo de recipientes na mesma mensagem smtpd_recipient_limit = 2000 smtpd_recipient_overshoot_limit = 2000 #Restrições de acesso smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject smtpd_recipient_restrictions = permit_mynetworks, reject_sender_login_mismatch, permit_sasl_authenticated, reject_unauth_destination, reject_unverified_recipient, reject # Mapa utilizado para definir o destinatário final das mensagens virtual_alias_maps = ldap:mailboxes ldaphost = 127.0.0.1 ldapbase = dc=seunome,dc=com,dc=br mailboxes_server_host = $ldaphost mailboxes_version = 3 mailboxes_timeout = 10 mailboxes_search_base = $ldapbase mailboxes_query_filter = (&(mail=%s)(objectClass=posixAccount)) mailboxes_bind = no 13
  14. 14. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA mailboxes_domain = hash:/etc/postfix/expresso-dominios mailboxes_result_attribute = uid Criar o arquivo /etc/postfix/users_from.cf server_host = 127.0.0.1 search_base = dc=seunome,dc=gov,dc=br query_filter = (&(mail=%s)(objectClass=posixAccount)) result_attribute = uid version = 3 bind = no timeout = 30 Editar o arquivo /etc/postfix/master.cf smtp inet n - n - - smtpd submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING lmtp unix - - n - - lmtp Criar o arquivo /etc/postfix/transport com o conteúdo abaixo. Este arquivo será responsável pela integração do cyrus com o Postfix Seunome.com.br lmtp:unix:/var/run/cyrus/socket/lmtp .seunome.com.br lmtp:unix:/var/run/cyrus/socket/lmtp Criar o arquivo /etc/postfix/expresso-dominios e adicionar o conteúdo abaixo. seunome.com.br OK Executar os comandos: postmap /etc/postfix/transport postmap /etc/postfix/expresso-dominios 14
  15. 15. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Criar o arquivo e o diretório /etc/postfix/sasl/smtpd.conf e adicionar o conteúdo abaixo: pwcheck_method: saslauthd mech_list: PLAIN LOGIN A seção submission irá habilitar a porta 587 que é recomendado para clientes de email. Adicionar o usuário postfix no grupo sasl e mail com os comandos abaixo. gpasswd -a postfix sasl gpasswd -a postfix mail gpasswd -a cyrus mail Reiniciar o serviço: service postfix restart OBS: É necessário garantir que o usuários cyrus e postfix estejam no grupo mail para que a comunicação entre eles via protocolo lmtp funcione corretamente. 15
  16. 16. CENTRO UNIVERSITÁRIO DE CAMPO GRANDE TECNOLOGIA EM REDES DE COMPUTADORES APLICAÇÕES EM REDES 5º SEMESTRE PROFESSOR CARLOS RICARDO BERNAL VEIGA Testando o Postfix e Cyrus Testar se a configuração do Postfix + Cyrus + Slapd esta funcionando. Faça um telnet para o servidor postfix e envie um email. # telnet localhost 25 Trying ::1... Connected to localhost. Escape character is '^]'. 220 expressov3.seunome.com.br ESMTP Postfix (Debian/GNU) ehlo localhost 250-dummy.gov.br 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN mail from: expresso-admin@seunome.com.br 250 2.1.0 Ok rcpt to: expresso-admin@seunome.com.br 250 2.1.5 Ok DATA 354 End data with <CR><LF>.<CR><LF> hello world . 250 2.0.0 Ok: queued as 374FF412C4 quit 221 2.0.0 Bye 16

×