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
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.