sexta-feira, 1 de junho de 2012

Postfix

O Que é 
A ideia primaria do Postfix era produzir um substituto para o Sendmail, que fosse rapido, facil de administrar e seguro. Trata-se de um projeto Open Source bancado pela IBM, criado e mantido por Wietse Venema.
Uma instalacao padrao do Postfix pode substituir facilmente o famigerado Sendmail sem alteracoes significativas no sistema, e transparentemente para o usuario final. As bases de usuarios e bases de correio sao as mesmas (por default).
Os arquivos de configuracao sao simples e objetivos, preparados para que as variaves e opcoes de configuracoes sejam bastante intuitivas e faceis de entender.
E, a melhor parte de tudo, sem a "agradavel" surpresa do "Bug do Mes" que o nosso amigo mais antigo sempre nos trazia.

Autor e colaboradores
O autor deste software eh Wietse Venema, Ph.D. em Fisica pela Groningen University na Holanda. Ha diversos colaboradores que enviam "patches" e outras contribuicoes para a lista de discussao. Em especial, Viktor Duchovni e Ralf Hildebrandt se destacam nas contribuicoes para o desenvolvimento do Postfix.

Licenciamento
Um dos pontos que talvez mais contribua para a nao-adocao do Postfix como servidor de email padrao eh a licenca um tanto quanto confusa que a IBM usa - "IBM PUBLIC LICENSE VERSION 1.0 - SECURE MAILER"
Trata-se de uma versao modificada da licenca BSD. Para se protegerem de possiveis processos (como a palhacada da SCO; afinal, a IBM tem grana), a IBM adicionou clausulas quanto a distribuicao em forma binaria e "patcheada" do Postfix. Ha clausulas que dizem que quem distribui versoes pre-compiladas ou patcheadas (como o Debian, por exemplo, que aplica patches no Makefile e algumas partes do codigo) se torna automaticamente um "parceiro legal" da IBM no caso de um eventual processo. No caso do Postfix ser uma parte independente ou adicional do sistema, essas clausulas nao se aplicam.
Um exemplo bastante direto disso eh a nao-inclusao do Postfix no OpenBSD. Uma vez que ha patches no Makefile e adicao de alguns scripts de inicializacao proprios do OpenBSD para compilacao nos "ports", eles preferem nao inclui-lo.

Como funciona
Basicamente, a arquitetura interna do sistema funciona sem um conceito muito rigido sobre processos "pai-filho", mas com a ideia de processos cooperativos. Basicamente, as tarefas que o Postfix roda sao independentes, e proveem servicos umas as outras (por exemplo, ha uma tarefa que prove reescrita/traducao de enderecos para todos os outros processos do Postfix).
Ha um processo principal (o "master"), que nao faz nada a nao ser administrar os outros daemons do Postfix: carregar o "smtpd" quando ha necessidade de atender a porta SMTP, manter o "trivial-rewrite" rodando para fazer a manipulacao dos enderecos de correio, chamar o "qmgr" para gerenciar a fila de emails ainda nao entregues, chamar o "pickup" que pega novas mensagens e as joga na fila para entrega, etc.
O "master" tambem se encarrega de manter uma especie de cache dos daemons que ja foram iniciados, reutilizando processos ou removendo-os depois de um tempo especifico em ociosidade. Isso diminui bastante o tempo e esforco despendido na maneira mais tradicional, chamando o processo e removendo-o logo que este acabe sua tarefa. Ha sempre um tempo que leva pra carrega um processo e todas as suas bibliotecas do disco, alocar memoria, etc. Da maneira como o "master" gerencia isso, esse tempo eh praticamente nulo, uma vez que o processo ja esta no ar; ao mesmo tempo, o "master" mantem o sistema sob controle, nao deixando processos inuteis ocupando recursos da maquina.
O "master" eh o unico processo que tem privilegios de root, uma vez que apenas o root tem poderes para mudar de usuario (pra chamar um agente de entrega que roda como o usuario XYZ, por exemplo), ou para ouvir a porta 25 (na maioria dos sistemas, portas abaixo de 1024 sao privilegiadas, e apenas o root pode ouvi-las).
Eh interessante notar que o processo "master" nao tem contato direto com nenhum outro processo ou com o mundo exterior; seu unico objetivo eh descartar privilegios e chamar o processo necessario, ja em um ambiente desprivilegiado.

Permissoes / Usuarios / Seguranca
Todos os subprocessos internos do Postfix rodam sobre as permissoes do usuario "postfix" e grupo "postdrop" (pode ser modificado no arquivo de configuracao /etc/postfix/main.cf).
O grupo "postdrop" existe para fazer a separacao de privilegios e permitir que outros processos alem dos internos do Postfix possam injetar emails na fila. O diretorio /var/spool/postfix/maildrop permite que o grupo "postdrop" escreva la (mas nao permite que ele leia, garantindo a privacidade dos emails), e o programa que injeta os emails la (/usr/sbin/postdrop) possui flags setgid para o grupo "postdrop". Eh interessante notar que Postfix se recusa a funcionar se o usuario privilegiado "postfix" fizer parte do grupo "postdrop".
Um outro ponto a favor da seguranca com Postfix eh a facilidade de colocar partes dele (ou o Postfix inteiro) dentro de um ambiente chroot. Basta mudar um flag no arquivo de configuracao, e o processo ja sera iniciado fechado dentro do diretorio de spool. (Nota - "chroot" seria como "enjaular" um processo dentro de um diretorio, impedindo que ele acesse quaisquer arquivos fora dele)
Note tambem que, a despeito de todas as permissoes, os subprocessos do Postfix nao confiam nos dados que recebem ou na estrutura das mensagens na fila; isso quer dizer que ha uma verificacao da integridade/correcao da mensagem e das informacoes internas que o Postfix usa antes de manusear a mensagem. Isso torna o sistema mais estavel e previne de forma bastante efetiva contra crashes e buffer overflows por arquivos corrompidos no disco ou submetidos por usuarios maliciosos.
Seguem abaixo as permissoes do diretorio de spool e tambem do injetor de emails:
  drwx------   18 postfix  root         4096 Jul  4  2003 active/
  drwx------   18 postfix  root         4096 Jul 19  2003 bounce/
  drwx------    2 postfix  root         4096 Jul  3  2003 corrupt/
  drwx------   18 postfix  root         4096 Aug 13  2003 defer/
  drwx------   18 postfix  root         4096 Aug 13  2003 deferred/
  drwx------    6 postfix  root         4096 Nov 11 05:57 flush/
  drwx------    2 postfix  root         4096 Jul  3  2003 hold/
  drwx------   18 postfix  root         4096 Apr  6 08:23 incoming/
  drwx-wx---    2 postfix  postdrop   200704 Apr  6 08:23 maildrop/
  drwxr-xr-x    2 root     root         4096 Nov 21 16:09 pid/
  drwx------    2 postfix  root         4096 Apr  6 17:02 private/
  drwx--x---    2 postfix  postdrop     4096 Apr  6 17:02 public/
  drwx------    2 postfix  root         4096 Jul  4  2003 saved/

  -rwxr-sr-x    1 root     postdrop   723708 Sep 22  2003 /usr/sbin/postdrop
 
PDF de como configurar um Postfix
http://www.mediafire.com/view/?5ad969o4unubh08

A segurança na Internet

Pequena apostila que explica um pouco sobre alguns parâmetros sobre a segurança na internet .
  • Conceitos 
  • Segurança
  • O Computador e os sistemas
  • Rede e Internet
  • Vulnerabilidade
  • Ameaças
  • Defesas
  • Dicas

Autor : Profº Carlos Alberto Latzke
http://www.mediafire.com/view/?0pcza0ch62v2q6u






quinta-feira, 31 de maio de 2012

Roteadores e a camada de Rede

O propósito principal de um roteador é conectar várias redes e encaminhar pacotes com destino ou para suas próprias redes ou outras. Um roteador é considerado um dispositivo de Camada 3 porque sua decisão primária de encaminhamento se baseia nas informações no pacote IP da Camada 3, mais especificamente o endereço IP de destino. Esse processo é conhecido como roteamento.

Quando um roteador recebe um pacote, ele examina seu endereço IP de destino. Se o endereço IP de destino não pertencer a nenhuma das redes conectadas diretamente do roteador, o roteador deve encaminhar esse pacote para outro. Na figura, R1 examina o endereço IP de destino do pacote. Depois de pesquisar a tabela de roteamento, R1 encaminha o pacote em R2. Quando R2 recebe o pacote, ele também examina o endereço IP de destino do pacote. Depois de pesquisar sua tabela de roteamento, R2 encaminha o pacote por sua rede Ethernet conectada diretamente para PC2.

Quando cada roteador recebe um pacote, ele procura em sua tabela de roteamento até encontrar a melhor correspondência entre o endereço IP de destino do pacote e um dos endereços de rede na tabela de roteamento. Quando uma correspondência é localizada, o pacote é encapsulado no quadro de enlace da Camada 2 dessa interface de saída. O tipo de encapsulamento do enlace de dados depende do tipo de interface, como Ethernet ou HDLC.

O pacote acaba alcançando um roteador que faz parte de uma rede que corresponde ao endereço IP de destino do pacote. Neste exemplo, o Roteador R2 recebe o pacote de R1. R2 encaminha o pacote por sua interface Ethernet, que pertence à mesma rede do dispositivo de destino, PC2

 





Processo de inicialização dos Roteadores



Processo de inicialização

Há quatro fases principais no processo de inicialização:

1. Executando o POST

2. Carregando o programa de bootstrap

3. Localizando e carregando o software Cisco IOS

4. Localizando e carregando o arquivo de configuração de inicialização ou acessando o modo de configuração

1. Executando o POST.

O Auto-teste de inicialização (POST, Power-On Self Test)é um processo comum que ocorre em quase todos os computadores durante a inicialização. O processo POST é usado para testar o hardware do roteador. Quando o roteador for ligado, um software no chip ROM irá executar o POST. Durante esse auto-teste, o roteador executa o diagnóstico a partir da ROM em vários componentes de hardware, inclusive CPU, RAM e NVRAM. Depois que o POST for concluído, o roteador irá executar o programa de bootstrap.

2. Carregando o programa de bootstrap

Depois do POST, o programa de bootstrap é copiado da ROM para a RAM. Uma vez na RAM, a CPU executa as instruções no programa de bootstrap. A tarefa principal do programa de bootstrap é localizar o Cisco IOS e carregá-lo na RAM.

Nota: A esta altura, se tiver uma conexão de console com o roteador, você irá começar a ver a saída na tela.

3. Localizando e carregando o IOS Cisco

Localizando o software IOS Cisco. O IOS costuma ser armazenado na memória flash, mas também pode ser armazenado em outros locais como um servidor de Protocolo de Transferência de Arquivos Trivial (TFTP, Trivial File Transfer Protocol).

Se uma imagem completa do IOS não puder ser localizada, uma versão dimensionada do IOS será copiada da ROM para a RAM. Essa versão do IOS é usada para ajudar a diagnosticar qualquer problema, podendo ser usada para carregar uma versão completa do IOS na RAM.

Nota: Um servidor TFTP costuma ser usado como um servidor de backup para o IOS, mas também pode ser usado como um ponto central para armazenar e carregar o IOS. O gerenciamento do IOS e o uso do servidor TFTP são abordados em um curso posterior.

Carregando o IOS. Alguns dos roteadores Cisco mais antigos executavam o IOS diretamente a partir da memória flash, mas os modelos atuais copiam o IOS para a RAM para execução pela CPU.

