Ajuda Pra Melhoria do NFTABLES.

1. Ajuda Pra Melhoria do NFTABLES.

MARCELO GONZAGA SILVA
marcelogon

(usa Outra)

Enviado em 10/05/2025 - 16:37h

Eu uso este script abaixo no NFTABLES do debian server do meu homelab, mas queria deixar ele muito mais forte ainda, se possível que ficasse no mesmo nível do OPNSENSE. Se quiserem, me ajudem por favor, copie o meu script e já acrescentem na resposta, o que adicionar.

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
chain input {
type filter hook input priority filter;
iifname lo accept
ct state invalid drop;
ct state established,related accept;
ip protocol icmp limit rate 1/second accept
tcp dport 22 accept
udp dport 53 accept
tcp dport 80 accept
tcp dport 81 accept
tcp dport 443 accept

}

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

chain output {
type filter hook output priority filter; policy accept;
}
}
table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
policy accept;
oif "enp1s0" masquerade
}
}






  


2. Re: Ajuda Pra Melhoria do NFTABLES.

Buckminster
Buckminster

(usa Debian)

Enviado em 11/05/2025 - 02:14h

#!/usr/sbin/nft -f

flush ruleset

table inet filter {
chain input {
type filter hook input priority filter; policy drop;

# Permitir tráfego local (loopback)
iifname "lo" accept

# Descartar conexões inválidas
ct state invalid drop

# Permitir conexões estabelecidas e relacionadas
ct state established,related accept

# Permitir ICMP (ajustado para diagnóstico básico)
ip protocol icmp accept
ip6 nexthdr icmpv6 accept

# Permitir portas de serviços específicos (ajuste conforme necessário)
tcp dport {22, 80, 81, 443, 8000, 8096, 9000, 9090, 9443, 10000} accept
udp dport 53 accept # DNS
}

chain forward {
type filter hook forward priority filter; policy drop;
}

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

# Garantir saída para DNS
udp dport 53 accept
tcp dport 53 accept
}
}

table ip nat {
chain postrouting {
type nat hook postrouting priority 100;
policy accept;

oifname "enp1s0" masquerade
}
}


Adicionei política drop nas cadeias input e forward para maior segurança (talvez você tenha de monitorar, caso perder a conexão de internet coloque accept ou deixe drop e depois vá testando e liberando aos poucos só o que você quer dentro da chain forward;
Acrescentei regras de ICMP permitindo tráfego normal para evitar quebras em diagnósticos de rede e PMTU;
Acrescentei permissão de tráfego DNS de saída;
lo e enp1s0 com aspas para segurança extra, placas de rede devem vir entre aspas.


_________________________________________________________
Rule number one: Always listen 'to' Buck!
Enquanto o cursor estiver pulsando, há vida!


3. Re: Ajuda Pra Melhoria do NFTABLES.

MARCELO GONZAGA SILVA
marcelogon

(usa Outra)

Enviado em 11/05/2025 - 22:20h

Bom, amigo Buckminster deu certo aqui o Script, realmente tive que mudar para accept no forward e no input, pra internet funcionar. Instalei o Debian server num minipc chinês dual lan, instalei e configurei o dnsmasq, configurei a rede e adicionei o script no nftables. Tudo funcionando bem, quero te agradecer.

Agora o que falta é bloquear anuncios, antes estava com o Adguard, mas nãoi deu certo ele e o dnsmasq, mesmo eu não configurando dns no dnsmasq. Vou pesquisar o que fazer, derepente instalando o Pihole.

O ipv6 não está funcionando, creio que devo ter que adicionalo na interface de rede.


4. Re: Ajuda Pra Melhoria do NFTABLES.

Buckminster
Buckminster

(usa Debian)

Enviado em 12/05/2025 - 19:27h

Que teste (ou comando) você fez para ver se o IPv6 está ou não funcionando?


_________________________________________________________
Rule number one: Always listen 'to' Buck!
Enquanto o cursor estiver pulsando, há vida!


5. Re: Ajuda Pra Melhoria do NFTABLES.

MARCELO GONZAGA SILVA
marcelogon

(usa Outra)

Enviado em 12/05/2025 - 19:44h

ip addr show | grep inet6 Mostra o endereço ipv6

ip -a também mostra ipv6 na placa de rede wan, mas na de rede interna não. Eu tô usando o dnsmasq.

Eu coloquei accept no input e no forward, isto enfraquece um pouco o Nftables?

Na placa de rede interna, aparece ipv6 começadp com fe80 que é o interno.



6. Re: Ajuda Pra Melhoria do NFTABLES.

Buckminster
Buckminster

(usa Debian)

Enviado em 14/05/2025 - 00:18h

Aqui mostra isso:

$ ip addr show | grep inet6
inet6 ::1/128 scope host noprefixroute
inet6 2804:14d:7682:8097::1043/128 scope global dynamic noprefixroute
inet6 2804:14d:7682:8097:c76d:42f2:b788:9f4e/64 scope global temporary dynamic
inet6 2804:14d:7682:8097:19fb:31b8:85e4:91fb/64 scope global dynamic mngtmpaddr noprefixroute
inet6 fe80::512f:911d:3c0d:7f46/64 scope link noprefixroute
inet6 2804:14d:7682:8097::105b/128 scope global dynamic noprefixroute
inet6 2804:14d:7682:8097:769:f8de:6d2e:7a1a/64 scope global dynamic noprefixroute
inet6 fe80::133e:713c:7615:8d2b/64 scope link noprefixroute

$ ip -a
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { address | addrlabel | amt | fou | help | ila | ioam | l2tp |
link | macsec | maddress | monitor | mptcp | mroute | mrule |
neighbor | neighbour | netconf | netns | nexthop | ntable |
ntbl | route | rule | sr | tap | tcpmetrics |
token | tunnel | tuntap | vrf | xfrm }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec | -j[son] | -p[retty] |
-f[amily] { inet | inet6 | mpls | bridge | link } |
-4 | -6 | -M | -B | -0 |
-l[oops] { maximum-addr-flush-attempts } | -br[ief] |
-o[neline] | -t[imestamp] | -ts[hort] | -b[atch] [filename] |
-rc[vbuf] [size] | -n[etns] name | -N[umeric] | -a[ll] |
-c[olor]}

Debian 12.

Poste a saída do comando:
$ ip -6 addr show

"ip -a também mostra ipv6 na placa de rede wan, mas na de rede interna não. Eu tô usando o dnsmasq."
Revise as configurações do dnsmasq.
Você tem DNS na rede interna?


_________________________________________________________
Rule number one: Always listen 'to' Buck!
Enquanto o cursor estiver pulsando, há vida!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts