O Guia para iniciantes para os comandos iptables (Linux Firewall)

O Guia para iniciantes para os comandos iptables (Linux Firewall)

Se você está usando computadores por enquanto, deve estar familiarizado com a palavra “Firewall”. Sabemos que as coisas parecem complexas da superfície, mas através deste tutorial, vamos explicar a base de Iptable E o uso de comandos básicos para que, mesmo que você seja um aluno de rede ou queira mergulhar profundamente nas redes, você possa se beneficiar deste guia.

O que é iptables?

A maneira como a Firewall Trabalhos é bastante simples. Ele cria uma barreira entre redes confiáveis ​​e não confiáveis ​​para que seu sistema possa estar seguro de pacotes maliciosos.

Mas como vamos decidir o que é seguro e o que não? Por padrão, você tem algum privilégio para configurar regras para o seu firewall, mas para uma vigilância mais detalhada de pacotes de entrada e saída, Iptables são o que você mais precisa.

Iptables pode ser usado para computação pessoal ou também pode ser aplicado a toda a rede. Usando Iptables, Definiremos um conjunto de regras pelas quais podemos monitorar, permitir ou bloquear pacotes de rede de entrada ou saída.

Em vez de apenas focar em toda a parte da teoria, apenas discutiremos o que importa no mundo prático. Então, vamos começar com a compreensão dos conceitos centrais de Iptables.

Compreendendo o conceito de iptables

Enquanto discutia Iptables, Devemos entender 3 termos: Mesas, Correntes, e Regras. Como essas são as partes importantes, vamos discutir cada uma delas.

Então, vamos começar com Mesas.

Mesas em iptables

Existem 5 tipos de mesas em iptables e cada um tem regras diferentes aplicadas. Então, vamos começar com a tabela mais comum “Arquivador”.

  1. Tabela de filtro - Esta é a tabela padrão e principal enquanto usa Iptables. Isso significa que sempre que você não mencionará nenhuma tabela específica ao aplicar regras, eles serão aplicados à tabela de filtro. Como o seu nome sugere, o papel da tabela de filtro é decidir se os pacotes devem ter permissão para chegar ao seu destino ou negar seu pedido.
  2. NAT (tradução de endereço de rede) - Como o seu nome sugere, esta tabela permite que os usuários determinem a tradução de endereços de rede. O papel desta tabela é determinar se deve modificar e como modificar a fonte e o destino do endereço do pacote.
  3. Tabela de mangle - Esta tabela nos permite modificar os cabeçalhos IP dos pacotes. Por exemplo, você pode ajustar Ttl para alongar ou curto salto de rede que o pacote pode sustentar. Da mesma forma, outros cabeçalhos de IP também podem ser modificados de acordo com sua preferência.
  4. Mesa crua - O uso principal desta tabela é rastrear conexões, pois fornece um mecanismo para marcar pacotes para visualizar pacotes como parte de uma sessão em andamento.
  5. Tabela de segurança - Usando a tabela de segurança, os usuários podem aplicar internos Selinux Marcas de contexto de segurança em pacotes de rede.

Para os casos de maior uso, os últimos 2 tipos (CRU e Segurança) da tabela não têm muito o que fazer e apenas as três primeiras opções são contadas como mesas principais.

Agora, vamos falar sobre Correntes.

Correntes em iptables

Eles se comportam em pontos na rota da rede, onde podemos aplicar regras. Em iptables, nós 5 tipos de correntes e discutiremos cada um deles. Lembre -se de que nem cada tipo de corrente está disponível para cada tipo de tabela.

  1. Pré-root - Essa cadeia é aplicada a qualquer pacote de entrada depois de entrar na pilha de rede e essa cadeia é processada mesmo antes de qualquer decisão de roteamento ter sido tomada em relação ao destino final do pacote.
  2. Cadeia de entrada - É o ponto em que um pacote entra na pilha de rede.
  3. Cadeia para a frente - É o ponto em que o pacote foi encaminhado através do seu sistema.
  4. Cadeia de saída - A cadeia de saída é aplicada ao pacote quando se originou através do seu sistema e sai.
  5. Pós-root - Este é o oposto completo da cadeia de pré-rotação e é aplicado a pacotes encaminhados ou de saída depois que a decisão de roteamento for tomada.

Agora, a única coisa que resta a discutir é regras, E é o mais fácil dos 3 que discutimos aqui. Então, vamos completar o que resta na parte teórica.

Regras em iptables

Regras não são nada além do conjunto ou comandos individuais pelos quais os usuários manipulam o tráfego de rede. Quando cada cadeia entrará em ação, o pacote será verificado contra regras definidas.

Se uma regra não satisfazer a condição, ela será ignorada para a próxima e, se satisfazer a condição, a próxima regra será especificada pelo valor do alvo.

Cada regra tem dois componentes: o Componente correspondente e a Componente de destino.

  1. Componente correspondente - São condições diferentes para definir regras que podem ser correspondidas por protocolo, endereço IP, endereço da porta, interfaces e cabeçalhos.
  2. Componente de destino - Esta é uma ação que será acionada assim que as condições forem satisfeitas.

Essa foi a parte de explicação e agora estaremos cobrindo comandos básicos relacionados a Iptables em Linux.

Instalando o firewall iptables no Linux

Nas distribuições modernas do Linux, como o POP!_OS, Iptables vem pré-instalado, mas se o seu sistema não possui o pacote iptables, você poderá instalá-lo facilmente por instruções:

Para instalar iptables em distribuições Linux baseadas em RHEL, como Rocky Linux, Almalinux e Centos Stream, use o seguinte comando dnf.

$ sudo dnf install iptables services 

Importante: Se você estiver usando o firewalld, precisará desativá -lo antes de prosseguir para a instalação. Para parar o firewall completamente, você terá que utilizar os seguintes comandos:

$ sudo systemctl stop firewalld $ sudo systemctl desative firewalld $ sudo systemctl máscara firewalld 

Para instalar iptables nas distribuições Linux baseadas no Debian, use o seguinte comando apt.

$ sudo apt install iptables 

Depois de instalar Iptables, Você pode ativar o firewall por dados comandos:

$ sudo systemctl atability iptables $ sudo systemctl start iptables 

Para monitorar o estado do Iptable Serviço, você pode usar o comando fornecido:

$ sudo status do Systemctl iptables 
Verifique o status iptables

Aprenda básicos do comando iptables no Linux

Depois de terminar a instalação, podemos prosseguir com a sintaxe de Iptables que permitirão que você ajuste os padrões e permitirá que você configure conforme suas necessidades.

A sintaxe básica de Iptables é o seguinte:

# iptables -t tipo de tabela -Options Chain Points condição ou componente correspondente ação 

Vamos entender a explicação do comando acima:

Mesa

A primeira parte é -t onde podemos escolher entre 5 opções de tabela disponíveis e se você remover o -t parte do comando, ele usará filtro tabela como é o tipo de tabela padrão.

Opções de cadeia

A segunda parte é para o corrente. Aqui você pode escolher entre diferentes opções de ponto de corrente e essas opções são fornecidas abaixo:

  • -A - Adiciona uma nova regra à corrente no final da corrente.
  • -C - Verifica a regra se ela satisfaz a exigência da cadeia.
  • -D - Permite que os usuários excluam uma regra existente da cadeia.
  • -F - Isso removerá cada regra definida pelo usuário.
  • -EU - Permite que os usuários adicionem uma nova regra na posição especificada.
  • -N - Cria uma cadeia totalmente nova.
  • -v - Quando usado com a opção Lista, traz informações detalhadas.
  • -X - Exclui a cadeia.

Componente correspondente

As opções correspondentes são a condição para verificar o requisito da cadeia. Você pode escolher entre várias opções e algumas delas são dadas abaixo:

Protocolos -P Fonte IP -s Ip -d de destino na interface -i interface -O 

Para TCP, Eles são os seguintes:

-Esporte -dport - -tcp -flags 

Componente de ação

Agora, se considerarmos a parte da ação, as opções disponíveis dependem do tipo de tabela como Nat, e a tabela de mangle tem mais opções em comparação com outras. Ao usar a ação, você também pode segmentar uma tabela ou cadeia específica.

A ação mais usada é Salto (-j) que nos dará várias opções, como:

  • ACEITAR - É usado para aceitar pacotes e atravessar a extremidade.
  • DERRUBAR - É usado para soltar pacotes e atravessar a extremidade.
  • REJEITAR - Isso é bastante parecido com a queda, mas envia pacotes rejeitados para a fonte.
  • RETORNAR - Isso parará de atravessar o pacote na sub -cadeia e enviará o pacote específico para a cadeia superior sem efeito.

Quando terminarmos com sintaxe, mostraremos como você pode usar Iptables incluindo configuração básica.

Listando o conjunto atual de regras iptables

Se você quiser verificar o que está passando por seu Firewall Por padrão, listar um conjunto atual de regras é uma maneira perfeita. Para listar as regras aplicadas, use o comando fornecido:

$ sudo iptables -l 
Listando regras iptables

Permitir/negar o tráfego de rede em portas específicas

Nesta seção, mostraremos como você pode permitir ou negar o tráfego de rede para portas específicas. Vamos mostrar a você alguns portos conhecidos como queremos ser tão úteis quanto podemos ser.
Se você quiser permitir Https tráfego de rede, teremos que permitir a porta não 443 Utilizando o comando dado:

$ sudo iptables -a input -p tcp - -dport 443 -j aceita 

Da mesma forma, você também pode desativar Http Tráfego da Web por comando determinado:

$ sudo iptables -a input -p tcp - -dport 80 -j rejeitar 

Explicação das opções de comando usadas:

  • -p é usado para verificar o protocolo especificado e, no nosso caso.
  • --Dport é usado para especificar a porta de destino.
  • -j é usado para agir (aceitar ou soltar).

Controle de tráfego com endereço IP

Sim, você também pode controlar o tráfego de rede de um endereço IP. Não apenas um ou dois, mas também controla o intervalo de endereços IP e mostraremos como.

Para permitir um endereço IP específico, utilize a estrutura de comando fornecida:

$ sudo iptables -a entrada -s 69.63.176.13 -J Aceitar 

Da mesma forma, para soltar pacotes de IP específicos, você deve usar a estrutura de comando fornecida:

$ sudo iptables -a entrada -s 192.168.0.27 -J Drop 

Se desejar, você também pode controlar o intervalo de endereços IP, utilizando a estrutura de comando fornecida:

$ sudo iptables -a entrada -m intervalo -src -gange 192.168.0.1-192.168.0.255 -J Rejeitar 

Excluir regra definida pelo usuário

Às vezes, podemos acabar cometendo erros ao criar regras e a melhor maneira de superar esses erros é excluí -los. A exclusão de regras definidas são o processo mais fácil ao longo deste guia e, para excluí -las, primeiro, teremos que listá -las.

Para listar regras definidas com números, use o comando fornecido:

$ sudo iptables -l -line -numbers 
Liste as regras iptables

Para excluir regras, teremos que seguir a estrutura de comando dada:

$ sudo iptables -d   

Vamos supor que eu queira excluir a 10ª regra de ENTRADA Então, estarei usando o comando fornecido:

$ sudo iptables -d entrada 10 

Para verificar se removemos com sucesso a regra, precisamos listar as regras pelo comando dado:

$ sudo iptables -l -line -numbers 
Confirme as regras iptables

Como você pode ver, removemos com sucesso a 10ª regra.

Salvar regras iptables definidas

Você pode estar se perguntando por que temos que salvar regras onde eles estão trabalhando bem depois de aplicá -los? A questão é uma vez que o seu sistema reinicia, todas as regras definidas que não são salvas serão excluídas, por isso é crucial para nós para eles.

Para salvar regras em RHEL-distros baseados:

$ sudo /sbin /serviço iptables salvar 

Para salvar regras em Debian Derivados:

$ sudo /sbin /iptables-save 

Para saber mais sobre as regras do firewall iptable, confira nosso guia detalhado em:

  • 25 Regras úteis de firewall iptable

Ao longo deste guia, tentamos simplificar as coisas para que todos possam se beneficiar disso. Este foi um guia de explicação básico sobre Iptables E se você tiver alguma dúvida, fique à vontade para perguntar nos comentários.