Bloccare Rete Internet con LAN attiva

Per esigenze di programmazione con l’utilizzo della rete wifi ho la necessità di impedire la navigazione internet, quindi nessun ip-pubblico presente, pur mantenendo l’ip della rete locale.
Se escludo il wifi con le modalità da console con (ad esempio):
#ip link set wlo1 down
è vero che non si naviga su internet, ma anche la rete locale non è utilizzabile.
Potrei intervenire sul router/gateway, inibendo solo la connessione ad internet, ma a casa posso farlo, ma non in un posto pubblico.

Come si fa a togliere di mezzo il solo ip-pubblico? Si può fare da comando in console?
Ho googlato ma non ho trovato niente, c’è qualcuno che può aiutarmi?

Grazie.
Ciao.

Sergio

Hai già provato ad aggiungere una regola a nftables?

Prova con:

sudo nft add rule inet filter output oifname “wlo1” ip daddr != 192.168.0.0/16 drop

che lascia il traffico su 192.168.x.x e taglia tutto il resto.

Per tornare alla normalità dai un:

sudo nft flush ruleset

Vedi come si comporta.

Saluti

Yatta -

Grazie per la risposta. :))
Ho dato il comando, ma mi ha rstituito errori:
1)
┌─[idraulico@hp250g9]─[~]
└──╼ $sudo nft add rule inet filter output oifname “wlo1” ip daddr != 192.168.0.0/16 drop
[sudo] password di idraulico:
Error: syntax error, unexpected junk
add rule inet filter output oifname “wlo1” ip daddr != 192.168.0.0/16 drop
^
Errore su "
2)
┌─[✗]─[idraulico@hp250g9]─[~]
└──╼ $sudo nft add rule inet filter output oifname wlo1 ip daddr != 192.168.0.0/16 drop
[sudo] password di idraulico:
Error: Could not process rule: No such file or directory
add rule inet filter output oif wlo1 ip daddr != 192.168.0.0/16 drop
^^^^^^
Errore su filter

Penso che l’dea di usare nft sia ottima, ma ‘sto comando è un po’ complicato da eseguire e bisogna fare delle prove. Il “man nft” infatti è mastodontico.

Ci lavoro e vediamo cosa succede.
Ciao.

Sergio

La sintassi del comando è corretta, l’ho usata qualche tempo fa per “escludere” una macchina (non mia) da utilizzare come storage casalingo senza internet. Ho fatto ora un paio di test sul mio pc e (non ricordavo che) prima bisogna creare una tabella per “inet filter”.

Crea la tabella filter con un:

sudo nft add table inet filter

poi la catena “output”

sudo nft add chain inet filter output { type filter hook output priority 0 ; policy accept ; }

poi la regola nft di prima:

sudo nft add rule inet filter output oifname "wlo1" ip daddr != 192.168.0.0/16 drop

sulla mia macchina è andato a buon fine. Con un:

sudo nft list chain inet filter output

mi restituisce:

table inet filter {
	chain output {
		type filter hook output priority filter; policy accept;
		oifname "wlo1" ip daddr != 192.168.0.0/16 drop
	}
}

Prova e vedi come si comporta :wink:

Yatta -

Ho eseguito la creazione della tabella con il comando:
sudo nft add table inet filter
Nessun errore, tutto ok.

Il secondo comando mi restituisce un errore:
┌─[idraulico@hp250g9]─[~]
└──╼ $sudo nft add chain inet filter output { type filter hook output priority 0 ; policy accept ; }
bash: errore di sintassi vicino al token non atteso “}”

Modificare la linea di comando a caso non ha senso e quindi sono fermo.
Yatta, hai qualche idea?
Grazie.
Ciao.
Sergio

Proviamo con:

sudo nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }

Comandi andati tutti a buon fine.

┌─[idraulico@qian-i3]─[~/Scaricati]
└──╼ $sudo nft add table inet filter
[sudo] password di idraulico: 
┌─[idraulico@qian-i3]─[~/Scaricati]
└──╼ $sudo nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }
┌─[idraulico@qian-i3]─[~/Scaricati]
└──╼ $sudo nft add rule inet filter output oifname "wlo1" ip daddr != 192.168.0.0/16 drop
┌─[idraulico@qian-i3]─[~/Scaricati]
└──╼ $sudo nft list chain inet filter output
table inet filter {
	chain output {
		type filter hook output priority filter; policy accept;
		oifname "wlo1" ip daddr != 192.168.0.0/16 drop
	}
}
┌─[idraulico@qian-i3]─[~/Scaricati]
└──╼ $

Yatta, cosa dici, provo la mia problematica oppure c’è da eseguire qualche altro comando?

Grazie.
Ciao.
Sergio

Secondo me così dovrebbe andare.

Perfetto !!! Tutto funzionante.

Da programma prima eseguo il blocco di internet con i 3 comandi:

1) nft add table inet filter
2) nft add chain inet filter output { type filter hook output priority 0 \; policy accept \; }
3) nft add rule inet filter output oifname "wlo1" ip daddr != 192.168.0.0/16 drop

Poi tolgo il blocco con:

nft flush ruleset

Grazie Yatta, mi hai dato un aiuto immenso.

Ciao.
Sergio

Bene così :wink:

Alla prossima.

Yatta -