A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

Filtragem de pacotes no Linux 2.4

Qui

26

Abr

2007


17:47

(3 votos, média 3.67 de 5) 


Como os pacotes atravessam os filtros

O kernel começa com três listas de regras na tabela 'filtro'. Estas listas são chamadas de cadeias do firewall ou simplesmente cadeias. As três cadeias são chamadas de INPUT (entrada ou ingresso), OUTPUT (saída ou egressão) e FORWARD (redespacho).

                            _____
Ingresso                   /     \         Saída
       -->[Roteamento]--->|FORWARD|------->
          [Decisão]        \_____/         ^
               |                           |
               v                         ____
              ___                       /    \
             /   \                     |OUTPUT|
            |INPUT|                     \____/
             \___/                         ^
               |                           |
                ----> Processo Local ------

Os três círculos representam as três cadeias mencionadas acima. Quando um pacote alcança um destes círculos, a cadeia é examinada para decidir o destino do pacote. Se a cadeia disser que o pacote deve ser descartado (DROP), ele é eliminado ali, mas se a cadeia disser que o pacote dever ser aceito (ACCEPT), ele continua seu caminho.

Uma cadeia é uma checklist de regras. Cada regra diz 'se o cabeçalho do pacote for este, então faça o seguinte'. Se a regra não puder ser aplicada ao pacote, então a próxima é consultada. Finalmente, se não houver mais regras para consultar, então o kernel verifica a política da cadeia para decidir o que deve fazer. Num sistema onde há preocupação com a segurança, esta política costuma dizer ao kernel para eliminar (DROP) o pacote.

  1. Quando um pacote entra (digamos, através de uma placa Ethernet), a primeira coisa que o kernel olha é o destino do pacote. Isto é chamado de 'roteamento'.
  2. Se o destino for esta máquina, o pacote continua pelo caminho até a cadeia INPUT mostrada no diagrama. Se ele passar por esta cadeia, qualquer processo que o estiver aguardando irá recebê-lo.
  3. Caso contrário, se o kernel não estiver com o redespacho habilitado ou se não souber como redespachar o pacote, o pacote será eliminado. Se o redespacho estiver habilitado e o pacote é destinado para uma outra interface de rede, então ele vai para a cadeia FORWARD. Se for aceito, o pacote será redespachado.
  4. Finalmente, um programa rodando nesta máquina pode enviar pacotes de rede. Estes pacotes passam através da cadeia OUTPUT imediatamente: se ele disser ACCEPT, então o pacote continua na direção da interface para a qual ele foi destinado.

Informações adicionais