- 1. Filtragem de pacotes no Linux
- 2. Exibir o status do firewall
- 3. Pare, reinicie ou inicie o iptables no Linux
- 4. Adicionar novas regras de firewall no Linux
- 5. Exclua uma regra de firewall no Linux
- 6. Armazenar e restaurar regras de iptables no Linux
- 7. Definir regras padrão no Linux
- 8. Bloquear um endereço IP no Linux
- 9. Bloquear solicitações de porta de entrada no Linux
- 10. Permitir ou não o tráfego de rede usando endereço MAC no Linux
- 11. Bloquear ou permitir solicitações ICMP no Linux
- 12. Abra uma variedade de portas e endereços IP no Linux
- 13. Restringir o número de conexões paralelas a um servidor por IP do cliente no Linux
- 14. Restringir o número de conexões paralelas a um servidor por IP do cliente no Linux
- 15. Regras claras de NAT no Linux
- 16. Redefinir contadores de pacote no Linux
- 17. Valide o firewall no Linux
- 18. Permitir acesso de loop com iptables no Linux
- 19. Defina novas strings de iptables no Linux
- 20. Limpe cadeias de firewall ou regras de iptables no Linux
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 reiniciarPasso 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 ACEITARetapa 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-numbersPasso 2
por exemplo, vamos adicionar a seguinte regra:
iptables -I INPUT 2 -s 192.168.0.50 -j DROPetapa 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 | menosPasso 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 sabePasso 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 DROPPasso 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 DROPetapa 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 DROPPasso 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 ACEITARetapa 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 ACEITARAssim, 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 DROPetapa 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-numberPasso 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 -ZPasso 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 startPasso 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 -FComo 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.