Pular para o conteúdo
Início » Iptables – Praticidades e Funcionalidades

Iptables – Praticidades e Funcionalidades

O Iptables é uma ferramenta essencial para administradores de sistemas Linux. Ele oferece uma interface para o subsistema de filtragem de pacotes do kernel Linux, permitindo configurar, manter e inspecionar as tabelas de regras de filtragem de pacotes IPv4 e IPv6. As regras do Iptables são usadas para controlar o tráfego de rede que entra e sai do sistema, proporcionando uma camada robusta de segurança e gerenciamento de rede.

Neste tutorial, exploraremos as funcionalidades e praticidades do Iptables, desde os conceitos básicos até configurações avançadas, destacando sua importância no ambiente DevOps e na administração de servidores Linux.

Estrutura do Iptables

O Iptables organiza suas regras em tabelas, que contêm cadeias, onde cada cadeia pode ter várias regras. As principais tabelas e cadeias são:

Tabelas

  1. filter: A tabela padrão para filtragem de pacotes. Contém as cadeias INPUT, FORWARD e OUTPUT.
  2. nat: Usada para Network Address Translation (NAT). Contém as cadeias PREROUTING, POSTROUTING e OUTPUT.
  3. mangle: Usada para modificar pacotes. Contém as cadeias PREROUTING, POSTROUTING, OUTPUT, INPUT e FORWARD.
  4. raw: Usada para configurar exceções de conexão. Contém as cadeias PREROUTING e OUTPUT.
  5. security: Usada para políticas de segurança LSM (Linux Security Modules). Contém as cadeias INPUT, OUTPUT e FORWARD.

Cadeias

  1. INPUT: Processa pacotes que chegam ao sistema.
  2. FORWARD: Processa pacotes que são encaminhados pelo sistema.
  3. OUTPUT: Processa pacotes gerados pelo sistema.
  4. PREROUTING: Modifica pacotes logo que chegam ao sistema (antes do roteamento).
  5. POSTROUTING: Modifica pacotes antes de saírem do sistema (após o roteamento).

Comandos Básicos

Listando Regras

Para visualizar as regras configuradas no Iptables, utilize o comando:

iptables -L

Para uma visualização mais detalhada, incluindo contagem de pacotes e bytes, use:

iptables -L -v

Adicionando Regras

Para adicionar uma regra que permite tráfego HTTP (porta 80) de entrada, use:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Aqui, -A significa “append” (adicionar) à cadeia INPUT, -p tcp especifica o protocolo TCP, --dport 80 define a porta de destino como 80, e -j ACCEPT indica que os pacotes devem ser aceitos.

Removendo Regras

Para remover uma regra específica, utilize o comando:

iptables -D INPUT -p tcp --dport 80 -j ACCEPT

Salvando e Restaurando Regras

Após configurar suas regras, é importante salvá-las para que persistam após reinicializações. Em sistemas baseados em Debian, use:

iptables-save > /etc/iptables/rules.v4

Para restaurar as regras salvas, utilize:

iptables-restore < /etc/iptables/rules.v4

Configurações Comuns

Bloqueando Todo o Tráfego

Para bloquear todo o tráfego de entrada e saída, exceto para conexões estabelecidas, utilize as seguintes regras:

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Aqui, -P define a política padrão para cada cadeia. -m state --state ESTABLISHED,RELATED permite pacotes relacionados a conexões já estabelecidas.

Permitir SSH

Para permitir conexões SSH (porta 22), adicione a seguinte regra:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

NAT e Port Forwarding

Para configurar o NAT e redirecionar a porta 80 do IP público para um servidor interno, use:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -j ACCEPT

Aqui, -t nat especifica a tabela nat, -A PREROUTING adiciona uma regra à cadeia PREROUTING, e --to-destination define o IP e porta de destino.

Ferramentas Auxiliares

Iptables-Persistent

Para facilitar a persistência das regras, pode-se usar o pacote iptables-persistent. Para instalá-lo, utilize:

sudo apt-get install iptables-persistent

Após a instalação, as regras serão automaticamente salvas e restauradas nas reinicializações.

UFW – Uncomplicated Firewall

Para usuários que preferem uma interface mais simplificada, o UFW pode ser uma alternativa ao Iptables. Ele oferece uma camada de abstração que facilita a configuração de regras de firewall. Para instalar o UFW:

sudo apt-get install ufw

Para permitir conexões SSH com o UFW:

sudo ufw allow ssh

Firewalld

Outra alternativa ao Iptables é o firewalld, comum em sistemas baseados em Red Hat. Ele oferece um daemon para gerenciamento dinâmico de firewall com suporte a zonas. Para instalar o firewalld:

sudo yum install firewalld

Para iniciar o serviço e permitir conexões HTTP:

sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

Casos de Uso Avançados

Limitação de Taxa (Rate Limiting)

Para proteger contra ataques de negação de serviço (DoS), pode-se configurar a limitação de taxa. Por exemplo, para limitar novas conexões SSH a 3 por minuto:

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP

Proteção contra IP Spoofing

Para proteger contra falsificação de IP, pode-se adicionar regras para bloquear pacotes com endereços de origem inválidos:

iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP

Registro de Pacotes (Logging)

Para registrar pacotes descartados, adicione uma regra de log antes da regra DROP:

iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "Dropped HTTP: "
iptables -A INPUT -p tcp --dport 80 -j DROP

O Iptables é uma ferramenta poderosa e versátil para a administração de firewalls em sistemas Linux. Seu domínio é essencial para garantir a segurança e a eficiência das redes, especialmente em ambientes complexos de DevOps e administração de servidores.

Este tutorial cobriu desde os conceitos básicos até configurações avançadas, proporcionando uma base sólida para administradores de sistemas. Com prática e exploração contínua, o Iptables pode se tornar uma ferramenta indispensável no arsenal de qualquer profissional de TI.

Para aprofundar ainda mais seus conhecimentos, consulte a documentação oficial do Iptables e explore casos de uso específicos conforme as necessidades do seu ambiente de rede.

Marcações: