Como usar comandos Iptables Netfilter no Linux

Índice

A segurança deve ser sempre uma das premissas em que os administradores, gestão e pessoal de suporte e, em geral, todos os usuários de qualquer sistema operacional atual devem trabalhar devido às múltiplas ameaças que estão presentes na rede.

No caso de distribuições Linux, a maioria deles tem ferramentas avançadas para aplicar um filtro a pacotes de rede, tanto no nível de processamento de controle de pacotes de rede na entrada, movimento, controle e saída da pilha. Redes dentro do kernel do sistema usado portanto, a partir do kernel 2.4, foram introduzidos os iptables, também chamados de netfilter e que possuem um maior nível de segurança e funcionalidades práticas para a proteção do sistema.

iptables lida com a filtragem IPv4 enquanto ip6tables lida com a filtragem IPv6 nas redes atuais.
O Solvetic fará uma análise de como o iptables funciona e alguns dos comandos mais práticos que podemos tirar dele.

1. Filtragem de pacotes no Linux


O kernel das distribuições Linux faz uso da ferramenta Netfilter para realizar o processo de filtragem de pacotes e, assim, realizar as tarefas de recebê-los ou interrompê-los.

Regras integradas ao NetfilterO Netfilter é incorporado por padrão no kernel do Linux e tem três tabelas ou listas de regras integradas assim:

  • filtro: Refere-se à tabela padrão projetada para gerenciamento de pacotes.
  • nat: Sua função é alterar os pacotes que foram criados em uma nova conexão sendo usada principalmente pelo NAT.
  • mangle: Seu uso se aplica quando pacotes de rede específicos devem ser alterados.

Agora, cada tabela possui um grupo de cadeias integradas que estão relacionadas às ações que podem ser realizadas pelo netfilter, são elas:

Regras para tabelas de filtroAs strings integradas para a tabela de filtro são:

  • INPUT: Está relacionado aos pacotes que foram destinados ao host.
  • SAÍDA: Funciona em pacotes de rede gerados localmente.
  • FORWARD: Associa os pacotes que foram roteados através do host principal.

Regras para tabelas natAs strings integradas para a tabela nat são:

  • PREROUTING: Sua função é alterar os pacotes de rede assim que eles chegam.
  • SAÍDA: Ele foi projetado para alterar os pacotes de rede que são criados localmente e são ativados antes de serem enviados.
  • POSTROUTING: Criado para alterar os pacotes antes de serem enviados globalmente.

Regras para pranchas de mangueAs cadeias integradas para a mesa de mangue são:

  • INPUT: Projetado para modificar os pacotes de rede destinados ao host principal.
  • SAÍDA: Criado para alterar pacotes de rede criados localmente e funciona antes de serem enviados.
  • FORWARD: Altera os pacotes que foram roteados pelo host principal.
  • PREROUTING: Sua tarefa é modificar os pacotes de entrada antes de serem roteados.
  • POSTROUTING: Altera pacotes de rede antes que ocorra o processo de envio.

Cada pacote de rede recebido ou enviado do sistema operacional Linux está sempre vinculado a pelo menos uma tabela. Agora, vamos entender alguns dos comandos mais úteis que podemos usar com o iptables.

2. Exibir o status do firewall

Passo 1
Para saber o estado atual do firewall, executamos a seguinte linha:

 sudo iptables -L -n -v 

PROLONGAR

Passo 2
Lá podemos validar cada cadeia com seus respectivos níveis de pacotes gerenciados, os parâmetros usados ​​neste comando são:

-EUExibe as regras da lista.

-vGera informações detalhadas, como nome de interface, mais opções de regra, além de contadores de pacotes e bytes também listados, com sufixo 'K', 'M' ou 'G' para opções de 1000, 1.000.000 e 1.000.000.000, respectivamente.

-nExibe o endereço IP e a porta em formato numérico.

etapa 3
Se desejar, veja este resultado com número de linhas, podemos executar o seguinte:

 iptables -n -L -v --line-numbers 

PROLONGAR

3. Pare, reinicie ou inicie o iptables no Linux

Passo 1
Os principais comandos para gerenciar tarefas iptables no nível de início ou parada são:

 serviço iptables parar serviço iptables iniciar serviço iptables reiniciar
Passo 2
Também será possível usar o comando iptables para parar o firewall e eliminar todas as regras como esta:
 iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X iptables -P ENTRADA ACEITAR iptables -P SAÍDA ACEITAR iptables -P AVANÇAR ACEITAR
etapa 3
Os parâmetros definidos são:

-FRemova todas as regras.

-XExclua uma string.

-ttable_name: Selecione a tabela (chamada nat ou mangle) e apague ou descarte as regras.

-PDefina a política padrão, como DROP, REJECT ou ACCEPT.

4. Adicionar novas regras de firewall no Linux

