Files
xdp/deploy_completo.sh
T
2025-02-26 22:41:25 -03:00

54 lines
1.6 KiB
Bash

#!/bin/bash
# 1. Limpar qualquer programa XDP anterior para garantir carregamento limpo
echo "Removendo programas XDP anteriores..."
ip link set dev enp0s6 xdp off 2>/dev/null
# Compilar o programa XDP com flags otimizadas e suprimir avisos de funções não utilizadas
echo "Compilando programa XDP..."
clang -O2 -target bpf -c xdp_ddos_filter.c -o xdp_ddos_filter.o \
-I/usr/include/bpf -I/usr/include/ \
-Wno-unused-function -D__TARGET_ARCH_arm64
# Verificar se a compilação foi bem-sucedida
if [ $? -ne 0 ]; then
echo "ERRO: Falha na compilação do programa XDP"
exit 1
fi
# Implantar o programa XDP na interface
echo "Implantando programa XDP na interface enp0s6..."
ip link set dev enp0s6 xdp object xdp_ddos_filter.o verbose
# Verificar se carregou corretamente
if [ $? -eq 0 ]; then
echo "Programa XDP carregado com sucesso"
else
echo "ERRO: Falha ao carregar programa XDP"
exit 1
fi
# 2. Aplicar regras iptables existentes
echo "Aplicando regras iptables..."
sh /root/test.sh # Seu script de regras iptables existente
# 3. Configurar QoS
echo "Configurando QoS..."
sh /root/qos.sh # Seu script QoS existente
echo "Implantação completa de proteção em três camadas (XDP, iptables, QoS)"
# 4. Testar conectividade WireGuard
echo "Verificando conectividade WireGuard..."
if systemctl is-active --quiet wg-quick@wg0; then
echo "Serviço WireGuard está rodando"
else
echo "AVISO: Serviço WireGuard parece estar parado, reiniciando..."
systemctl restart wg-quick@wg0
fi
# Informações adicionais
echo ""
echo "=== Informações do Programa XDP ==="
ip link show dev enp0s6 | grep xdp