Internet Control Message Protocol, também conhecido como ICMP, é um protocolo usado para verificar a conectividade dos hosts em uma rede. Também podemos usar este protocolo para diagnosticar os problemas em uma rede. Mas, do ponto de vista da segurança, também pode ser usado por alguém para realizar um ataque DDoS. Uma inundação de ping ou um ataque de negação de serviço distribuído (DDoS) é uma forma de ataque em que alguém envia muitas solicitações de ping para um host e o host se torna quase inacessível para o tráfego de rotina. Para evitar esse tipo de situação, os administradores de rede geralmente bloqueiam o ICMP em sua rede. Neste artigo, aprenderemos como as tabelas de IP podem ser usadas para bloquear ICMP em nosso servidor.
Quais são as tabelas IP?
IP Tables é um programa utilitário de firewall para sistemas operacionais Linux. Ele pode ser usado para aceitar, negar ou retornar o tráfego de rede de ou para uma fonte. Ele observa o tráfego de rede que se aproxima usando diferentes conjuntos de regras definidas em uma tabela. Esses conjuntos de regras são chamados de cadeias. As tabelas de IP observam pacotes de dados e quais pacotes correspondem às regras são direcionados para outra cadeia ou atribuídos a um dos seguintes valores.
- ACEITARAM: O pacote terá permissão para passar
- SOLTA: O pacote não terá permissão para passar
- RETORNA: A cadeia retornará o pacote para a cadeia anterior.
Instalando Tabelas IP
Para a maioria das distribuições Linux, as tabelas IP vêm pré-instaladas. Você pode verificar se as tabelas de IP estão instaladas ou não digitando o seguinte comando no terminal.
[email protegido]: ~ $ iptables --versionSe as tabelas de IP não estiverem instaladas, você pode instalá-las executando o seguinte comando no terminal.
[email protegido]: ~ $ sudo apt-get update[email protegido]: ~ $ sudo apt-get install iptables
Podemos verificar o status padrão das tabelas de IP executando o seguinte comando no terminal.
[email protegido]: ~ $ sudo iptables -L -vO sinalizador '-L' lista todas as regras e o sinalizador '-v' mostra informações detalhadas.
Como alternativa, também podemos listar todas as regras adicionadas às tabelas de IP executando o seguinte comando no terminal.
[email protegido]: ~ $ sudo iptables -S
Por padrão, todas as cadeias estão aceitando os pacotes e essas cadeias não têm regras atribuídas.
Atribuição de regras às cadeias
Inicialmente, nenhuma regra é atribuída a qualquer cadeia e todas estão aceitando o tráfego de rede. Agora, nesta seção, veremos como podemos definir regras personalizadas para bloquear ou permitir o tráfego de rede. Para definir uma nova regra, usamos o sinalizador 'A' (anexar), que informa às tabelas de IP que uma nova regra será definida. As seguintes opções também são usadas junto com o sinalizador 'A' para descrever a regra.
-eu (interface): Esta opção indica por meio de qual interface você deseja que o tráfego de rede seja permitido ou bloqueado. Você pode obter uma lista de todas as interfaces em seu sistema executando o seguinte comando no terminal.
[email protegido]: ~ $ ifconfig-p (protocolo): Esta opção define qual protocolo você deseja filtrar usando tabelas de IP. Pode ser TCP, UDP, ICMP, ICMPV6, etc. Você pode aplicar regras a todos os protocolos usando todas as opções.
-s (origem): Esta opção mostra a origem do tráfego de rede, como endereço IP ou nome de domínio.
-dport (porta de destino): Esta opção é usada para indicar a porta de destino para o tráfego de rede.
-j (alvo): Esta opção é usada para mostrar o alvo. Pode ser ACCEPT, DROP, REJECT ou RETURN. Esta opção é obrigatória para todas as regras.
Em geral, a sintaxe básica para adicionar uma regra será a seguinte:
[email protegido]: ~ $ sudo iptables -A-p