Este tutorial explica como trabalhar com o Firewall Nftables Linux. Este conteúdo é otimizado para usuários de Linux experientes e novos.
Nftables é um componente do kernel Linux que fornece funcionalidades de firewall. É a substituição de iptables.
Depois de ler este tutorial, você entenderá as regras dos Nftables e poderá criar seu firewall. Você não precisa de conhecimento prévio sobre iptables.
Todos os exemplos deste tutorial contêm capturas de tela, facilitando para todos os usuários do Linux, independentemente do seu nível de conhecimento, para entendê -los e implementá -los.
Introdução com Nftables
Antes de começar, crie e abra um arquivo usando um editor de texto como Nano ou VI para começar a digitar suas primeiras regras nftables com base no exemplo a seguir. Não copie-se; digite tudo.
nano firewall.NFT
O exemplo deste tutorial é bastante simples e mostra um firewall restritivo no qual todo o tráfego IPv4 é descartado, exceto por loopback e portas específicas.
Na captura de tela anterior, usei a primeira linha para definir minha rede local (192.168.0.0/16) como Linuxhintnet.
Defina Linuxhintnet = 192.168.0.0/16
Na segunda linha, defino um grupo de portos (80.443 e 22). Eu chamo esse grupo permitir portadores porque pretendo permitir o tráfego através deles. Allowports é um nome arbitrário.
Definir allowports = 80,443,53,22
Em seguida, adiciono uma tabela, que é um recipiente ou grupo de cadeias e regras; Ambos são explicados abaixo. As tabelas ajudam regras e correntes a serem organizadas. Liguei para a tabela no exemplo de "restritivo" porque contém uma política restritiva, e seu nome é arbitrário.
O IP antes do nome da tabela indica que as regras da tabela de Que serão aplicadas apenas ao tráfego IPv4. Você pode usar o INET em vez de IP para aplicar regras aos protocolos IPv4 e IPv6. Ou você pode substituir o IP pelo IP6 apenas para IPv6.
Lembre -se, restritivo é um nome que eu defini arbitrariamente. Você pode nomear a tabela como quiser.
No meu caso, aplico regras apenas ao IPv4, como mostrado abaixo.
Adicione a tabela IP restritiva
Para ambos os protocolos, use o seguinte:
Adicione a tabela INET RESTRITIVA
Em seguida, adicionamos a primeira cadeia base, que eu arbitrariamente nomeio a entrada porque está relacionada ao tráfego que recebe. No entanto, você pode nomear isso como quiser.
A cadeia base a seguir cai todo o tráfego de entrada por padrão:
Adicione IP de cadeia IP Restritivo de entrada Tipo Prioridade de entrada do gancho de filtro 0; queda de política;
Como você pode ver na captura de tela a seguir, criei duas outras cadeias de base semelhantes às de redirecionamento anterior e restritivo e de saída restritiva. A diferença é o gancho definido para cada (saída de gancho e gancho). Explicar -os é repetitivo.
Após as três cadeias de base, podemos continuar com as regras Nftables para permitir o tráfego de loopback.
Eu adiciono as seguintes linhas para o tráfego de entrada e saída na interface de loopback.
Adicione a regra IP IP restritivo IIFNAME LO CONTATO ACEITO
Adicione a regra IP IP restritivo Oifname de contra -contador aceito
Agora, adiciono quatro regras que aceitam o tráfego de TCP e UDP de saída e UDP em todas as portas incluídas na variável $ permitir porportes definidos no início do arquivo.
Adicione a regra IP IP restritivo
Adicione a regra IP IP Restritivo de saída TCP DPORT $ Allowports Contador
Adicione a regra IP IP restritivo UDP Sport $ ALIMPORTS CONTATO ACEITO
Adicione a regra IP IP Restritivo de saída UDP Dport $ Allowports Counter aceita
Você pode ver o script completo abaixo.
Depois de terminar de digitar suas mesas, correntes e regras, feche o documento e salve as alterações.
# Nas duas primeiras linhas, defino minha rede local (Linuxhintnet) e um conjunto de portas (80,
#443,22) para permitir o tráfego através deles nas regras abaixo.
Defina Linuxhintnet = 192.168.0.0/16
Definir allowports = 80,443,53,22
#Eu declaro uma nova tabela que conterá correntes e regras. Eu chamo esta tabela de "restritiva".
#O "IP" aplica regras a apenas IPv4. Para IPv6, use apenas "IP6" e use "INET" para ambos os protocolos.
Adicione a tabela IP restritiva
# Depois de criar a tabela, crio três correntes, recebidas, redirecionamento e saída,
#Seus nomes são arbitrários. Todos eles caem no tráfego de entrada, saída e encaminhamento por padrão.
Adicione IP de cadeia IP Restritivo de entrada Tipo Prioridade de entrada do gancho de filtro 0; queda de política;
Adicione o redirecionamento restritivo de IP da cadeia Tipo Filtro Gink Prioridade para a frente 0; queda de política;
Adicione o IP da cadeia IP Restritivo de saída TIPO FILTAR Prioridade de saída de gancho 0; queda de política;
# Eu implemento duas regras para permitir o tráfego de loopback.
Adicione a regra IP IP restritivo IIFNAME LO CONTATO ACEITO
Adicione a regra IP IP restritivo Oifname de contra -contador aceito
# Eu implemento regras para permitir o tráfego através de portas definidas na variável allowports.
Adicione a regra IP IP restritivo
Adicione a regra IP IP Restritivo de saída TCP DPORT $ Allowports Contador
Adicione a regra IP IP restritivo UDP Sport $ ALIMPORTS CONTATO ACEITO
Adicione a regra IP IP Restritivo de saída UDP Dport $ Allowports Counter aceita
Para ativar o firewall, execute o seguinte comando:
SUDO NFT -F Firewall.NFT
Você pode verificar suas regras executando o seguinte comando:
SUDO NFT LIST REGISTEL
Esse é um firewall restritivo básico.
Conclusão:
Como você pode ver, o Nftables é muito mais amigável que os iptables, e os usuários podem aprender nftables mais rápido que iptables. Como os iptables estão sendo descontinuados, e muitas distribuições estão usando nftables como o firewall padrão, incluindo o Debian. IPTABLES Usuários experientes podem querer olhar para a ferramenta iptables-nftables-compat, que traduz iptables para nftables. Isso pode ajudá -los a entender as diferenças.
Usuários profissionais como administradores de sistema tendem a continuar trabalhando com iptables; Evite ignorar os nftables para economizar tempo enquanto melhora a filtragem. Espero que este artigo tenha sido simples o suficiente para convencê -lo a experimentar os nftables.