Passo 1
Uma das tarefas mais práticas do iptables é criar certas regras para o correto gerenciamento dos pacotes, para inserir uma ou mais regras na cadeia selecionada usaremos a seguinte sintaxe onde os números das linhas devem primeiro ser descobertos:

 iptables -L INPUT -n --line-numbers 
Passo 2
por exemplo, vamos adicionar a seguinte regra:
 iptables -I INPUT 2 -s 192.168.0.50 -j DROP 
etapa 3
Posteriormente, veremos as regras usando o comando acima. Lá, vemos que a regra criada foi adicionada na linha 3, conforme indicado.

PROLONGAR

5. Exclua uma regra de firewall no Linux

Passo 1
Em primeiro lugar, devemos mostrar as regras que são criadas para determinar exatamente qual deve ser eliminada, para obter essa informação temos as seguintes opções:

 iptables -L ENTRADA -n --linha-números iptables -L SAÍDA -n --linha-números iptables -L SAÍDA -n --linha-números | menos
Passo 2
Agora, para excluir a regra 3 criada anteriormente, vamos executar o seguinte:
 iptables -D INPUT 3 

PROLONGAR

6. Armazenar e restaurar regras de iptables no Linux

Passo 1
Cada vez que fizermos uma alteração nas regras do iptables devemos proceder para salvar essas alterações, para isso basta executar a seguinte linha:

 serviço iptables sabe 
Passo 2
Podemos simplesmente restaurar as regras que armazenamos executando o seguinte:
 reinicialização de iptables de serviço 

7. Definir regras padrão no Linux


Com o iptables será possível permitir ou negar as regras padrão que devem ser aplicadas a todo o sistema da seguinte maneira.

Passo 1
Para eliminar todo o tráfego, executamos:

 iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Passo 2
Para remover todo o tráfego de entrada:
 iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P SAÍDA ACEITAR iptables -A ENTRADA -m estado - NOVO, ESTABELECIDO -j ACEITAR

PROLONGAR

8. Bloquear um endereço IP no Linux

Com o iptables, será possível bloquear um determinado endereço IP para evitar que ele tenha acesso ao pacote de rede do sistema. Para esta tarefa, temos as seguintes opções:

 iptables -A INPUT -s 192.168.0.14 -j DROP (IP específico) iptables -A INPUT -s 192.168.0.0/24 -j DROP (intervalo de endereços)

9. Bloquear solicitações de porta de entrada no Linux

Passo 1
Outra tarefa típica de segurança é restringir o acesso a pacotes através de uma porta específica, com iptables temos as seguintes opções:

Bloquear todas as açõesBloqueie todas as ações para uma porta específica executando:

 iptables -A INPUT -p tcp --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP

Bloquear uma portaBloqueie uma porta para um endereço IP específico:

 iptables -A INPUT -p tcp -s 192.168.0.14 --dport 80 -j DROP iptables -A INPUT -i eth1 -p tcp -s 192.168.0.1/24 --dport 80 -j DROP

Bloquear endereço IP de saída
É possível bloquear o tráfego de saída para um host ou domínio específico, por exemplo Solvetic.com, para isso executamos o seguinte:

 host -t para solvetic.com 

PROLONGAR

Passo 2
Agora, com este endereço IP, passamos a bloquear:

 iptables -A SAÍDA -d 178.33.118.246 -j DROP 
etapa 3
Também será possível bloquear todo o domínio desta forma:
 iptables -A SAÍDA -p tcp -d www.solvetic.com -j DROP 

10. Permitir ou não o tráfego de rede usando endereço MAC no Linux

Outra possibilidade de uso é restringir ou permitir o uso de pacotes com base no endereço MAC do dispositivo selecionado. Para isso, usaremos uma das seguintes opções:

 iptables -A INPUT -m mac --mac-source 00: 2F: EF: 85: 04: 09 -j DROP (Negar tráfego do endereço MAC selecionado) iptables -A INPUT -p tcp --destination-port 22 - m mac --mac-source 00: 2F: EF: 85: 04: 09 -j ACEITAR (Suporta pacotes do endereço indicado apenas pela porta 22)

11. Bloquear ou permitir solicitações ICMP no Linux


O protocolo ICMP (Internet Control Message Protocol) é um protocolo desenvolvido para gerir informação relativa a erros em computadores da rede local, de forma que com este protocolo podem ser feitas solicitações remotas de verificação de disponibilidade de uma equipa e isto em termos de segurança pode ser delicado .

Passo 1
Podemos executar as seguintes linhas para evitar solicitações ICMP no Linux:

 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP
Passo 2
As respostas do ping também podem ser limitadas a certas redes ou hosts como este:
 iptables -A INPUT -s 192.168.0.1/24 -p icmp --icmp-type echo-request -j ACEITAR 
