Ícone do site Dolutech

Tutorial Completo de Configuração do IPTables e Scripts de Atualização Automáticos

iptables

IPTables é uma ferramenta poderosa usada para configurar regras de firewall no Linux. Este tutorial fornecerá um guia passo a passo sobre como configurar o IPTables, criar scripts de atualização automáticos, configurar logs e usar o script com IP fixo ou DDNS. Além disso, ensinaremos como configurar esses scripts para serem executados automaticamente via crontab.

Configuração Básica do IPTables

Instalando o IPTables

Antes de começar, certifique-se de que o IPTables está instalado no seu sistema. Na maioria das distribuições Linux, o IPTables já vem pré-instalado. Se não estiver, você pode instalá-lo usando o gerenciador de pacotes da sua distribuição.

sudo apt update
sudo apt install iptables -y

Configurando Regras Básicas

Aqui estão alguns comandos básicos para configurar regras de firewall com o IPTables.

Limpar Regras Existentes

sudo iptables -F
sudo iptables -X

Configurar Políticas Padrão

sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT

Permitir Tráfego Local

sudo iptables -A INPUT -i lo -j ACCEPT

Permitir Conexões Estabelecidas

sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Permitir SSH

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

Salvando as Regras

Para garantir que suas regras sejam mantidas após uma reinicialização, você precisa salvar as regras.

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Criando Scripts de Atualização Automáticos

Script Básico do IPTables

Crie um arquivo de script chamado iptables_rules.sh e adicione suas regras de IPTables nele.

#!/bin/bash
# Limpar Regras Existentes
iptables -F
iptables -X
# Configurar Políticas Padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permitir Tráfego Local
iptables -A INPUT -i lo -j ACCEPT
# Permitir Conexões Estabelecidas
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Permitir SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Salvar Regras
iptables-save > /etc/iptables/rules.v4

Tornar o Script Executável

chmod +x iptables_rules.sh

Configurando Logs no Script

Adicione o seguinte ao seu script para gerar logs:

#!/bin/bash
LOGFILE="/var/log/iptables_update.log"
exec > >(tee -i ${LOGFILE})
exec 2>&1
echo "Atualizando regras do IPTables em $(date)"
# Limpar Regras Existentes
iptables -F
iptables -X
# Configurar Políticas Padrão
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Permitir Tráfego Local
iptables -A INPUT -i lo -j ACCEPT
# Permitir Conexões Estabelecidas
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Permitir SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Salvar Regras
iptables-save > /etc/iptables/rules.v4
echo "Regras do IPTables atualizadas com sucesso em $(date)"

Usando IP Fixo ou DDNS no Script

Com IP Fixo

Adicione a regra com o IP fixo diretamente no script:

# Permitir Acesso de um IP Específico
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 80 -j ACCEPT

Com DDNS

Instale um cliente DDNS como o ddclient para atualizar dinamicamente seu endereço IP. Configure o ddclient com as informações do seu serviço DDNS.

Adicionando DDNS ao Script

# Obter IP do DDNS
DDNS_IP=$(dig +short yourddns.example.com)
# Permitir Acesso do IP DDNS
iptables -A INPUT -p tcp -s $DDNS_IP --dport 80 -j ACCEPT

Automatizando com Crontab

Editando o Crontab

Abra o crontab com o comando:

crontab -e

Adicionando o Script ao Crontab

Adicione a seguinte linha ao crontab para executar o script a cada hora:

0 * * * * /path/to/iptables_rules.sh

Conclusão

Seguindo este tutorial, você configurou o IPTables com regras básicas de firewall, criou um script de atualização automático, configurou logs e configurou o script para usar um IP fixo ou DDNS. Além disso, você automatizou a execução do script usando o crontab. Essas práticas ajudam a garantir que seu sistema permaneça seguro e atualizado automaticamente.

Artigos úteis e recomendados Dolutech:

Configurar 2FA no seu servidor Linux

Como Tornar seu WordPress mais seguro

Configurando HSTS de forma segura

Sair da versão mobile