#!/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