54 lines
1.6 KiB
Bash
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
|