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 
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