3296 registros
0 hoje
1 nesta semana
33 neste mês![]() | 73% | Brasil (41902) |
![]() | 5% | Portugal (2590) |
![]() | 3% | EUA (1979) |
![]() | 0% | Rússia (242) |
![]() | 0% | Holanda (237) |
| Hoje: | 109 |
| Ontem: | 1791 |
| No mês: | 31627 |
| Mês passado: | 25815 |
| Total: | 57442 |
| Recorde: | 3037 |
| No dia: | 04.03.10 |
| Leituras hoje: | 14280 |
| Leituras Total: | 252792 |
| Bots hoje: | 71 |
| Dados desde: | 16.02.2010 |
|
Qui 01 Jan 2009 01:46 |
|
Página 1 de 3
O iptables é uma ferramenta que pode ser usada para controlar o Netfilter de várias distribuições Linux. O Netfilter é um firewall embutido no kernel e o iptables é uma ferramenta que permite estabelecer regras para este firewall. Este tutorial trata apenas dos aspectos básicos das tabelas do iptables e da sintaxe para a criação de regras. O NetfilterComo você já deve saber, toda comunicação numa rede TCP- IP é feita através de pacotes. O Netfilter trata apenas de regras. Estas regras são aplicadas aos pacotes. Cada regra é criada para fazer alguma coisa, e esta coisa é chamada de alvo. As regras pertencem a vertentes (chains), que são usadas para agrupar regras. Imagine as vertentes como uma correnteza que carrega pacotes, onde cada vertente leva determinado tipo de pacote. Cada vertente pertence a uma tabela. Alvos das RegrasComo já disse, as regras atuam sobre os pacotes. Se uma regra for aplicável a um pacote, então o alvo é executado. Os alvos pré-existentes são ACCEPT (aceitar), DROP (descartar), QUEUE (fila de espera) e RETURN (retornar ou devolver). As cinco vertentes pré-existentesImagine seu sistema como uma caixa preta. Fora desta caixa preta fica um processador que "caça" todos os pacotes destinados ao seu sistema antes mesmo deles alcançarem a interface de entrada - uma placa ethernet, um modem, uma antena de wireless ou qualquer outra interface de comunicação. Esta área é chamada de pré-roteamento. Como os pacotes não podem ser alterados pelo sistema antes deles entrarem no sistema, é mais fácil imaginar que eles possam ser alterados nesta área de pré-roteamento de modo que, quando alcançarem a interface, já tenham sido modificados e estejam prontos para serem roteados. Desta forma, as regras da vertente PREROUTING podem ser aplicadas antes que os pacotes entrem no sistema. Dentro do sistema existem mais três vertentes: INPUT (entrada), FORWARD (redespacho) e OUTPUT (saída). Todos os pacotes que chegam são levados pela "correnteza" INPUT ou FORWARD. Os que estão apenas em trânsito são levados pela vertente FORWARD, os que são destinados para o sistema local vão pela vertente INPUT. Os pacotes provenientes do sistema local transitam apenas pela vertente OUTPUT. Quando os pacotes saem da "caixa preta" e ainda não abandonaram a máquina, eles podem ser levados por uma última vertente - a POSTROUTING. Esta é a área de pós-roteamento, onde o sistema também não pode mais alcançar os pacotes. As tabelas do iptablesO framework do iptables é dividido em 3 tabelas separadas:
Cada uma destas tabelas possui correntes ou vertentes (chains) mostrando os caminhos que devem ser seguidos ou as tarefas que devem ser realizadas. O filtroA tabela filter é a tabela padrão e uma das mais utilizadas. É usada para identificar e tratar os pacotes que passam pelo firewall. Esta tabela possui três vertentes: INPUT (entrada), OUTPUT (saída) e FORWARD (redespacho), ou seja, é o coração da "caixa preta" do sistema. A vertente de entrada trata os pacotes destinados ao sistema local, a de saída filtra os pacotes que estão saindo do sistema local e a vertente de redespacho mostra o que deve ser feito com os pacotes que estão apenas em trânsito porque se destinam a outra máquina.
Se você quiser saber se sua máquina está ou não filtrando pacotes, chame o iptables para listar a tabela de filtragem com -L (lista). Se você ainda não definiu nenhuma regra de filtragem, o resultado mostra apenas as vertentes vazias: # iptables -L Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
A tabela NATEsta tabela é usada para alterar o endereço IP e/ou portas de destino. Suas vertentes são PREROUTING (pré-roteamento), POSTROUTING (pós-roteamento) e OUTPUT (saída). Na vertente PREROUTING podemos identificar a origem do pacote (interface de entrada) além do endereço IP e a porta à qual se destina. Antes do pacote ser roteado (quando ainda está na área de pré-roteamento) podemos alterar o IP e também a porta que deve recebê-lo - em outras palavras, pode-se mudar a rota do pacote direcionando-o para uma outra máquina e/ou para uma outra porta na mesma máquina ou numa máquina diferente. A vertente OUTPUT serve para dar saída aos pacotes e para analisá-los antes que saiam da máquina. Na vertente POSTROUTING podemos alterar o IP/porta de origem do pacote. Também podemos indicar a interface de saída. Tudo isto acontece depois do pacote ter sido tratado na vertente OUTPUT e um pouquinho antes de ser despachado, ou seja, quando está na área de pós-roteamento. Se você quiser saber se a sua máquina está redirecionando pacotes, chame o iptables com o comando -L -t nat. Se nenhuma regra tiver sido definida, a listagem deve ser a seguinte: # iptables -L -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination Apenas para reforçar: para listar a tabela NAT, é preciso especificá-la com a diretiva -t (tabela). No caso da tabela de filtragem isto não foi preciso porque o filtro é a tabela padrão do iptables. A tabela mangleEsta tabela serve para guardar as regras que devem ser seguidas para "escovar" ("lustrar") pacotes, ou seja, fazer pacotes "mexidos". Mas quem é que quer ou precisa dar uma ajeitada em pacotes? O motivo mais comum é alterar o campo Tipo de Serviço (Type Of Service - TOS). Este campo é lido pelo kernel do Linux e altera a prioridade do pacote. Como o uso da tabela mangle é pequeno e depende de conhecimentos mais especializados, não vou entrar em maiores detalhes por que ainda temos muito pela frente Em todo caso, agora que você já sabe como descobrir as vertentes de uma tabela, que tal dar um iptables -L -t mangle? |
|||||
| Última atualização ( Sáb, 03.01.2009 20:47 ) |