56 lines
2.5 KiB
Bash
Executable File
56 lines
2.5 KiB
Bash
Executable File
#!/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/server-mv/xdp/xdp_ddos_filter.o sec xdp
|
|
ip link set dev wg0 xdp obj /home/rodrigo/server-mv/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/server-mv/xdp/bridge_xdp.o sec xdp
|
|
|
|
cd /home/docker/ebpf-sockmap/ && make load
|