ATTENZIONE: non credo sia facile da fare ... ma mi sembra possibile almeno in linea teorica ...
... autorizzi solo le connessioni "pulite". Un proxy e un firewall che aggiornano le politiche utilizzate in base alle esigenze dell'utente. Se un bambino si comporta in un certo modo, se adulto consente altre connessioni, all'occorrenza si abilitano servizi richiesti.
Difficile da tarare, scomodi da usare ma potenzialmente meno insicuro di un accesso aperto su internet come ora.
Eh appunto hai detto bene nella prima frase: "in linea teorica".
In linea teorica funzionerebbe (non in mobilità comunque) ma nella pratica non penso che un comune mortale lo possa fare:
1) o acquisti un firewall con un modulo di content filtering (che però prevede sempre un rinnovo tipicamente annuale che ti fanno pagare per tenere aggiornate le regole) ma che ha un costo decisamente troppo alto per un privato
2) oppure cerchi di fartelo in casa con componenti open/free come pfsense + squid/squidguard. Il limite di squid però è che non finisci mai di definire le regole che consentono il transito o bloccano i pacchetti. E' talmente menoso che dopo pochissimo ti stanchi e lasci perdere.
Tra l'altro anche la soluzione 1) prevede deile regole "standard" ma poi se tu dovessi usare un particolare programma magari "poco noto" dovresti aggiungere tu delle regole specifiche, e di nuovo torni a smoccolare per definirle bene.
Il tutto per dire che l'ho sempre considerata una possibilità solo teorica, nella pratica l'ho sempre vista naufragare salvo che si disponga di una buona cifra da investire per il contratto di supporto annuale (ma secondo me proibitiva per un privato).