Andrea Beggi

La distanza più breve tra due punti non esiste.

Realizzare un rudimentale content filtering usando un server DNS

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

Lo studio medico di un amico ha una rete di computer non recentissimi, che utilizzano esclusivamente un applicativo client-server il cui motore gira su server Windows 2003. Niente Office, niente mail, niente altro.
La rete non aveva connessione ad internet, e grazie a questo tutto ha funzionato perfettamente fino ad ora: le macchine, benché vecchie, sono veloci, non hanno antivirus né spazzatura inutile installata; non sono mai intervenuto per alcun problema che non fosse la morte naturale di un PC, e il mio lavoro finora si era limitato all’installazione del server e di qualche stampante di rete.(*)

Si è presentata la necessità di collegare via internet lo studio con la ASL per la prenotazione online degli esami diagnostici, ed io ho cominciato a sudare freddo. Per fortuna Claudio è molto ragionevole ed ha capito subito le mie perplessità, abbiamo quindi convenuto che la cosa migliore da fare fosse filtrare l’accesso ad internet permettendo solo il traffico verso il sito dedicato, escludendo tutto il resto.

Trattandosi di una fase di test, per il momento ho preferito non far spendere allo studio qualche centinaio di euro per l’acquisto di un firewall; per diversi motivi l’istallazione di un vecchio PC che facesse da gateway non era praticabile/desiderata, quindi ho riflettuto su quale potesse essere la soluzione più semplice.

DNS

Scartata l’ipotesi di un proxy, ho deciso di installare DNS sul server, disabilitando le query ricorsive. Questa impostazione fa sì che la risoluzione dei nomi di domino venga fatta dal server esclusivamente con le sue risorse, senza inoltrare la richiesta ai suoi forwarders.

A questo punto, andando in gestione DNS, nelle “Zone di ricerca diretta” è sufficiente aggiungere una nuova zona per il dominio di secondo livello che si desidera risolvere, ed aggiungere al suo interno gli host A che ci servono, specificandone l’IP pubblico, risolto in precedenza tramite nslookup su un PC con un normale accesso ad internet. La procedura funziona anche con i domini di terzo e quarto livello.

Una volta installato il router, e configurato il servizio DHCP in modo che serva il corretto indirizzo del server DNS, il gioco è fatto: i client sono in grado di navigare solo sul sito la cui zona  stata configurata sul server, mentre il resto dei domini non vengono risolti poiché sono state disabilitate le query ricorsive.

E’ chiaro che si tratta di un metodo rudimentale, ma fa quello che deve fare senza troppe complicazioni.

Contro:

  • Non è il massimo dell’eleganza.
  • E’ facilmente aggirabile da un utente esperto.
  • Va bene se la navigazione deve essere permessa solo verso pochi domini, dopodiché scala molto male.
  • Se i domini da risolvere cambiano IP, la modifica non si propaga e ci costringe a modificare a mano gli indirizzi.
  • Non blocca la navigazione tramite indirizzo IP.

Pro:

  • E’ gratuito.
  • Si configura in 10 minuti.
  • Si basa su un servizio robusto (DNS di Microsoft lo è), e non richiede software di terze parti.
  • E’ di semplice implementazione.
  • Riduce il numero di asset da gestire.

(*) Questo dimostra quello che predico da sempre: PEBKAC.

13 Commenti

Max | #

per semplificare ulteriormente, se non hai un dns sottomano fai la stessa cosa con il file hosts, oltretutto puoi fare la “include” (o import, non ricordo bene) di un file comune a tutti, cosi le modifiche le fai solo li…

Max.

Fabio | #

semplice e immediato.
il tuo amico sarà sicuramente contento.

in effetti si aggira in un secondo, tuttavia conosco un utente su 100 che sappia cosa sia, a cosa serva un DNS server ed eventualmente come si faccia a cambiare sul pc.
ci sono buone chances che il sistema non venga bypassato.

Per bloccare il server dns sulle macchine locali potresti impostare gli utenti del dominio, come non administrator (user) della macchina locale (se non devono installare ogni 5 minuti un software spazzatura potrebbe anche essere un’idea buona) o forzarlo con una GPO.

Stavo riflettendo…
se il server avesse due schede di rete, abiliti il servizio routing sul server, e sulla NIC “WAN” (quella che è collegata al router ADSL) metti un bel filtro in modo che possa consentire il traffico solo verso il pubblico del sito.
costa una scheda di rete, e un’ora di lavoro!
A quel punto… non vedo come si possa aggirare il sistema!
😀

Matteo | #

Ma perché invece non installi VirtualBox sul server Windows e crei una vm IPCop che filtri il traffico? In alternativa potresti provare Untangle per Windows.

mc100 | #

mah… questa volta non sono molto d’accordo.
Se prima non aveva internet, non aveva neppure un router, quindi un router doveva comunque comperarlo.

