Tutorial Iptables Linux: Protegendo seu VPS com o Firewall do Linux
Você está procurando um tutorial completo de iptables para o seu VPS? Este artigo mostrará como instalar e usar o iptables em um sistema Ubuntu. Ao aprender sobre esta ferramenta nativa de firewall do Linux, você pode proteger seu VPS faiclmente usando a interface de linha de comando do sistema operacional. Vamos lá?
Conteúdo
O Que é Iptables?
Iptables é um programa de firewall para Linux. Ele irá monitorar o tráfego de entrada e saída do seu servidor usando tabelas. Essas tabelas contêm conjuntos de regras, chamadas cadeias (chains), que irão filtrar pacotes de dados de entrada e saída.
Como o Iptables Funciona?
Iptables é um programa de firewall para Linux. Ele irá monitorar o tráfego de e para o seu servidor usando tabelas. Essas tabelas contêm conjuntos de regras, chamados cadeias, que irão filtrar pacotes de dados de entrada e saída.
Quando um pacote corresponde a uma regra, a ele é atribuído um alvo, que pode ser outra cadeia ou um desses valores especiais:
- ACCEPT – permitirá que o pacote passe.
- DROP – não permitirá que o pacote passe.
- RETURN – interrompe o pacote de atravessar uma cadeia e diz para que ele volte à cadeia anterior.
Neste tutorial de iptables, vamos trabalhar com uma das tabelas padrão, chamada filter. Ela consiste em três cadeias:
- INPUT – controla pacotes que estão sendo recebidos pelo servidor.
- FORWARD – filtra pacotes recebidos que serão encaminhados para outro lugar.
- OUTPUT – filtra pacotes que estão saindo do seu servidor.
Antes de começarmos este guia, certifique-se de ter acesso SSH root ou sudo à sua máquina, que deve estar rodando o Ubuntu 16.04 ou superior. Você pode estabelecer a conexão através do PuTTY (Windows) ou terminal shell (Linux, macOS). Se você possui o Servidor VPS da Hostinger, pode obter os detalhes de login SSH na aba Servidores do hPanel.
Importante! As regras do iptables se aplicam apenas ao ipv4. Se você deseja configurar um firewall para o protocolo ipv6, precisará usar o ip6tables em vez disso.
Como Instalar e Usar o Firewall Linux Iptables
Vamos dividir este tutorial de iptables em três etapas. Primeiro, você aprenderá como instalar a ferramenta no Ubuntu. Em segundo lugar, vamos mostrar como definir as regras. Por fim, vamos te orientar a fazer alterações persistentes no iptables.
1. Instale o Iptables
O Iptables vem pré-instalado na maioria das distribuições Linux. No entanto, se você não o tem no sistema Ubuntu/Debian por padrão, siga os passos abaixo:
1. Conecte-se ao seu servidor via SSH. Se você não sabe como fazer isso, pode ler nosso tutorial SSH.
2. Execute os seguintes comandos, um de cada vez:
sudo apt-get update sudo apt-get install iptables
3. Verifique o status da sua configuração atual do iptables executando:
sudo iptables -L -v
Aqui, a opção -L é usada para listar todas as regras, e -v serve para mostrar as informações em um formato mais detalhado. Abaixo está o exemplo de saída:
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Agora você terá o firewall iptables do Linux instalado. Neste ponto, você pode perceber que todas as cadeias estão definidas para ACCEPT e não têm regras. Essa configuração não é segura, pois qualquer pacote pode passar sem filtragem.
Mas não se preocupe! Vamos te orientar sobre como definir regras na próxima etapa do nosso tutorial de iptables.
2. Defina Regras de Cadeia
Definir uma regra significa anexá-la à cadeia. Para fazer isso, você precisa inserir a opção -A (Anexar) logo após o comando iptables, da seguinte forma:
sudo iptables -A
Ele alertará o iptables de que você está adicionando novas regras a uma cadeia. Então, você pode combinar o comando com outras opções, como:
- -i (interface) — a interface de rede cujo tráfego você deseja filtrar, como eth0, lo, ppp0, etc.
- -p (protocolo) — o protocolo de rede onde ocorre o seu processo de filtragem. O protocolo em questão pode ser tcp, udp, udplite, icmp, sctp, icmpv6, e assim por diante. Alternativamente, você pode digitar all para escolher todos os protocolos.
- -s (source) — a fonte (endereço) de onde vem o tráfego. Você pode adicionar um hostname ou endereço IP.
- –dport (porta de destino) — o número da porta de destino de um protocolo, como 22 (SSH), 443 (https), etc.
- -j (alvo) — o nome do alvo (ACCEPT, DROP, RETURN). Você precisa incluir essa opção isso toda vez que criar uma nova regra.
Se você quiser usar todas as regras, você deve escrever o comando nesta ordem:
sudo iptables -A <chain> -i <interface> -p <protocol (tcp/udp) > -s <source> --dport <port no.> -j <target>
Uma vez que você entenda a sintaxe básica dos comandos, pode começar a configurar o firewall para dar mais segurança ao seu servidor. Para este tutorial de iptables, vamos usar a cadeia INPUT como exemplo.
Habilitando Tráfego no Localhost
Para permitir tráfego no localhost, digite este comando:
sudo iptables -A INPUT -i lo -j ACCEPT
Para este tutorial de iptables, usamos a interface lo ou loopback. Ela é utilizada para todas as comunicações no localhost. O comando acima garantirá que as conexões entre um banco de dados e uma aplicação web na mesma máquina estejam funcionando corretamente.
Habilitando Conexões em Portas HTTP, SSH e SSL
Em seguida, queremos que as conexões http (porta 80), https (porta 443) e ssh (porta 22) funcionem como de costume. Para fazer isso, precisamos especificar o protocolo (-p) e a porta correspondente (–dport). Você pode executar esses comandos um por um:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
É hora de verificar se as regras foram anexadas no iptables:
sudo iptables -L -v
O comando deverá retornar com os resultados abaixo, o que significa que todas as conexões do protocolo TCP das portas especificadas serão aceitas:
Filtrando Pacotes Com Base na Origem
O Iptables permite que você filtre pacotes com base em um endereço IP ou em uma faixa de endereços IP. Você precisa especificar isso após a opção -s. Por exemplo, para aceitar pacotes de 192.168.1.3, o comando seria:
sudo iptables -A INPUT -s 192.168.1.3 -j ACCEPT
Você também pode rejeitar pacotes de um endereço IP específico substituindo o alvo ACCEPT por DROP.
sudo iptables -A INPUT -s 192.168.1.3 -j DROP
Se você deseja descartar pacotes de uma série de endereços IP, você precisa usar a opção -m e o módulo iprange. Então, especifique o intervalo de endereço IP com –src-range. Lembre-se, um hífen deve separar o intervalo de endereços IP sem espaços, assim:
sudo iptables -A INPUT -m iprange --src-range 192.168.1.100-192.168.1.200 -j DROP
Descartando Todo o Tráfego Não-Autorizado
É crucial usar o alvo DROP para todo o outro tráfego após definir as regras de –dport. Isso impedirá uma conexão não autorizada de acessar o servidor através de outras portas abertas. Para configurar isso, basta digitar:
sudo iptables -A INPUT -j DROP
Agora, a conexão fora da porta especificada será interrompida.
Excluindo Regras
Se você deseja remover todas as regras e começar do zero, pode usar a opção -F (limpar):
sudo iptables -F
Este comando apaga todas as regras atuais. No entanto, para excluir uma regra específica, você deve usar a opção -D. Primeiro, você precisa ver todas as regras disponíveis inserindo o seguinte comando:
sudo iptables -L --line-numbers
Você receberá uma lista de regras com números:
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 192.168.0.4 anywhere 2 ACCEPT tcp -- anywhere anywhere tcp dpt:https 3 ACCEPT tcp -- anywhere anywhere tcp dpt:http 4 ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
Para deletar uma regra, insira a cadeia correspondente e o número da lista. Vamos supor, para este tutorial de iptables, que queremos nos livrar da regra número três da cadeia INPUT. O comando deve ser:
sudo iptables -D INPUT 3
Alternativamente, se você precisa filtrar apenas o tráfego de entrada, você pode usar o Firewall VPS da Hostinger. Selecione seu VPS e navegue até a seção Firewall:
Crie uma nova configuração, dê um nome a ela e especifique quaisquer regras de tráfego de entrada que você preferir:
3. Concretizar as Alterações
As regras do iptables que criamos são salvas na memória. Isso significa que temos que salvá-las em um arquivo para poder carregá-las novamente após uma reinicialização. Para fazer essas alterações, você pode usar esses comandos, dependendo se está salvando regras IPv4 ou IPv6:
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-save > /etc/iptables/rules.v6
Agora, sempre que você reiniciar seu VPS, precisará carregar as regras salvas com os seguintes comandos:
sudo iptables-restore < /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v6
Se você deseja que o processo de carregamento seja completamente automático, pode configurar o pacote iptables-persistent e ele cuidará do carregamento das regras.
sudo apt-get install iptables-persistent
Após a instalação, será solicitado que você salve as regras atuais. Escolha Sim para ambos IPv4 e IPv6 e finalize a configuração. Agora o processo de carregamento será automático. Lembre-se de que você ainda precisará usar o comando sudo iptables-save toda vez que fizer alterações no iptables.
Conclusão
O Iptables é um poderoso programa de firewall que você pode usar para proteger seu servidor Linux ou VPS. A parte boa é que você pode definir várias regras com base em suas preferências.
Neste tutorial de iptables, você aprendeu como instalar e usar a ferramenta. Agora, esperamos que você possa gerenciar seus conjuntos de regras para filtrar pacotes de entrada e saída.
É hora de testar por conta própria — e boa sorte!
Descubra Mais Sobre Como Proteger Seu Linux
Como Configurar OpenVPN em VPS
Guia para Configurar Fail2Ban no CentOS
Como Configurar o Firewall UFW no Ubuntu
Tutorial para Instalar o ClamAV no CentOS
Comentários
May 22 2019
Ótimo artigo, mas só com o comando (sudo /sbin/iptables-save) não é o bastante para salvar as alterações do IPTABLES, é preciso instalar o módulo de persistência com o comando (sudo apt-get install iptables-persistent).