nftables (parte 3) - Comando nft (sintaxe - uma breve explicação)
Neste artido vamos apresentar a sintaxe fundamental do comando nft, o primeiro passo para criar configurações de firewall eficazes e seguras com nftables. Este artigo irá detalhar a estrutura de comando essencial usada para criar os elementos fundamentais de qualquer conjunto de regras: tabelas e cadeias. Vamos explorar a sintaxe básica, definindo cada elemente que faz parte dela. Os dois comandos neste artigo representam um padrão tipico e não optimizado, cujo objectivo final é apenas demonstrar como usar comandos nft para gerir tabelas e cadeias.
Tomenos como exemplo, os dois comando abaixo.
O primeiro comando cria um novo container (tabela)
chamado "meu_filtro" que irá conter todas regras
para a família do protocolo específicado:
- nft add table: instrução para criar um novo container (tabela). Tabelas são os objectos de nível superior nas nftables e são usadas para armazenar cadeias e regras.
- <familia_do_protocolo>: Especifica a família de endereços da tabela.
- <meu_filtro>: nome arbitrário definido pelo utilizador.
- nft add chain: instrução para criar uma nova cadeia (chain) dentro de uma tabela. As cadeias são sequências de regras que são avaliadas por ordem.
- <familia_do_protocolo> <meu_filtro>: especifica a família do protocolo e a tabela "mãe" (meu_filtro) onde esta nova cadeia será criada.
- <pacotes_de_entrada>: nome arbitrário para a cadeia que se cria.
- { type <tipo> hook <hook> priority <prioridade> \; policy <pólitica> \; }: esta é a parte mais importante. Define propriedades que tornam esta uma cadeia base e que está directamente ligada à estrutura de rede do kernel.
- type <tipo>: declara a finalidade da cadeia, que podem ser: filter, nat ou route.
- hook <hook>: usado para declarar o tipo de hook, que podem ser: all, input, output, postrouting ou prerouting.
- priority <prioridade>: determina a ordem em que esta cadeia é processada em relação a outras cadeias ligadas ao mesmo ponto. Prioridades tem seus valores, que podem ser textuais ou númericos.
- \;: necessário para encerrar a lista de propriedades dentro das chaves {} no shell
- policy <pólitica>: tiplo de plotica aplicada, que podem ser: accept or drop. Quando não se especifica a política, o valor accept é atribuído por padrão.


Comentários