Nota: Quando o IOS começar a ser carregado, você talvez veja uma cadeia de caracteres de sustenidos (#).

4. Localizando e carregando o arquivo de configuração

Localizando o arquivo de configuração de inicialização Depois que o IOS for carregado, o programa de bootstrap irá pesquisar o arquivo de configuração de inicialização, conhecido como startup-config, na NVRAM. Esse arquivo tem os comandos de configuração e os parâmetros já salvos, inclusive:
endereços de interface
informações de roteamento
senhas
qualquer outra configuração salva pelo administrador de rede

Se o arquivo de configuração de inicialização, startup-config, estiver localizado na NVRAM, ele será copiado para a RAM como o arquivo de configuração em execução, running-config.

Nota: Se não houver o arquivo de configuração de inicialização na NVRAM, o roteador talvez procure um servidor TFTP. Se o roteador detectar a existência de um enlace ativo para outro roteador configurado, ele irá enviar um broadcast à procura de um arquivo de configuração no enlace ativo. Essa condição fará com que o roteador pause, mas você acabará vendo uma mensagem de console como a seguinte:

<o roteador pára aqui ao difundir para um arquivo de configuração em um enlace ativo>

%Error opening tftp://255.255.255.255/network-confg (Timed out)
%Error opening tftp://255.255.255.255/cisconet.cfg (Timed out)

Executando o arquivo de configuração. Se um arquivo de configuração de inicialização estiver localizado na NVRAM, o IOS irá carregá-lo na RAM como running-config e executar os comandos no arquivo, uma linha por vez. O arquivo running-config contém endereços de interface, inicia processos de roteamento, configura senhas de roteador e define outras características do roteador.

Acesse o modo de configuração, Setup Mode, (opcional). Se o arquivo de configuração de inicialização não puder ser localizado, o roteador irá solicitar ao usuário o acesso ao modo de configuração (setup mode). Modo de configuração é uma série de perguntas que solicita ao usuário informações de configuração básicas. O modo de configuração não deve ser usado para inserir configurações de roteador complexas, normalmente não sendo usado por administradores de rede.

Ao inicializar um roteador que não contenha um arquivo de configuração de inicialização, você verá a seguinte pergunta após o carregamento do IOS:

Would you like to enter the initial configuration dialog? [yes/no]: no

O modo de configuração não será usado neste curso para configurar o roteador. Quando solicitado a acessar o modo de configuração (setup mode), sempre responda não. Se responder sim e acessar o modo de configuração (setup mode), você poderá pressionar Ctrl-C a qualquer momento para encerrar o processo de configuração.

Quando o modo de configuração não é usado, o IOS cria um running-config padrão. O running-config padrão é um arquivo de configuração básico que inclui as interfaces do roteador, as interfaces de gerenciamento e determinadas informações padrão. O running-config padrão não contém nenhum endereço de interface, nenhuma informação de roteamento, senhas ou outras informações de configuração específicas.

Interface da linha de comando

Dependendo da plataforma e do IOS, o roteador pode fazer a seguinte pergunta antes de exibir o prompt:

Would you like to terminate autoinstall? [yes]: <Enter>
Press the Enter key to accept the default answer.
Router>

Nota: Se um arquivo de configuração de inicialização for localizado, o running-config talvez contenha um nome de host e o prompt irá exibir o nome de host do roteador.

Quando o prompt é exibido, o roteador já está executando o IOS com o arquivo de configuração em execução atual. Agora o administrador de rede pode começar a usar comandos do IOS no roteador.

Nota: O processo de inicialização é abordado com mais detalhes em um curso posterior.


Componentes do roteador e suas funções

Assim como um PC, um roteador também inclui:
Unidade de Processamento Central (CPU, Central Processing Unit)
Memória de Acesso Aleatório (RAM)
Memória somente-leitura (ROM)


CPU

A CPU executa instruções do sistema operacional, como inicialização de sistema, funções de roteamento e de comutação.

RAM

A RAM armazena as instruções e os dados que precisam ser executados pela CPU. A RAM é usada para armazenar estes componentes:
Sistema operacional: O IOS (Internetwork Operating System, Sistema operacional de Internet) Cisco é copiado para a RAM durante a inicialização.
Executando arquivo de configuração: Esse é o arquivo de configuração que armazena os comandos de configuração que o IOS do roteador está usando atualmente. Com poucas exceções, todos os comandos configurados no roteador são armazenados no arquivo de configuração em execução, conhecido como running-config.
Tabela de roteamento IP: Esse arquivo armazena informações sobre redes conectadas diretamente e remotas. Ele é usado para determinar o melhor caminho para encaminhar o pacote.
Cache ARP: Esse cache contém o endereço IPv4 para mapeamentos de endereço MAC, semelhante ao cache ARP em um PC. O cache ARP é usado em roteadores com interfaces de rede local, como interfaces Ethernet.
Buffer de pacotes: Os pacotes são armazenados temporariamente em um buffer quando recebidos em uma interface ou antes de saírem por uma interface.

RAM é uma memória volátil e perde seu conteúdo quando o roteador é desligado ou reiniciado. No entanto, o roteador também contém áreas de armazenamento permanentes, como ROM, memória flash e NVRAM.

ROM

ROM é uma forma de armazenamento permanente. Os dispositivos Cisco usam a ROM para armazenar:
As instruções de bootstrap
Software de diagnóstico básico
Versão redimensionada do IOS

A ROM usa firmware, que é o software incorporado no circuito integrado. O firmware inclui o software que normalmente não precisa ser modificado ou atualizado, como as instruções de inicialização. Muitos desses recursos, inclusive o software monitor ROM, serão abordados em um curso posterior. A ROM não perde seu conteúdo quando o roteador é desligado ou reiniciado.

Memória flash

Flash é uma memória de computador não volátil que pode ser apagada e armazenada eletricamente. A memória flash é usada como armazenamento permanente para o sistema operacional, o Cisco IOS. Na maioria dos modelos de roteadores Cisco, o IOS é armazenado permanentemente na memória memória flash e copiado para a RAM durante o processo de inicialização, quando é executado pela CPU. Alguns modelos mais antigos de roteadores Cisco executam o IOS diretamente na memória flash. A memória flash consiste em placas SIMMs ou PCMCIA, que podem ser atualizadas para aumentar a quantidade da memória flash.

A memória flash não perde seu conteúdo quando o roteador é desligado ou reiniciado.

NVRAM

A RAM Não Volátil (NVRAM, Nonvolatile RAM) não perde suas informações quando a energia é desligada. Isso é o oposto ao que acontece na maioria das formas comuns de RAM, como DRAM, que exige energia ininterrupta para manter suas informações. A NVRAM é usada pelo Cisco IOS como armazenamento permanente para o arquivo de configuração de inicialização (startup-config). Todas as alterações feitas na configuração são armazenadas no arquivo running-config na RAM e, com poucas exceções, são implementadas imediatamente pelo IOS. Para salvar essas alterações caso o roteador seja reiniciado ou desligado, o running-config deve ser copiado para a NVRAM, onde é armazenada como o arquivo startup-config. A NVRAM manterá seu conteúdo, mesmo quando o roteador for recarregado ou desligado.

ROM, RAM, NVRAM e memória flash são abordadas na seção a seguir, que apresenta o IOS e o processo de inicialização. Elas também são abordadas mais detalhadamente em um curso posterior referente ao gerenciamento do IOS.

É mais importante para um profissional de networking compreender a função dos componentes internos principais de um roteador do que o local exato desses componentes dentro de um roteador específico. A arquitetura física interna irá variar de modelo para modelo.




CPU do Roteador e memória

Embora haja vários tipos e modelos de roteadores diferentes, todos os roteadores têm os mesmos componentes gerais de hardware. Dependendo do modelo, esses componentes estão localizados em locais diferentes dentro do roteador. A figura mostra a parte interna de um roteador 1841. Para consultar os componentes internos do roteador, você deve desparafusar a tampa de metal e retirá-la do roteador. Normalmente, você não precisa abrir o roteador a menos que esteja atualizando a memória.

Roteadores são Computadores

Um roteador é um computador, assim como qualquer outro, inclusive um PC. O primeiro roteador, usado na ARPANET (Advanced Research Projects Agency Network), foi o Processador de Mensagem da Interface (IMP, Interface Message Processor). O IMP era um minicomputador Honeywell 316; esse computador deu vida à ARPANET no dia 30 de agosto de 1969.

Nota: a ARPANET foi desenvolvido pela ARPA (Advanced Research Projects Agency) do Departamento de Defesa dos Estados Unidos. A ARPANET foi a primeira rede de comutação de pacotes operacional do mundo e a antecessora da Internet atual.

Os roteadores têm muitos componentes de hardware e de software iguais encontrados em outros computadores, inclusive:
CPU
RAM
ROM
Sistema operacional


Redes de Computadores

Este blog é dedicado a apresentar e a realizar alguns estudos sobre a ampla area de Redes de computadores, podemos abordar neste blog sobre os sistemas da Cisco Systens , sistemas operacionais ,  manutenção ,cabeamento estruturado , arquitetura de redes , ativos de rede , serviços de rede.