#!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # rc.local — server-mv # # Versão nftables. O firewall (antes ~200 linhas de iptables/ip6tables # espalhadas entre rc.local e test.sh) agora é um único arquivo # declarativo: nftables.conf. A versão anterior, baseada em # iptables/ip6tables, foi preservada em rc.local.iptables — troque de # volta se algo aqui quebrar e você precisar reverter rápido. # # Antes de usar este arquivo em produção: # nft -c -f /home/rodrigo/server-mv/nftables.conf # valida sintaxe # systemctl enable nftables # persistência # Não rode este rc.local E o antigo (rc.local.iptables) ao mesmo tempo — # são duas ferramentas de firewall (nft e iptables-legacy/nft-em-cima- # de-iptables) que podem conflitar se ambas tentarem gerenciar as # mesmas chains. set -e # ============================================================== # 1. FIREWALL (nftables) — carregamento atômico: se houver erro de # sintaxe no arquivo, o "nft -f" falha ANTES de aplicar qualquer coisa, # então nunca fica um firewall pela metade no ar. # ============================================================== nft -f /home/rodrigo/server-mv/nftables.conf # ============================================================== # 2. Ajustes de kernel dependentes de runtime (não cobertos por sysctl.conf) # ============================================================== echo deadline > /sys/block/sda/queue/scheduler echo 64 > /sys/block/sda/queue/max_sectors_kb # melhor para SSD virtual echo f > /sys/class/net/enp0s6/queues/tx-0/xps_cpus echo f > /sys/class/net/enp0s6/queues/rx-0/rps_cpus echo 4096 > /sys/class/net/enp0s6/queues/rx-0/rps_flow_cnt #tc qdisc add dev enp0s6 root cake bandwidth 1000mbit besteffort #tc qdisc add dev wg0 root cake bandwidth 500mbit besteffort dual-dsthost touch /var/lock/subsys/local # ============================================================== # 3. XDP / eBPF # ============================================================== ip link set enp0s6 mtu 1500 ip link set dev enp0s6 xdp obj /home/rodrigo/xdp/xdp_ddos_filter.o sec xdp ip link set dev wg0 xdp obj /home/rodrigo/xdp/xdp_wg_mtu_optimizer.o sec xdp # A bridge do Docker muda de nome a cada recriação da rede (hash do ID), # então esse link precisa ser reaplicado se a rede "dockernet" for recriada. ip link set dev br-02f7820020b4 xdp obj /home/rodrigo/xdp/bridge_xdp.o sec xdp cd /home/docker/ebpf-sockmap/ && make load