Como instalar nftables no ubuntu
Figura 1: Modelo Nftables TCP/IP
Comece com Nftables
Estamos traduciendo nuestros guías y tutoriais. ES POSIBLE QUE USTED ESTÉ VIDO UNA TRADUCCION GERADA AUTOMÁTICO. Estamos trabajando con tradutores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en.
Crie uma conta Linode para experimentar este guia com um $ Credit .
Este crédito será aplicado a quaisquer serviços válidos usados durante seus primeiros dias.
Nftables substitui os iptables bem -sucedidos e suas estruturas relacionadas construídas no Netfilter. Com os nftables, surgem melhorias no desempenho e usabilidade, mas também mudanças significativas na sintaxe e uso. Use este guia para começar a aprender sobre o que é nftables e como ele difere dos iptables. Siga junto com o exemplo deste guia para implementar suas próprias regras em Nftables e ter uma ideia prática do que pode fazer.
O que são nftables?
O NFTABLES é uma estrutura de classificação de pacotes Linux que substitui a infraestrutura do Netfilter por trás de iptables, IP6Tables, Arptables e Ebtables. Estruturas usando a infraestrutura do Legacy Netfilter estão sendo eliminadas das principais distribuições Linux. Essas estruturas começaram a adotar os nftables como a estrutura de classificação de pacotes padrão.
Apesar da onipresença dos iptáveis, sua arquitetura tem várias limitações e ineficiências subjacentes, e elas só poderiam ser resolvidas com um reprovação fundamental. Esse redesenho é o que os nftables estabeleceram para realizar.
nftables vs. iptables
O Nftables mantém algumas das partes familiares da infraestrutura do Filter e iptables. Assim como nos iptables, os nftables ainda usam as tabelas, cadeias e hierarquia de regras – mesas contendo correntes e correntes contendo regras. Enquanto os nftables alteram a sintaxe da linha de comando, ele mantém uma camada de compatibilidade que permite executar comandos iptables pelo kernel nftables.
Os nftables também introduzem mudanças significativas no uso de iptables. Por um lado, como mencionado acima, a sintaxe da linha de comando para nftables é diferente. O que se segue são diferenças notáveis adicionais entre nftables e iptables.
- Ao contrário dos iptables, os nftables não têm mesas ou correntes predefinidas, o que vai para melhorar o desempenho.
- Nos nftables, as regras podem executar várias ações, em oposição à limitação dos iptables a uma única ação por regra.
- Nftables vem com uma família de endereços INET que permite criar tabelas facilmente que se aplicam a IPv4 e IPv6.
- O conjunto de regras do Nftables é representado por uma lista dinâmica vinculada, que melhora a manutenção do conjunto de regras em comparação com o conjunto de regras monolítico do BLOP da iptables.
Além disso, a infraestrutura de conjunto genérico da Nftables abre novas opções para estruturar seu conjunto de regras, até mesmo permitindo estruturas multidimensionais de “árvore”. Você pode usar isso para reduzir significativamente o número de regras consultadas para determinar a ação apropriada para um pacote.
Como instalar nftables
Você não precisa instalar os nftables se estiver usando um dos seguintes liberações de distribuição ou posterior:
- Debian 10 (Buster)
- Ubuntu 20.10 (gorila groovy)
- CENTOS 8
- Fedora 32
Caso contrário, você pode instalar manualmente os nftables usando as seguintes etapas. Essas etapas funcionam para o Debian 9, Ubuntu 18.04 e Centos 7, e lançamentos posteriores dessas distribuições.
Antes de você começar
- Se você ainda não o fez, crie uma conta Linode e calcule a instância. Veja o nosso início com o Linode e criando uma instância de computação guias.
- Siga nossa configuração e proteção de um guia de instância de computação para atualizar seu sistema. Você também pode definir o fuso horário, configurar seu nome de host, criar uma conta de usuário limitada e endurecer o acesso SSH.
Este guia está escrito para usuários sem raios. Os comandos que requerem privilégios elevados são prefixados com sudo . Se você não está familiarizado com o comando sudo, consulte os usuários e grupos do Linux.
Etapas de instalação
- Instale nftables.
- Nas distribuições Debian e Ubuntu, use o comando:
sudo apt install nftables
sudo yum install nftables
sudo systemctl Ativar nftables sudo systemctl start nftables
sudo apt install iptables-nftables-compat sudo iptables-salpables> iptables.despeje sudo iptables-reestore translate -f iptables.DUMP> REGRAGEL.NFT SUDO NFT -F REGRISTEL.NFT
Você pode verificar a importação obtendo uma lista de tabelas agora em nftables.
Tabelas de lista de Sudo NFT
Como usar nftables
Esta seção decompõe cada um dos principais componentes nos nftables, fornecendo seus comandos mais úteis. No final deste guia, você pode encontrar uma demonstração de como configurar um conjunto de regras de trabalho e vê -lo em ação.
Mesas
As mesas são o nível mais alto da hierarquia nftables. Uma determinada tabela corresponde a uma família de um único endereço e contém cadeias que filtram pacotes nessa família de endereços.
- Para criar uma tabela, use o comando de exemplo. Substitua exemplo_table abaixo e em exemplos subsequentes, por um nome descritivo para a tabela.
sudo nft adicione tabela inet exemplo_table
Tabelas de lista de Sudo NFT
tabela de exclusão sudo nft inet exemplo_table
tabela de descarga sudo nft inet exemplo_table
Correntes
Corrente
Como instalar nftables no ubuntu
Figura 1: Modelo Nftables TCP/IP
Comece com Nftables
Estamos traduciendo nuestros guías y tutoriais. ES POSIBLE QUE USTED ESTÉ VIDO UNA TRADUCCION GERADA AUTOMÁTICO. Estamos trabajando con tradutores profesionales para verificar las traducciones de nuestro sitio web. Este proyecto es un trabajo en.
Crie uma conta Linode para experimentar este guia com um $ Credit .
Este crédito será aplicado a quaisquer serviços válidos usados durante seus primeiros dias.
nftables substitui os iptables bem -sucedidos e suas estruturas relacionadas construídas no Netfilter. Com os nftables, surgem melhorias no desempenho e usabilidade, mas também mudanças significativas na sintaxe e uso. Use este guia para começar a aprender sobre o que é nftables e como ele difere dos iptables. Siga junto com este guia’S Exemplo para implementar suas próprias regras em nftables e ter uma idéia prática do que pode fazer.
O que são nftables?
Nftables é uma estrutura de classificação de pacotes Linux que substitui o Netfilter Infraestrutura por trás de iptables, IP6Tables, Arptables e Ebtables. Estruturas usando a infraestrutura do Legacy Netfilter estão sendo eliminadas das principais distribuições Linux. Essas estruturas começaram a adotar os nftables como a estrutura de classificação de pacotes padrão.
Apesar da onipresença dos iptáveis, sua arquitetura tem várias limitações e ineficiências subjacentes, e elas só poderiam ser resolvidas com um reprovação fundamental. Esse redesenho é o que os nftables estabeleceram para realizar.
nftables vs. iptables
O Nftables mantém algumas das partes familiares da infraestrutura do Filter e iptables. Assim como nos iptables, os nftables ainda usam as tabelas, cadeias e hierarquia de regras – mesas contendo correntes e correntes contendo regras. Enquanto os nftables alteram a sintaxe da linha de comando, ele mantém uma camada de compatibilidade que permite executar comandos iptables pelo kernel nftables.
Os nftables também introduzem mudanças significativas no uso de iptables. Por um lado, como mencionado acima, a sintaxe da linha de comando para nftables é diferente. O que se segue são diferenças notáveis adicionais entre nftables e iptables.
- Ao contrário dos iptables, os nftables não têm mesas ou correntes predefinidas, o que vai para melhorar o desempenho.
- Nos nftables, as regras podem tomar várias ações, em oposição aos iptables’ limitação a uma única ação por regra.
- Nftables vem com uma família de endereços INET que permite criar tabelas facilmente que se aplicam a IPv4 e IPv6.
- nftables’ O conjunto de regras é representado por uma lista vinculada dinâmica, que melhora o conjunto de regras’S Manutenção em comparação com iptables’ Conjunto de regras monolítico do blob.
Além disso, nftables’ Infraestrutura de conjunto genérico abre novas opções para estruturar seu conjunto de regras, mesmo permitindo “árvore” estruturas. Você pode usar isso para reduzir significativamente o número de regras consultadas para determinar a ação apropriada para um pacote.
Como instalar nftables
Você não precisa instalar os nftables se estiver usando um dos seguintes liberações de distribuição ou posterior:
- Debian 10 (Buster)
- Ubuntu 20.10 (gorila groovy)
- CENTOS 8
- Fedora 32
Caso contrário, você pode instalar manualmente os nftables usando as seguintes etapas. Essas etapas funcionam para o Debian 9, Ubuntu 18.04 e Centos 7, e lançamentos posteriores dessas distribuições.
Antes de você começar
- Se você ainda não o fez, crie uma conta Linode e calcule a instância. Veja o nosso início com o Linode e criando uma instância de computação guias.
- Siga nossa configuração e proteção de um guia de instância de computação para atualizar seu sistema. Você também pode definir o fuso horário, configurar seu nome de host, criar uma conta de usuário limitada e endurecer o acesso SSH.
Este guia está escrito para usuários sem raios. Os comandos que requerem privilégios elevados são prefixados com sudo . Se você’Não estou familiarizado com o comando sudo, consulte o guia de usuários e grupos do Linux.
Etapas de instalação
- Instale nftables.
- Nas distribuições Debian e Ubuntu, use o comando:
sudo apt install nftables
sudo yum install nftables
sudo systemctl Ativar nftables sudo systemctl start nftables
sudo apt install iptables-nftables-compat sudo iptables-salpables> iptables.despeje sudo iptables-reestore translate -f iptables.DUMP> REGRAGEL.NFT SUDO NFT -F REGRISTEL.NFT
Você pode verificar a importação obtendo uma lista de tabelas agora em nftables.
Tabelas de lista de Sudo NFT
Como usar nftables
Esta seção decompõe cada um dos principais componentes nos nftables, fornecendo seus comandos mais úteis. No final deste guia, você pode encontrar uma demonstração de como configurar um conjunto de regras de trabalho e vê -lo em ação.
Mesas
As mesas são o nível mais alto da hierarquia nftables. Uma determinada tabela corresponde a uma família de um único endereço e contém cadeias que filtram pacotes nessa família de endereços.
Para criar uma tabela, use o comando de exemplo. Substitua exemplo_table abaixo e em exemplos subsequentes, por um nome descritivo para a tabela.
sudo nft adicione tabela inet exemplo_table
Tabelas de lista de Sudo NFT
tabela de exclusão sudo nft inet exemplo_table
tabela de descarga sudo nft inet exemplo_table
Correntes
Correntes vivem sob mesas e pacotes de filtro. Você anexa cada regra de nfftables a uma corrente para que os pacotes “capturado” na corrente’O filtro S são posteriormente passados para a corrente’s Regras.
Correntes podem ser de dois tipos. Base As cadeias atuam como pontos de entrada para pacotes vindos da pilha de rede. Regular As cadeias não agem como filtros, mas podem atuar como alvos de salto. Eles podem ajudar no controle do fluxo e da organização de seus nftables.
Para criar uma cadeia base, use um comando como o comando de exemplo abaixo. Substitua exemplo_chain, aqui e posterior, com um nome de cadeia descritivo.
sudo nft adicione cadeia inet exemplo_table exemplo_chain ''
sudo nft adicione cadeia inet exemplo_table exemplo_chain
sudo nft excluir cadeia inet exemplo_table exemplo_chain
sudo nft flaning cadeia inet exemplo_table exemplo_chain
Regras
As regras recebem os pacotes filtrados por correntes e tomam ações sobre eles com base se correspondem a critérios específicos. Cada regra consiste em duas partes, que seguem a tabela e a corrente no comando. Primeiro, a regra tem zero ou mais expressões que dão os critérios para a regra. Segundo, a regra tem um ou mais declarações que determinam as ações ou ações tomadas quando um pacote corresponde à regra’s expressões. Expressões e declarações são avaliadas da esquerda para a direita. Veja o exemplo a seguir para adicionar uma regra para obter um colapso dessas duas partes.
Para criar uma regra, use um comando semelhante ao exemplo. Esta regra leva pacotes do exemplo_chain e permite que aqueles que representam tráfego TCP na porta 22:
sudo nft adicione regra inet exemplo_table exemplo_chain tcp dport 22 contador aceito
- Aqui, o TCP Dport 22 porção contém a regra’S duas expressões. Ele corresponde aos pacotes TCP e depois corresponde quando esses pacotes são direcionados para a porta 22.
- A parte do balcão aceita a regra’S duas declarações. Primeiro, pacotes correspondentes adicionam à regra’S Counter, mantendo uma contagem de pacotes combinados com a regra. Segundo, pacotes correspondentes são aceitos.
- Esteja ciente de que os comandos do veredicto, como aceitar e soltar, processamento final da regra, para que eles sejam colocados na regra’enviar.
sudo nft add regra inet exemplo_table Explet_chain Posição 3 TCP DPORT 22 Contador aceita
tabela de listas de sudo NFT INET Exemplo_table
Da mesma forma, você pode usar um comando como o exemplo para listar todas as regras dentro do exemplo_chain no exemplo_table .
SUDO NFT LIST Chain INET ExempliBle_table Explet_Chain
sudo nft excluir regra inet exemplo_table Explet_chain Handle 2
Aqui, o identificador é um identificador para a regra que você está excluindo. Você pode obter uma regra’S manipulação usando a opção -a ao executar o comando para listar regras, como em:
tabela de listas de sudo NFT INET Exemplo_table -a
Exemplo de uso nftables
Abaixo, você pode seguir para criar um conjunto de regras. O exemplo de conjunto de regras usa uma tabela INET, duas cadeias – uma para pacotes de entrada e outra para saída – e uma regra para cada cadeia.
Crie uma tabela, tabela inerente .
sudo nft adicione tabela inet-table
sudo nft adicione cadeia Inet Inet-table Outpable-filter-cadeia '< type filter hook output priority 0; >'
sudo nft adicione regra inet Inet-table out-filter-cadeia IP Daddr 8.8.8.8 contador
sudo nft adicione cadeia Inet Inet-Table Input-filter-Chain '< type filter hook input priority 0; >'sudo nft adicione regra inet inet-table input-filter-cadeia tcp dport 3030 contador
tabela de listas de sudo NFT INET INETBABLE
Você deve obter saída semelhante ao seguinte:
Tabela IP Inet-Table < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 0 bytes 0 >Chain de filtro de entrada de cadeia < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 0 bytes 0 >>
Da máquina que executa nftables, ping no endereço de destino especificado na primeira regra.
ping -c 1 8.8.8.8
Curl 192.0.2.0: 3030
Tabela IP Inet-Table < chain output-filter-chain < type filter hook output priority 0; policy accept; ip daddr 8.8.8.8 counter packets 1 bytes 84 >Chain de filtro de entrada de cadeia < type filter hook input priority 0; policy accept; tcp dport 3030 counter packets 1 bytes 64 >>
Mais Informações
Você pode consultar os seguintes recursos para obter informações adicionais sobre este tópico. Embora estes sejam fornecidos na esperança de que sejam úteis, observe que não podemos garantir a precisão ou a pontualidade de materiais hospedados externamente.
- nftables
- Nftables abordam famílias
- Configurando cadeias em nftables
Esta página foi publicada originalmente na sexta -feira, 9 de julho de 2021.
Como instalar nftables no ubuntu
Neste artigo, aprenderemos a trocar de firewall do Linux de iptables para nftables no Ubuntu. Iptables, que é baseado no módulo Linux Kernel Netfilter, é atualmente o firewall padrão para muitas distribuições Linux. Ele protege contra vários vetores de ameaças e permite que seu servidor bloqueie o tráfego indesejado com base em um conjunto de regras específico.
O Nftables é um novo subsistema do kernel Linux que substitui várias partes da estrutura do Netfilter (na qual os iptables se baseiam), o que permite uma funcionalidade aprimorada. Essas mudanças foram implementadas no kernel versão 3.13. Este módulo aprimora a funcionalidade do Firewall do Netfilter para filtrar o tráfego da rede. A estrutura avançada do Nftables é modelada após o sistema de filtro de pacotes Berkeley (BPF), que usa um conjunto básico de expressões para criar regras de filtragem agrupadas e complexas. Isto’vale a pena apontar que isso não é uma atualização para iptables, mas um substituto. Os iptables em breve serão substituídos pela NFTABLES na maioria dos sistemas como uma única plataforma unificada, fornecendo a configuração do firewall na parte superior de uma máquina virtual no kernel.
Como os nftables são diferentes dos iptables?
Em iptables, existem várias correntes e mesas que são carregadas por padrão.
Nos nftables, não há correntes ou mesas padrão.
Nos iptables, há apenas um alvo por regra.
Nos nftables, você pode executar várias ações em uma única regra.
Nos nftables, existe uma ferramenta chamada IPSet. O uso do ipset permite a listagem de várias redes ou endereços que podem ser correspondidos em uma única regra.
Na estrutura iptables, existem quatro ferramentas por família:
- iptables
- IP6Tables
- Arptables
- ebtables
Os nftables contêm uma camada de compatibilidade que abrange todas essas ferramentas, o que permite o uso da sintaxe das regras iptables antigas.
Quais são os benefícios dos nftables?
As principais vantagens dos nftables são:
- Arquitetura que está construída diretamente no kernel
- Uma sintaxe que consolida as ferramentas iptables em uma única ferramenta de linha de comando
- Uma camada de compatibilidade que permite o uso da sintaxe das regras iptables.
- Uma nova sintaxe fácil de aprender.
- Processo simplificado de adicionar regras de firewall.
- Relatórios de erro aprimorados.
- Redução na replicação do código.
- Melhor desempenho geral, retenção e mudanças graduais na filtragem de regras.
Comparação de regras
.Todas as informações do firewall são visíveis utilizando uma única ferramenta de linha de comando chamada NFT. A NFT usa uma única regra para endereços IPv4 e IPv6, em vez de usar várias regras para cada tarefa. Ele não assume o controle completo do back -end do firewall e não excluirá as regras de firewall instaladas por outras ferramentas ou usuários. A NFT também melhora o conjunto de regras do firewall, adicionando as opções para registrar e negar funções na mesma regra. Por fim, o novo back -end da NFT é quase 100% compatível com configurações de firewall preexistentes.
Aqui está uma regra de queda simples para um IP em nftables:
nft add regra filtro ip saída ip daddr 10..10.10 gota
Em iptables, a regra seria:
iptables -uma saída -d 10.10.10.10 -J Drop
Esses exemplos abaixo criam um conjunto de regras de firewall que permite o tráfego IPv6 para vários serviços de porta.
root@host [~]# nft adicione regra ip6 filtro de entrada tcp dport aceitou root@host [~]# nft add regra ip6 filtro de entrada icmpv6 tipo < nd-echo-request, nd-router-advert, neighbor-solicit, nd-neighbor-advert >aceitar
Aqui estão alguns outros exemplos:
#ReView Configuração atual: root@host [~]# lista nft RegrasTet #Add Uma nova tabela, com família "INET" e tabela "filtro": root@host [~]# nft Adicione tabela INET filtro #Add Uma nova cadeia, para aceitar todo o tráfego de entrada: root@host [~]# nft Add cadeia inet filter input \ < type filter hook input priority 0 \; policy accept \>#Add uma nova regra, para aceitar várias portas TCP: root@host [~]# nft Adicione a regra INET FILTER INPUT TCP DPORT \ < ssh, telnet, https, http \>Aceite # para mostrar alças de regra: root@host [~] # nft -Handle -Numérico Cadeia de cadeia Cadeia de mesa Família # para excluir uma regra: root@host [~] # nft excluir regra inet filter hanking 3 # para salvar a configuração atual: root@host [~] # nft listet list> /etc /nftables.conf
Esta é uma visão geral rápida das substituições que são usadas:
Instalação Debian/Ubuntu
.O método para instalar nftables em um servidor Debian/Ubuntu é muito direto. Na seção abaixo, salvamos o atual conjunto de regras iptables para um .TXT File, revisou o arquivo, traduziu -o para um formato legível por NFT e depois o importou para o novo NFT RulesSet.
root@host: ~# iptables-save> fwrules.txt root@host: ~# cat fwrules.txt root@host: ~# iptables-reestore-translate -f fwrules.txt root@host: ~# iptables-reestore-translate -f fwrules.TXT> REGRAGET.NFT
Na segunda parte do processo, instalamos nftables e a ferramenta iptables-nftables-compat (que carrega as regras no subsistema de kernel nf_tables) e, finalmente, habilitamos o serviço.
root@host: ~# apt install nftables root@host: ~# apt install iptables-nftables-compat root@host: ~# systemctl atable nftables.serviço
Na seção final, puxamos o conjunto de regras anterior do conjunto de regras.arquivo NFT. Em seguida, revisamos o conjunto de regras com o ‘lista’ bandeira.
root@host: ~# nft -f regrasset.nft root@host: ~# nft listset tabela ip nat < chain PREROUTING < type nat hook prerouting priority 0; policy accept; >entrada de cadeia < type nat hook input priority 0; policy accept; >saída de cadeia < type nat hook output priority 0; policy accept; >Chain Postrouting < type nat hook postrouting priority 0; policy accept; >> Tabela IP Mangle < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >entrada de cadeia < type filter hook input priority 0; policy accept; >cadeia para frente < type filter hook forward priority 0; policy accept; >saída de cadeia < type filter hook output priority 0; policy accept; >Chain Postrouting < type filter hook postrouting priority 0; policy accept; >> tabela ip cru < chain PREROUTING < type filter hook prerouting priority 0; policy accept; >saída de cadeia < type filter hook output priority 0; policy accept; >> Filtro IP da tabela < chain INPUT < type filter hook input priority 0; policy accept; >cadeia para frente < type filter hook forward priority 0; policy accept; >saída de cadeia < type filter hook output priority 0; policy accept; >> Filtro de tabela INET < chain input < type filter hook input priority 0; policy accept; >cadeia para frente < type filter hook forward priority 0; policy accept; >saída de cadeia < type filter hook output priority 0; policy accept; >> root@host: ~#
Sinopse do comando NFT
Opções de comando #NFT e sintaxe root@host [~]# nft [-nnscaesupyj] [-i diretório] [-f filename | -i | cmd…] root@host [~]# nft -h Uso: nft [opções] [cmds. ] Opções: -h, --Help Mostre essa ajuda -v, --version Show Informações da versão -C, -Verifique a validade dos comandos sem aplicar as alterações. -F, -File Leia a entrada de -i, -LEIA INTERATIVA ENTRADA DA CLI -N -N INTERATIVA -Numérica Quando especificado uma vez, mostre a rede aborda numericamente (comportamento padrão). Especifique duas vezes para mostrar também serviços de Internet (números de porta) numericamente. Especifique três vezes para mostrar também protocolos, IDs de usuário e IDs de grupo numericamente. -S, -INITENTES INÍTICAS DE ESTATE INFORMA. -N Traduzir endereços IP em nomes. -A, -Handle de saída da regra da regra. -e, -eco eco o que foi adicionado, inserido ou substituído. -Eu, -Includepath adicionar aos caminhos pesquisados incluem arquivos. O padrão é: /etc - -debug especificar nível de depuração (scanner, analisador, aval, netlink, mnl, proto -ctx, segtree, all) root@host [~]# nft -v nftables v0.8.2 (Joe Btfsplk)
Firewalld e nftables
E quanto ao firewalld? Felizmente, o firewalld interage facilmente com os nftables através do próprio comando da NFT. Na imagem do firewalld abaixo, vemos como iptables e firewalld atualmente interagem entre si.
Um problema inicial com iptables e firewalld foi que o firewalld assumiu o controle total do firewall no servidor. Agora, ao usar nftables como back -end, isso não é mais verdade. Isso evita muitos conflitos que podem ser encontrados com outro software que não interage diretamente com o firewalld. Nos próximos lançamentos, o Nftables será atualizado para usar o novo libnftables.
Restaurar
Se, por algum motivo, você precisará reverter para o back -end antigo iptables, você pode fazê -lo facilmente redefinindo o ‘Firewallbackend‘ entrada em /etc/firewalld/firewalld.conf de volta a ‘iptables‘, e depois reinicie o firewalld.
Saiba como esse novo serviço pode se encaixar no seu plano de segurança geral para o seu servidor. Ainda não tem certeza sobre como implementar isso no seu servidor Ubuntu ou ter perguntas adicionais? Nossos técnicos de suporte estão por aqui para oferecer nossa assistência para responder a essas e quaisquer outras perguntas que você possa ter sobre essa tecnologia.
Artigos relacionados:
- Como consertar “Este site pode’t fornece uma conexão segura” Erro
- Como instalar o MongoDB no Almalinux
- Como instalar o PostgreSQL no Almalinux
- Como usar o WP Toolkit para proteger e atualizar o WordPress
- Como instalar e configurar o Ansible no Almalinux
- Como instalar o Redis dentro de um contêiner Easyapache 4 em cpanel
Sobre o autor: David Singer
Eu sou um G33K, blogueiro Linux, desenvolvedor, estudante e ex -escritor de tecnologia da LiquidWeb.com. Minha paixão por todas as coisas que a tecnologia impulsiona minha caçada por todo o coolz. Muitas vezes preciso de férias depois de voltar de férias.
Junte -se à nossa lista de discussão para receber notícias, dicas, estratégias e inspiração que você precisa para expandir seus negócios
O que’é novo em segurança para o Ubuntu 22.04 LTS?
Ubuntu canônico 22.04 LTS é o mais recente lançamento de suporte de longo prazo do Ubuntu, um do mundo’s distribuições Linux mais populares. Como uma versão de suporte de longo prazo, Ubuntu 22.04 LTS será suportado por 10 anos, recebendo atualizações de segurança estendidas e Kernel LivePatching por meio de uma assinatura do Ubuntu Advantage (que é gratuita para uso pessoal). Isso continua a referência dos lançamentos do Ubuntu LTS, servindo como a base mais segura sobre a qual desenvolver e implantar aplicativos e serviços Linux. Nesta postagem do blog, damos uma olhada nos vários recursos e aprimoramentos de segurança que entraram nesse novo lançamento desde o Ubuntu 20.04 Liberação do LTS. Para um exame mais detalhado de alguns desses recursos, verifique os artigos anteriores desta série que cobrem as melhorias entregues em cada lançamento intermediário do Ubuntu nos últimos 2 anos entre 20.04 LTS e 22.04 LTS.
Kernels Linux otimizados
Ubuntu 22.04 LTS apresenta versões otimizadas do kernel para diferentes plataformas. Para dispositivos de desktop certificados OEM, o V5 a montante V5.17 O kernel é usado como linha de base, enquanto todas as outras plataformas de desktop e servidor são baseadas no V5.15 kernel. Um grande número de mudanças e aprimoramentos de segurança foram para o kernel Linux desde o V5.4 kernel do Ubuntu 20.04 LTS, incluindo:
Aprimoramentos de segurança específicos de hardware
Intel’S Extensões de Guarda de Software (SGX) fornecem enclaves seguros apoiados por hardware que os aplicativos podem usar para armazenar dados confidenciais ou executar computação sensível sem o risco de interferência de componentes não confiáveis. Ubuntu 22.04 LTS permite o suporte a esse recurso, que está presente nos processadores Intel há vários anos. Enquanto para plataformas de braço, suporte para ARMV8.5 Extensão de marcação de memória agora está disponível nos dispositivos ARM64. Esse recurso tem como objetivo impedir problemas de segurança de memória, marcando endereços de memória com uma chave que não pode ser facilmente forjada e, portanto, impedindo ataques comuns de segurança de memória, como tiro transbordados. Os processos de espaço do usuário agora podem permitir que a marcação de memória para regiões de memória escolhidas ajudem na prevenção de ataques de corrupção de memória. Finalmente, a virtualização criptografada segura da AMD (SEV) também é suportada pelo subsistema de virtualização da KVM, para proteger os registros de máquinas virtuais convidadas de serem acessadas pelo sistema operacional host.
Aprimoramentos genéricos de segurança do kernel
Também estão disponíveis vários outros recursos genéricos de segurança do kernel de plataforma, incluindo novos recursos de segurança, como agendamento principal, bem como várias melhorias de endurecimento. Desde os primeiros casos de vulnerabilidades microarquitetônicas de canal lateral (ou seja,. Specter etc) foram descobertos pela primeira vez há mais de 4 anos, os desenvolvedores têm trabalhado em um meio para os processos controlarem como eles são agendados através de núcleos de multiprocessamento simétrico (SMT). Os irmãos SMT compartilham os recursos de hardware da CPU entre si e, portanto, pode ser bastante difícil evitar vários ataques de canal lateral de hardware como resultado. Agora, o suporte para o agendamento principal é fornecido, o que permite que os processos controlem quais encadeamentos serão agendados entre irmãos SMT e, portanto, podem permitir que eles protejam informações confidenciais do vazamento para outros processos não confiáveis no sistema.
A randomização da pilha do kernel fornece uma medida de endurecimento para frustrar os atacantes que desejam realizar ataques de corrupção de memória dentro do kernel. Ao colocar a pilha de kernel em um deslocamento diferente em chamadas subsequentes do sistema, os invasores não conseguem realizar ataques, primeiro vazando um endereço de pilha de kernel e depois substituindo posteriormente essa memória em uma chamada de sistema posterior. Ao fechar este potencial vetor de ataque Ubuntu 22.04 LTS fornece uma plataforma mais defensiva contra ataques de kernel.
O subsistema BPF também viu vários aprimoramentos de segurança, incluindo restringir seu uso a apenas processos privilegiados por padrão, além de incluir os esforços iniciais para apoiar os programas BPF assinados e também. Ambas as medidas visam ajudar a minimizar a chance de que esse subsistema característico possa ser usado para atacar o kernel, enquanto ainda permite que ele seja usado por desenvolvedores e administradores de sistemas, conforme necessário.
Finalmente, a inclusão do novo módulo de segurança Linux Linux fornece outro mecanismo para a caixa de areia de aplicação, juntamente com os métodos mais tradicionais via Appmor ou Selinux. O Landlock permite que os aplicativos especifiquem sua própria política (e, portanto, é mais parecido com os filtros seccomp), diferentemente do Appmor e Selinux, projetados para permitir que o administrador do sistema configure as políticas globais do sistema em uma série de aplicações. Quando combinado com o empilhamento do LSM, o proprietário pode ser usado em conjunto com o Appmor para fornecer uma abordagem de defesa em profundidade para o isolamento do aplicativo.
Aprimoramentos de segurança do espaço de usuários
Com cada nova versão do Ubuntu, há a oportunidade de atualizar a gama de pacotes de software fornecidos no arquivo Ubuntu para seus mais recentes lançamentos a montante. Ubuntu 22.04 LTS não é exceção, trazendo atualizações para vários pacotes relevantes de segurança, incluindo OpenSSL, OpenSsh, Nftables, GCC e até o Humble Bash Shell.
OpenSSL 3
Ubuntu 22.04 LTS envia com o último lançamento mais recente do venerável kit de ferramentas de criptografia, OpenSSL. No OpenSSL 3, muitos algoritmos herdados foram depreciados e desativados por padrão – incluindo MD2 e DES. Esses e outros algoritmos depreciados estão presentes no provedor legado, que pode ser ativado conforme necessário por meio de uma mudança de configuração ou programaticamente. Ao desativá -los por padrão, usuários e aplicativos são protegidos contra ataques criptográficos contra esses algoritmos menos seguros.
OpenSsh UX melhorias para fido/u2f Tokens
Outro dos pilares do ecossistema de segurança Linux é o OpenSSH, fornecendo acesso seguro de shell remoto aos sistemas Linux. Sete lançamentos do OpenSSH ocorreram desde a versão 8.2 foi incluído no Ubuntu 20 anterior.04 Lançamento do LTS, trazendo uma variedade de melhorias para administradores, desenvolvedores e usuários do sistema. Em particular, o uso de tokens de segurança de hardware U2F/FIDO foi bastante aprimorado no OpenSSH 8.9, trazendo benefícios significativos da experiência do usuário ao usar esses dispositivos de autenticação de segundo fator para acesso remoto.
nftables como o back -end de firewall padrão
O firewalling no Linux consiste em dois componentes – o mecanismo de firewall dentro do kernel Linux, e as ferramentas usadas para configurar isso no Usuáriospace. O kernel Linux tradicionalmente apoia dois subsistemas diferentes para políticas de firewall – iptables / xtables e os novos NFTables. O Nftables traz benefícios significativos, tanto em termos de desempenho quanto de flexibilidade ao criar e implantar regras de firewall, principalmente para sistemas de pilha dupla IPv4/IPv6. O tradicional iptables Ferramenta de gerenciamento de espaço de usuários agora configura o nftables back -end do kernel, enquanto o novo NFT A ferramenta de espaço de usuários também está presente para permitir a criação de regras mais flexíveis não suportadas pelo tradicional iptables paradigma.
GCC 11 e Bash 5.1
GCC 11.2 traz recursos aprimorados de análise estática, permitindo que os desenvolvedores detectem e remediem potenciais vulnerabilidades de software e outros problemas durante o ciclo de desenvolvimento. Isso inclui suporte para detectar possível desreferência de ponteiro nulo e livre de uso, vazamento de memória e chamadas inseguras de dentro das condições do manipulador de sinal. Usando o Ubuntu 22.04 LTS Como base para suas plataformas de desenvolvimento, os desenvolvedores de software podem ajudar a garantir que o código que eles escrevem é o mais correto e livre possível.
Desenvolvedores e administradores de sistemas também se beneficiarão da inclusão de Bash 5.1. Este lançamento do venerável shell inclui suporte nativo para uma geração de números de pseudo-aleatórios aprimorados por meio da variável $ srandom. Ao contrário da variável histórica de $ Random, $ srandom é derivado do kernel’S /dev /urandom seguro de origem aleatória, garantindo que sua saída não possa ser facilmente prevista por possíveis atacantes.
Diretórios domésticos privados
Tradicionalmente, os sistemas ubuntu optaram pela conveniência do acesso compartilhado ao usuário’s diretórios domésticos, apoiando casos de uso, como PCs compartilhados em ambientes universitários e domésticos. No entanto, à medida que o cenário da tecnologia evoluiu, e o Ubuntu se tornou dominante em outros domínios, como a computação em nuvem e a Internet das Coisas (IoT), uma abordagem mais defensiva agora é considerada necessária para proteger os usuários e seus dados. Ubuntu 22.04 LTS agora permite diretórios domésticos privados por padrão, garantindo que os dados de um usuário não sejam acessíveis a outras pessoas sem sua permissão explícita.
No total, a gama de melhorias de segurança no Ubuntu 22.04 LTS o torna o lançamento do Ubuntu mais seguro até o momento, aproveitando e construindo os vários outros recursos de endurecimento e segurança que há muito tempo são uma parte central do Ubuntu. Além disso, atualizações de segurança e Kernel LivePatching para 22.04 LTS são fornecidos por dez anos por meio de uma assinatura do Ubuntu Advantage, continuando a referência dos lançamentos do Ubuntu LTS, que servem como a base mais segura sobre a qual desenvolver e implantar aplicativos e serviços Linux.
Interessado em administrar o Ubuntu em sua organização?
Configurando o firewall nftables
Por: Jeroen van Kessel | 1º de junho de 2020 | 10 min de leitura
Nftables (Netfilter) consolida tabelas em um novo firewall Linux baseado em kernel. A maioria das distribuições Linux está mudando de iptables para nftables como sua estrutura de firewall padrão. Nftables agora é o padrão no Debian 10, Ubuntu 20.04, RHEL 8, SUSE 15 e Fedora 32. Hora de migrar!
Esta postagem do blog elabora como configurar nftables com base em um modelo de perímetro, que é visualizado metaforicamente na figura 1. Olhe para um modelo de rede de confiança zero se quiser preencher as lacunas de uma abordagem baseada em perímetro. Confira também PF se precisar de uma solução robusta de firewall na borda da sua rede.
Figura 1: Fort Bourtange, Holanda (foto de Elise van Heck)
Introdução com Nftables
Primeiro, instalamos nftables:
$ sudo apt -get install nftables -y
$ nft -v nftables v0.9.3 (Topsy)
Em seguida, habilitamos os nftables na inicialização e iniciamos o daemon:
$ sudo systemctl atabille nftables $ sudo systemctl start nftables $ sudo syst4 status nftables nftables.Serviço - Nftables carregados: carregado (/lib/systemd/system/nftables.serviço; desabilitado; predefinição do fornecedor: ativado) ativo: ativo (saiu); Há 1s documentos: homem: nft (8) http: // wiki.nftables.Processo de Org: 16565 ExecStart =/usr/sbin/nft -f/etc/nftables.conf (code = saiu, status = 0/success) PID principal: 16565 (Code = EXITED, STATUS = 0/SUCCESSO)
Como funciona os nftables
Nftables é, em essência. Esses filtros de rede são hierárquicos e dependentes da ordem. A Figura 1 mostra como as funções nftables baseadas no modelo TCP/IP:
Figura 1: Modelo Nftables TCP/IP
Vamos começar de baixo no modelo TCP/IP. O link de dados é o ponto em que você pode otimizar o tráfego para NICs específicas (virtuais) (cartões de interface de rede) com base no seu VNIC (iifName) e no VNIC (OIFNAME) (OIFNAME). Dessa forma, você pode segmentar o tráfego de dados (e.g. HTTPS) do tráfego de gerenciamento (e.g. Ssh ou vnc).
No link de dados, o protocolo ARP (Protocolo de Resolução de Endereço) é usado para resolver um endereço IP em um endereço MAC. Durante a transmissão inicial do ARP, uma entidade maliciosa poderia tentar associar seu endereço MAC ao endereço IP do endereço IP do host solicitado, fazendo com que o tráfego destinado ao endereço IP seja enviado ao host do atacante em vez. Você pode controlar o tráfego ARP na seção de filtro ARP (1).
Em seguida, é o TCP/IP Internetwork e a camada de transporte com filtro IP e filtro IP6 (2). Esses filtros nos ajudam. Os nftables podem filtrar pacotes com base no protocolo de rede, porta de destino (DPORT), porta de origem (esporte) e seu estado de sessão (estado de CT). Nota pequena – o protocolo ICMP faz na verdade parte do protocolo IP e, portanto, opera tecnicamente na camada de trabalho da Internet. Idealmente, suas tabelas IP e IP6 devem bloquear qualquer tráfego de rede (queda), a menos que seja explicitamente permitido (aceite).
Nftables é um filtro de rede e não uma camada nativa 7 (L7) Firewall do aplicativo (3). As portas de rede geralmente são confundidas com controles de rede de aplicativos. Esteja ciente de que um ator malicioso pode encaixar uma concha reversa sobre a porta TCP 443 (HTTPS) ou a porta UDP 53 (DNS). A filtragem de aplicação (L7) pode preencher essas lacunas alavancando um proxy da Web para o tráfego HTTPS e os sistemas de prevenção de intrusões (IPS) para soltar tráfego túnel malicioso em relação a outros protocolos de rede, mesmo sobre o ICMP. DPI (Inspeção Deep Packets) é a palavra -chave aqui.
Como configurar os nftables
Vamos editar diretamente o /etc /nftables.Config Config File em vez de usar a NFT CLI (NFT Add) e (NFT Delete). Este arquivo de configuração é carregado por padrão na inicialização. Você tem que ser raiz (sudo) para definir filtros de firewall em portas sob 1024.
$ sudo cp /etc /nftables.conf /etc /nftables.conf.bak $ sudo vi /etc /nftables.conf
Primeiro definimos variáveis que podemos usar mais adiante em nosso conjunto de regras:
define nic_name = "eth0" define nic_mac_gw = "de: ad: be: ef: 01: 01" define nic_ip = "192.168.1.12 "Definir local_inetw = < 192.168.0.0/16 >Definir local_inetwv6 = < fe80::/10 >Defina DNS_SERVERS = < 1.1.1.1, 8.8.8.8 >Defina ntp_servers = < time1.google.com, time2.google.com, time3.google.com, time4.google.com >Defina DHCP_SERVER = "192.168.1.1 "
O NFTables mapeia automaticamente os nomes de protocolos de rede para números de porta (e.g. Https <> 443). Em nosso exemplo, permitimos apenas sessões de entrada que iniciamos (Estado da CT estabelecido aceita) a partir de portas efêmeras (Dport 32768-65535). Esteja ciente de um aplicativo ou servidor da web deve permitir sessões recém -iniciadas (CT State New).
Tabela Filtro IP < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip saddr != 127.0.0.0/8 drop iifname $NIC_NAME ip saddr 0.0.0.0/0 ip daddr $NIC_IP tcp sport < ssh, http, https, http-alt >TCP Dport 32768-65535 Estado de CT estabelecido Aceitar iifname $ nic_name ip saddr $ ntp_servers ip daddr $ nic_ip udp esport ntp udp dport 32768-65535 ct estado estabelecido ifname $ nic_name ipdds $ dhcp_ser dhcp_ser dhcp_per 5535 CT Estado estabelecido LOG ACEITO IIFNAME $ NIC_NAME IP SADDR $ DNS_SERVERS IP DADDR $ NIC_IP UDP DOMAIN SPORT UDP DPORT 32768-65535 CT Estado estabelecido IIFName $ Nic_Name $ Saddr Local_iMetw IP Daddr $ Nic_ip icmp tipo icmppi-shrecho ° < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip daddr != 127.0.0.0/8 drop oifname $NIC_NAME ip daddr 0.0.0.0/0 ip saddr $NIC_IP tcp dport < ssh, http, https, http-alt >TCP Sport 32768-65535 CT Estado novo, estabelecido aceita oifname $ nic_name ip daddr $ ntp_servers ip saddr $ nic_ip udp dport ntp udp sport 32768-65535 ct estado novo, estabelecida ofname $ nic_name dhc $ dhc $ dhc ° dhc ° dhc ° dhc ut stt ° 8-65535 CT Estado novo, Log estabelecido Aceite oifname $ nic_name ip daddr $ dns_servers ip saddr $ nic_ip udp domínio dport udp sport 32768-65535 ct estatal new, accete aceita oifname $ nic_name ipdrd $ local_inetw saddrdrds $ nic_n nic_nic icmname $ nic_name ipd ° < type filter hook forward priority 0; policy drop; >>
O próximo bloco de código é usado para bloquear o tráfego IPv6 de entrada e saída, exceto solicitações de ping (tipo de eco-request do tipo icmpv6) e descoberta de rede IPv6 (nd-router-advert, nd-neighbor-solicit, nd-neigh-advert). Os VNICs são frequentemente provisionados automaticamente com endereços IPv6 e deixados intocados. Essas interfaces podem ser abusadas por entidades maliciosas para túneis de dados confidenciais ou até mesmo um shell.
Tabela IP6 Filtro < chain input < type filter hook input priority 0; policy drop; iifname "lo" accept iifname "lo" ip6 saddr != ::1/128 drop iifname $NIC_NAME ip6 saddr $LOCAL_INETWv6 icmpv6 type < destination-unreachable, packet-too-big, time-exceeded, parameter-problem, echo-reply, nd-router-advert, nd-neighbor-solicit, nd-neighbor-advert >Estado de CT Estado estabelecido Aceitar> Saída da cadeia < type filter hook output priority 0; policy drop; oifname "lo" accept oifname "lo" ip6 daddr != ::1/128 drop oifname $NIC_NAME ip6 daddr $LOCAL_INETWv6 icmpv6 type echo-request ct state new,established accept > < type filter hook forward priority 0; policy drop; >>
O último bloco de código é usado para o tráfego ARP, que limita os quadros de rede de transmissão ARP:
Tabela Filtro ARP < chain input < type filter hook input priority 0; policy accept; iif $NIC_NAME limit rate 1/second burst 2 packets accept >saída de cadeia < type filter hook output priority 0; policy accept; >>
$ sudo systemctl reinicie nftables && systatusctl status nftables && nft list
Considerações
Certifique -se de testar suas portas estão realmente abertas ou fechadas. Você pode usar NC, telnet ou tcpdump para isso.
Nftables pode registrar ações em/var/log/syslog . Você deve aproveitar o RSYSLog para encaminhar logs para sua solução Siem favorita para obter uma noção melhor da sua rede.
Com o esqueleto certo, o Nftables facilita a vida para os engenheiros de DevOps aplicar o firewalling de micro -segmentação. Os engenheiros do DevOps podem provisionar regras modulares de firewall para hosts baseados em Linux usando uma ferramenta de gerenciamento de configuração, como Ansible. Esses conjuntos de regras do firewall são então empurrados e carregados com base na função central da VM ou contêiner. Por exemplo, os servidores de banco de dados devem conversar apenas com um subconjunto limitado de servidores da Web. Essa maneira de provisionar as regras do firewall em um nível de host deve reduzir a superfície de ataque para o movimento lateral por um ator malicioso.
Esta postagem do blog apenas tocou nos principais recursos de firewall da NFTABLES. Confira a página do Wiki Nftables para obter mais técnicas de firewall. Lembre -se de que uma solução de firewall não substitui necessariamente outra. Veja também um firewall de borda se você não tiver um domínio de rede de confiança zero.
Discussão e perguntas
Copyright 2019 – 2023 Cryptsus. Todos os direitos reservados.
O código está sob a nova licença de distribuição de software Berkeley (BSD) porque nos preocupamos em construir um mundo mais aberto.