Tanto valeva spendere 2 spicci (ma proprio 2 spicci) in piu’ e prendere un qualsiasi modello con le funzioni di firewall.

alezzandro | #

“Se i domini da risolvere cambiano IP, la modifica non si propaga…”

Secondo me con la ASL non corri questo problema… 🙂

Andrea | #

Matteo: è un server con un db delicato, voglio toccarlo poco e soprattutto fare cose semplici.

Mc100: il router lo ha fornito Telecom; come sai avere una linea “nuda” da quei mentecatti è complicato e foriero di scaricabarile in caso di problemi.

marco | #

a-haaa, ma non è possibile … l’ho fatto anch’io una volta, in uno studio dentistico a Brescia! Soluzione abbandonata dopo 3 settimane, causa solito piratello in erba!
io però cercai di fare anche una zona per microsoft.com. per consentire il windows update, che mi dette un mucchio di problemi, a causa dei redirect che fa il servizio. Alla fine, visto che soprattutto il primo problema non era risolvibile, si optò per il firewall.

Lorenzo | #

Come indicato nei “contro”, è una soluzione forse poco elegante, ma decisamente semplice da realizzare e da mantenere, sempre che non ci siano utenti smanettoni, ma sicuramente Andrea, che l’ha realizzato, ha tarato la soluzione in base all’utenza che utilizza il sistema.

Gianni | #

Salve Dr BEGGI!

Complimenti per il suo formative blog!!

Sfruttando la sua competenza in NETWORKING (ah se potessi tornare indietro…) Le vorrei fare una domanda:

come si fa a bloccare l’accesso al proprio sito o forum a utenti indesiderati?

Lei o i qui presenti poterste indicarmi un link dove c’è un TUTORIAL per BEGINNERS (quindi non troppo complicato…LOL!) in cui si spiega passo per passo la procedura da attuare (va bene anche in inglese)??

So che occorre introdurre un codice JAVASCRIPT…e ho sentito parlare anche di un file denominato file .htaccess (da mettere nel root folder del sito??? Boh!!) ma questi per ora sono tutti concetti solo teorici e astratti per me, non essendo un informatico!!

Voi mi insegnate che il blocco può essere applicato a:

* utenti registrati al sito con un email account
* indirizzi IP anonimi (PROXY)
* gruppi di indirizzi IP in caso di IP dinamici
* aree territoriali o interi paesi (si veda qui:http://www.maxlaconca.com/517/bloccare-laccesso-al-proprio-sito-da-un-intero-paese e http://www.blockacountry.com/)

So anche che è possibile impedire di visualizzare una determinata pagina web a determinati utenti o mettere FILTRI AD PERSONAM ad alcune parole usate più spesso dagli utenti indesiderati (nick o parole o parolacce maggiormente presenti nei loro messaggi…):giusto??

E come si fa in pratica a fare tutto questo??

Vi chiederete: ma perché ti interessano improvvisamente queste cose se non hai conoscenze di NETWORKING e soprattutto se non sei mai stato un AMMINISTRATORE DI UN SITO?

Beh la risposta è un pò per curiosità (mi hanno spesso bloccato in altri FORUM l’IP o persino i PROXIES con l’operazione di BLINDING o la mia email con cui mi ero certificato al sito semplicemente perché non la pensavo come la maggioranza dei partecipanti al medesimo forum…ci credete??) e un pò perché ho intenzione di aprire presto un sito o un blog anticonformiste che penso farà molto rumore fornendo notizie che difficilmente si trovano in rete …

E siccome mi sono fatto molti NEMICI IN RETE (ma non chiedetemi perché essendo troppo lungo a spiegarvelo…LOL!!) ho come la sensazione che sarò assaltato da SPAMMERS, HACKERS, LAMERS etc…e da altra gentaglia pronta a distruggermi il blog o sito.

Attendo con ansia una sua esauriente risposta al riguardo.

Saluti

Fabio | #

Andrea,
se forzi su tt i pc il default gateway verso una macchina che non esiste (o che esiste ma che non è il router, che verrebbe inondata di traffico…),
e se forzi allo stesso tempo una rotta statica verso l’ip dell’unico sito consentito, utilizzando come next hop il router, è una soluzione più a prova di smanettone ?
utenti che vanno a curiosare la “tabella di routing” del pc… diventa davvero improbabile!
coniugando questa route poisoning con il server dns non ricorsivo..
che ne pensi ?

Helena | #

Ciao, ho utilizzato questa opzione del DNS sul Server di Dominio. Ho inserito una trentina di siti e funzionava tutto alla perfezione.
Due giorni fa’ senza che fosse stato fatto nessun cambiamento sul Server alcuni siti sono tornati visibili mentre altri sono rimasti bloccati; non capisco il perche’ e con quale criterio.
Ho chiaramente provato a fermare e riavviare il servizio e riavviare il Server, ma niente non funziona piu’ al 100%.
A cosa puo’ essere dovuto ?
Grazie anticipatamente.

Hel.