🚧 Firewall

Se desejar segue um exemplo um exemplo básico com nftables de como proteger seu servidor.

Habilite o nftables

# systemctl enable nftables

Edite o arquivo /etc/nftables.conf

#!/usr/sbin/nft -f

flush ruleset

# IPs SERVIDOR
# Defina o(s) IPv4/6(s) da interface do servidor
define IPV4_SERV = { 200.200.200.200 }
define IPV6_SERV = { 2001:db8:1::cafe }

# Portas abertas para TODOS
# Obs: se não quiser abrir nenhuma, manter { 0 } evita match em portas normais.
define PORTS_ACCEP_PUB = { 0 }

# Portas restritas apenas às listas ACESSO_TOTAL4 e ACESSO_TOTAL6
# Não esqueça de incluir portas que recebem fluxos, ex.: 3055, 3056, 3057
define PORTS_ACCEP_ADM = { 5000, 3000, 22, 3055, 3056, 3057 }

table inet filter {

    set ACESSO_TOTAL4 {
        type ipv4_addr
        flags interval
        elements = {
            127.0.0.0/8,
            192.168.0.0/24
        }
    }

    set ACESSO_TOTAL6 {
        type ipv6_addr
        flags interval
        elements = {
            ::1,
            aaaa:aaaa:aaaa::/48
        }
    }

    chain input {
        type filter hook input priority 0; policy accept;

        # Conexões já estabelecidas/relacionadas
        ct state established,related counter accept

        # Loopback
        iifname "lo" counter accept

        # Descarta pacotes inválidos
        ct state invalid counter drop

        # ICMPv6 essencial para IPv6 funcionar corretamente:
        # NDP, RA, PMTU e erros necessários da pilha IPv6.
        meta l4proto ipv6-icmp icmpv6 type {
            destination-unreachable,
            packet-too-big,
            time-exceeded,
            parameter-problem,
            echo-reply,
            nd-router-solicit,
            nd-router-advert,
            nd-neighbor-solicit,
            nd-neighbor-advert
        } counter accept

        # Aceita ping apenas das origens com permissão
        ip saddr @ACESSO_TOTAL4 meta l4proto icmp icmp type echo-request counter accept
        ip6 saddr @ACESSO_TOTAL6 meta l4proto ipv6-icmp icmpv6 type echo-request counter accept

        # PERMITE PORTAS ACESSO PUBLICO
        ip  saddr 0.0.0.0/0 ip daddr $IPV4_SERV tcp dport $PORTS_ACCEP_PUB counter accept
        ip  saddr 0.0.0.0/0 ip daddr $IPV4_SERV udp dport $PORTS_ACCEP_PUB counter accept
        ip6 saddr ::/0       ip6 daddr $IPV6_SERV tcp dport $PORTS_ACCEP_PUB counter accept
        ip6 saddr ::/0       ip6 daddr $IPV6_SERV udp dport $PORTS_ACCEP_PUB counter accept

        # Permite acesso às portas administrativas vindo das origens permitidas
        ip  saddr @ACESSO_TOTAL4 ip daddr $IPV4_SERV tcp dport $PORTS_ACCEP_ADM counter accept
        ip  saddr @ACESSO_TOTAL4 ip daddr $IPV4_SERV udp dport $PORTS_ACCEP_ADM counter accept
        ip6 saddr @ACESSO_TOTAL6 ip6 daddr $IPV6_SERV tcp dport $PORTS_ACCEP_ADM counter accept
        ip6 saddr @ACESSO_TOTAL6 ip6 daddr $IPV6_SERV udp dport $PORTS_ACCEP_ADM counter accept

        # Fecha todo resto destinado aos IPs do servidor
        ip  daddr $IPV4_SERV counter drop
        ip6 daddr $IPV6_SERV counter drop
    }

    chain forward {
        type filter hook forward priority 0; policy accept;
    }

    chain output {
        type filter hook output priority 0; policy accept;
    }
}

Reinicie o nftables para carregar as configurações

# systemctl restart nftables