etapa 3
Seremos capazes de aceitar apenas um tipo limitado de solicitações ICMP como esta:
 iptables -A INPUT -p icmp --icmp-type echo-reply -j ACEITAR iptables -A INPUT -p icmp --icmp-type destino-inacessível -j ACCEPT iptables -A INPUT -p icmp --icmp-type time- excedido -j ACEITAR

12. Abra uma variedade de portas e endereços IP no Linux

Passo 1
Isso é útil se precisarmos habilitar um intervalo definido de portas para realizar ações administrativas ou de execução de programa:

 iptables -A ENTRADA -m estado --estado NOVO -m tcp -p tcp --dport 9000: 9020 -j ACEITAR 
Assim, abrimos a faixa de portas 9000 a 9020 para conexões TCP.

Passo 2
Outra alternativa é habilitar um intervalo de endereços IP configurando uma porta específica como esta. Lá nós autorizamos este intervalo a usar a porta 80.

 iptables -A INPUT -p tcp --destination-port 80 -m iprange --src-range 192.168.0.70-192.168.0.80 -j ACEITAR 

13. Restringir o número de conexões paralelas a um servidor por IP do cliente no Linux

Passo 1
Podemos usar o módulo connlimit para definir essas restrições, por exemplo, para permitir 5 conexões ssh por cliente, inserimos o seguinte:

 iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 5 -j REJEITAR 

PROLONGAR

Passo 2
Para restringir o acesso HTTP a 10:

 iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 --connlimit-mask 24 -j DROP 
etapa 3
Indicamos o seguinte:
  • --connlimit-above 5: Corresponde se o número de conexões existentes for maior que 5.
  • --connlimit-mask 24: Estes são os hosts de grupo que usam o comprimento do prefixo. Para IPv4, deve ser um número entre (incluindo) 0 e 32.

14. Restringir o número de conexões paralelas a um servidor por IP do cliente no Linux

Passo 1
NAT (Network Address Translation) é um sistema para traduzir endereços de rede e assim facilitar a navegação. Para listá-los, vamos executar o seguinte:

 iptables -t nat -L -n -v 

PROLONGAR

Passo 2
Será possível ver este resultado com suas respectivas linhas assim:

 iptables -t nat -v -L -n --line-number 

15. Regras claras de NAT no Linux


Passo 1
Se quisermos excluir as regras de NAT estabelecidas, vamos executar o seguinte:
 iptables -t nat -v -L -n --line-number iptables -t nat -v -L PREROUTING -n --line-number iptables -t nat -v -L POSTROUTING -n --line-number
Passo 2
Para excluir todas as regras de "PREROUTING", executamos a seguinte sintaxe:
 iptables -t nat -D PREROUTING {Número da regra} 
etapa 3
Para excluir todas as regras de "POSTROUTING" que executamos:
 iptables -t nat -D POSTROUTING {número da regra} 

16. Redefinir contadores de pacote no Linux


Primeiro, devemos executar o comando "iptables -L -n -v", que vimos anteriormente, para listar os contadores.

Passo 1
Para limpar esses contadores, basta executar o seguinte:

 iptables -Z 
Passo 2
Para redefinir os contadores apenas de acesso, executamos:
 iptables -Z INPUT 

17. Valide o firewall no Linux

Passo 1
Em primeiro lugar, devemos validar se as portas estão abertas ou não com o seguinte comando:

 netstat -tulpn 

PROLONGAR

Passo 2
Para validar uma porta específica, executamos:

 netstat -tulpn | grep: 80 

PROLONGAR

etapa 3
Caso a porta não esteja aberta, executamos:

 serviço httpd start 
Passo 4
Então, devemos ter certeza de que o iptables tem acesso por meio dessa porta:
 iptables -L INPUT -v -n | grep 80 

18. Permitir acesso de loop com iptables no Linux

O acesso de loopback cujo acesso é do IP 127.0.0.1 é importante e deve sempre ser deixado ativo para tarefas de administração e gerenciamento de rede. Para habilitá-lo no iptables, basta executar o seguinte.

 iptables -A ENTRADA -i lo -j ACEITAR iptables -A SAÍDA -o lo -j ACEITAR

19. Defina novas strings de iptables no Linux


Passo 1
Com o iptables, temos a possibilidade de definir nossa própria cadeia e armazenar regras personalizadas nela. Para definir uma cadeia, executamos o seguinte:
 iptables -N "Nome da string" 
Passo 2
Em seguida, executamos "iptables -L" para listar as strings iptables:

PROLONGAR

etapa 3
No resultado, veremos nossa cadeia criada:

PROLONGAR

20. Limpe cadeias de firewall ou regras de iptables no Linux

Para realizar esta exclusão, devemos executar o seguinte:

 iptables -F 
Como podemos ver, o iptables é uma solução abrangente para gerenciar centralmente vários aspectos de segurança em distribuições Linux para obter melhorias em tudo relacionado à privacidade.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave