Neste artigo procuro mostrar a estrutura - tabelas, cadeias e regras - a configuração, a criação de regras do firewall Netfilter/Iptables - nativo do Linux desde a versão 2.4.0 do kernel - bem como suas principais opções para criação de regras de firewall.
Cada classificador é composto por um comando, um ou mais parâmetros e uma ou mais extensões. Junto com uma política eles formam uma regra do firewall.
6.1. Comandos
Comandos especificam o que fazer com uma definida regra.
-A cadeia
Anexa uma ou mais regras no fim de uma cadeia especificada
-D cadeia [n_regra]
Apaga uma ou mais regras da cadeia especificada, pode ser especificada o número da regra que será excluída
-I cadeia [n_regra]
Insere uma ou mais regras na posição específica de uma cadeia específica, se a posição não for definida, o padrão é 1
-L [cadeia]
Lista todas regras em uma cadeia definida, se esta não for definida o comando listará todas as regras do firewall
-F [cadeia]
Remove todas as regras da cadeia definida, se esta não for definida o comando removerá todas as regras do firewall
-N cadeia
Cria uma nova regra para a cadeia específica
-X [cadeia]
Apaga a cadeia definida, se esta não for definida apaga todas cadeias
-P cadeia política
Define uma política padrão para uma cadeia específica
6.2. Parâmetros
Os parâmetros setam definições para as regras aplicarem nos pacotes trafegados pelo firewall. O [!] indica negação, ou seja, inverte a regra.
-p [!] protocolo
Define o protocolo que a regra irá tratar
-s [!] end_IP[/mask]
Define o endereço de origem do pacote que a regra irá tratar
-d [!] end_IP[/mask]
Define o endereço de destino do pacote que a regra irá tratar
-j [!] alvo
Define um alvo para o pacote
-i [!] nome
Define o nome da interface por onde o pacote chegou
-o [!] nome
Define o nome da interface por onde o pacote sairá
6.3 Extensões
O iptables pode usar módulos para tratar os pacotes com extensões. Estas extensões podem ser chamas de duas formas: implicitamente, utilizando o parâmetro -p, especificando assim o protocolo a ser tratado ou com a opção -m, para chamar o modulo específico para tratar a extensão.
icmp : Extensão para tratar pacotes ICMP:
--icmp-type [!] nome ou número: Especifica qual mensagem ICMP que a regra vai tratar. Este tipo pode ser especificado pelo número, no caso o número da porta IP que ela se refere, ou pelo nome.
limit : Define a utilização de limites para certos pacotes. Eficaz contra ataques do tipo Flooding e DoS.
--limit taxa - Define o número máximo de ocorrências por um período de tempo, este tempo pode ser: por segundo (/second), por minuto (/minute), por hora (/hour) ou por dia (/day).
--limit-burst número - Número máximo de pacotes antes que o limite comece a ser imposto.
tcp : Extensão para tratar pacotes TCP:
--source-port [!] porta[:porta] : Define a porta de origem do pacote, ou um intervalo de portas.
--destination-port [!] porta[:porta] : Define a porta de destino do pacote, ou um intervalo de portas.
--tcp-flags [!] mask comp : Trata pacotes com o flags definidos do TCP setados. O parâmetro mask define quais flags serão testados e o parâmetro comp define quais flags devem estar setados.
[!] -syn : Trata pacotes de inicio de conexão, com o flag SYN setado.
udp : Extensão para tratar pacotes UDP:
--source-port [!] porta[:porta] : Define a porta de origem do pacote, ou um intervalo de portas.
--destination-port [!] porta[:porta] : Define a porta de destino do pacote, ou um intervalo de portas.
[1] Comentário enviado por PCMasterPB em 29/10/2005 - 22:10h
Cara, seu artigo está ótimo, e qdo li ele finalmente entendi as benditas chains PREROUTING, POSTROUTING, INPUT, OUTPUT e FORWARD e qual a lógica delas. Muito bom mesmo.
[4] Comentário enviado por fabio em 30/10/2005 - 01:18h
Bom, como não tenho tempo nem dinheiro de sobra pra comprar e ler "vários" livros, esse artigo foi uma mão na roda, foi direto ao ponto. Muito bem escrito e explicado, meus parabéns!
Em tempo, você é do contra mesmo heim wrochal?!?! Ops. confundi... é articulador.
[5] Comentário enviado por removido em 30/10/2005 - 12:35h
Fábio,
Acho que vc esta me confudindo, estou apenas falando meu ponto de vista diante o artigo, que tudo que ele disse esta igual e similar o que esta escrito nos livros.
[6] Comentário enviado por removido em 30/10/2005 - 19:16h
estando ou não em um livro, é inegável que a abordagem de kilocan é bastante objetiva e esclarecedora, além do mais o próprio autor informa da bibliografia que a informação saiu das páginas de manual e devemos lembrar que nem todos dominam o idioma yankee.
excelente artigo!