Newsgroup: it.comp.os.linux.sys
Titolo: Proteggere rete casalinga

Ciao gente!
 
 
Vorrei proteggere la rete casalinga, così da impedire l'accesso a siti
insicuri/zozzi a cellulari e macchine Windowz. E già che ci siamo eliminare
pubblicità e trackers vari, perché no.
 
Ho per le mani una Raspberry che pensavo di usare a tale scopo.  Una
possibile implementazione potrebbe essere via DNS, specificando al router
ADSL, che fa da DHCP, di indicare la raspberry come DNS.
 
    PC -(resolve)-> Raspberry (sito brutto? reject)
    PC -(route)-> Router -> Interninet
 
Oppure configurare il router per settare la raspberry come default gateway,
e darci dentro di firewall.  Penso che sarebbe un pelino complicato però
sicuramente più solido:
 
   PC -(route)-> Router -> Raspberry (sito brutto? reject) -> Router -> Internient
 
Ho visto che esistono progetti tipo Pi-Hole, che sono simili in spirito, ma
ad occhio più complessi di quel che mi serve.
 
Qualcuno ha esperienza su qualcosa simile?  Esiste un approccio o strumento
migliore degli altri?
 
 
Saluti e buon Natale
/ dacav

 pubblicità e trackers vari, perché no.
 
Aggiornamenti...
 
Ho fatto qualche indagine, e cercato quali sono gli strumenti per
portare avanti il mio progettino.
 
Ho trovato come soluzione dnsmasq + dbab.  L'idea è banalmente:
dnsmasq risolve i nomi, e dbab installa una bella listaccia di
malvagi e stronsi. La lista viene aggiornata mediante uno script
da un cronjob.
 
Dbab è disponibile per debian (apt install dbab) e fa più o meno
già quel che voglio.  Non sono tuttavia troppo entusiasta circa
la black-list: tenendo d'occhio i logs di dnsmasq dopo
l'installazione, e controllando a manella dove portano i siti
richiesti dalle varie macchine, parrebbe che la lista non sia
molto affidabile.
 
Domani mi metto a caccia di liste aggiuntive, a vedere cosa offre
l'Internet, e magari poi aggiorno questo thread con un nuovo
post.


io uso pihole.
 
Ciao Jack

 io uso pihole.
 
Allora ho una domanda veloce per te: da dove prendi le
black-list?  Ho lurkato sul webete in cerca di una black-list
degna, senza trovarne.
 
La lista di OpenDNS sembra interessante, in quanto è gestita
dalla community a colpi di votazione, ma non è accessibile
pubblicamente.
 
[1]: 
https://someonewhocares.org/hosts/
 
[2]: 
http://pgl.yoyo.org/adservers/serverlist.php?showintro=0&mimetype=plaintext
 

 [2]: 
http://pgl.yoyo.org/adservers/serverlist.php?showintro=0&mimetype=plaintext
 
 
Per inciso, questa è la stessa usata da dbab, che però è
piuttosto breve.  Il mio suggerimento in merito è di tenere dbab
solo per il pixel-server, e gestire a manella la black-list, che
tanto sono veramente due righe di perl:
 
 
    #!/usr/bin/perl
 
    use v5.20;
    use strict;
    use warnings;
 
    use HTTP::Tiny;
 
    my %EVIL;           # Map of evil DNS addresses
    my @SOURCES;        # Array of data sources
    my $TOTAL_EVIL;     # Total number of evil domains
 
    my $HTTP = HTTP::Tiny->new();
 
    sub hosts_site
    {
        my $url = shift;
        sub {
            say STDERR "Fetch from $url";
            my $response = $HTTP->get($url);
            warn && return unless $response->{success};
            my $content = \($response->{content});
 
            my @evil;
            while ($$content =~ /^127.0.0.1\s*(.*?)\s/gm) {
                push @evil, $1
            }
 
            say STDERR "  * ", scalar(@evil), " evil sites";
            @evil;
        }
    }
 
    push @SOURCES, hosts_site('
https://someonewhocares.org/hosts/'
);
    push @SOURCES, hosts_site('
http://pgl.yoyo.org/adservers/serverlist.php?showintro=0&mimetype=plaintext'
);
 
    push @SOURCES, sub {
        my $static = '/usr/local/etc/dnsfilter.conf';
        say STDERR "Fetch from $static (static list)";
        unless (-e $static) {
            say STDERR "  * 0 evil sites (file not found)";
            return ();
        }
 
        open my $static_list, '<encoding(utf-8)', $static;
        chomp(my @evil = <$static_list>);
        close $static_list;
 
        say STDERR "  * ", scalar(@evil), " evil sites";
        @evil
    };
 
    open DBAB_ADDR, '<encoding(utf-8)', '/etc/dbab/dbab.addr' or die $!;
    my $pixserv_ipaddr = <DBAB_ADDR>;
    close DBAB_ADDR;
 
    foreach (map { $_->() } @SOURCES) {
        ++$TOTAL_EVIL if ++$EVIL{$_}
    }
 
    say STDERR "Listed $TOTAL_EVIL evil domains (without repetitions)";
 
    open DNSMASQ_CONF, '>encoding(utf-8)', '/etc/dnsmasq.d/dnsfilter.conf' or die $!;
    say DNSMASQ_CONF "address=/$_/$pixserv_ipaddr" foreach sort { $a cmp $b } keys %EVIL;
    close DNSMASQ_CONF;
 
    say STDERR "Restart dnsmasq: ",
        system(qw/service dnsmasq restart/) == 0 ? "success" : "failure";

 degna, senza trovarne.
 
pihole scarica le sue.
ogni tanto guardo nei log di pihole se passa roba che non dovrebbe e blacklisto manualmente (tramite l'interfaccia di pihole).
 
Ciao Jack

 Ciao Jack
 
Ho lurkato ancora un pochetto ("pihole blacklists") ed ho trovato
[ 
https://firebog.net/
 ], che promette bene