CodeGym /Cursos /Docker SELF /Configuração de Firewall (`ufw`, `iptables`)

Configuração de Firewall (`ufw`, `iptables`)

Docker SELF
Nível 5 , Lição 1
Disponível

Configuração de Firewall ufw, iptables

1. UFW: Uncomplicated Firewall

Por que precisamos de um firewall?

Imagina que o seu servidor é tipo uma casa cheia de coisas valiosas (dados, claro). Se você deixar as portas escancaradas, qualquer um pode entrar, devorar os seus dados e ainda deixar a louça suja (ou pior). O firewall é como aquelas portas que você pode controlar: quem pode entrar, por quais caminhos e sob quais condições.

O Linux possui duas ferramentas principais para configurar firewalls: ufw (Uncomplicated Firewall, ou seja, "firewall descomplicado") e iptables. Agora bora entender como eles funcionam e em que se diferenciam.

O que é UFW?

UFW é uma ferramenta para configurar um firewall criada com a ideia de "bora simplificar isso". É perfeita pra quem quer configurar rapidamente as regras básicas de acesso sem complicar demais.

Instalação e habilitação do UFW

O UFW geralmente já vem pré-instalado na maioria das distribuições baseadas em Debian/Ubuntu. Se não tiver, instale ele assim:

sudo apt update
sudo apt install ufw

Habilitar o UFW:

sudo ufw enable

Verificar o status:

sudo ufw status

Na primeira execução, o status provavelmente será "inactive". Depois de habilitar, vai aparecer como "active".

Configuração de regras no UFW

Agora vem a parte mais legal: configurar as regras que definem qual tráfego permitir ou bloquear.

Permitir acesso por SSH (porta 22):

sudo ufw allow 22

Abrir acesso ao servidor web (porta 80):

sudo ufw allow 80

Abrir HTTPS (porta 443):

sudo ufw allow 443

Fechar acesso a uma porta desnecessária (por exemplo, 8080):

sudo ufw deny 8080

Remover uma regra:

Se você mudar de ideia, remova a regra pelo número mostrado pelo comando sudo ufw status numbered. Por exemplo:

sudo ufw delete 1

Verificação e teste

Pra garantir que tudo tá funcionando direitinho, você pode verificar o status novamente:

sudo ufw status

Você verá uma lista com todas as regras ativas.


2. IPTABLES: mais controle, mais possibilidades

O que é iptables?

Se o UFW é como uma "porta simples com tranca", o iptables é como um "guarda esperto" que permite configurar praticamente tudo. Ele oferece controle completo sobre o tráfego, incluindo roteamento, filtragem por diferentes critérios e até a possibilidade de modificar pacotes.

Conceitos principais do iptables

  1. Tabelas — são conjuntos de funções para processar pacotes de rede.
    • filter: processamento e filtragem de pacotes (por exemplo, permitir ou bloquear).
    • nat: conversão de endereços/portas (por exemplo, para roteadores).
  2. Cadeias — são regras aplicadas aos pacotes.
    • INPUT: para tráfego de entrada.
    • OUTPUT: para tráfego de saída.
    • FORWARD: para tráfego redirecionado.
  3. Destinos (targets) — são ações executadas em um pacote.
    • ACCEPT: permitir o pacote.
    • DROP: descartar o pacote.
    • REJECT: descartar o pacote, enviando uma notificação.

Bora ver como configurar regras no iptables.

Visualizar as regras atuais

Para ver quais regras já estão configuradas, execute:

sudo iptables -L

Você pode adicionar -v ou -n para informações detalhadas sobre pacotes e endereços IP.

Criando regras com iptables

Regra simples: permitir SSH (porta 22):

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

Bloquear acesso à porta 8080:

sudo iptables -A INPUT -p tcp --dport 8080 -j DROP

Restringindo acesso por endereço IP:

Se você quiser que um computador com um IP específico possa se conectar ao seu servidor e todos os outros não:

sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP

Removendo regras

Para excluir uma regra, é necessário saber o número dela. Encontre com o comando:

sudo iptables -L --line-numbers

E depois remova com:

sudo iptables -D INPUT <número_da_regra>

Salvando regras

As regras do iptables por padrão "são esquecidas" ao reiniciar o sistema. Para evitar isso, salve-as com:

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

Depois, você pode restaurar as regras assim:

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

3. UFW vs IPTABLES: qual escolher?

UFW e iptables fazem basicamente a mesma coisa — protegem seu servidor. Então, qual ferramenta escolher?

  • UFW — é uma ferramenta simples pra configurações básicas de segurança. Se tu não quer se aprofundar nos detalhes de baixo nível ou só quer configurar rapidamente o firewall, escolhe o UFW.
  • Iptables — é uma ferramental mais avançada pra configurações complexas. Se tua infraestrutura é complicada (tipo NAT, roteamento), tu vai precisar do iptables.

A propósito, o UFW na verdade funciona "em cima" do iptables. Ele só gera regras do iptables pra ti. Então, se tu aprender iptables, tu automaticamente entende como o UFW funciona por baixo dos panos.


4. Exemplos práticos: protegendo o servidor

Exemplo 1: protegendo SSH e servidor web com UFW

  1. Certifique-se de que o UFW está instalado e ativado:
sudo ufw enable
  1. Permita acesso ao SSH e ao servidor web:
sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443
  1. Verifique as regras ativas:
sudo ufw status

Exemplo 2: bloqueando tráfego desnecessário com iptables

  1. Permita acesso ao SSH:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  1. Permita tráfego web:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  1. Bloqueie todo o resto:
sudo iptables -A INPUT -j DROP

Hoje você aprendeu como proteger um servidor usando UFW e iptables. Ambas as ferramentas são poderosas e úteis, só lembre que o UFW é o seu "amigo do dia-a-dia", enquanto o iptables é "uma ferramenta poderosa nas mãos do mestre". Configure o firewall, estude suas configurações e que seu servidor continue sendo uma fortaleza, não um corredor de passagem.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION