Club de la Sécurité Informatique à l INSAT Dans le cadre de la 3ème édition de la journée nationale de la sécurité informatique SECURIDAY 2013 Cyber War SECURINETS Atelier : DNS Sinkhole Présente Formateurs: 1. Wael EL HAJRI 2. Rania FLISS 3. HAJER MEHERZI 4. Khouloud GATTOUSSI 5. Samar JAMEL Copyright 2013 - SECURINETS - Club de la Sécurité Informatique à l INSAT www.securinets.com
Table des matières I.Presentation de l atelier:.....1 II.Presentation des outils utilisés :.......1 i.dnsmasq :......1 ii.apatch2:.....1 III.Topologie réseau :.....2 IV.Configuration des outils:...3 i. Installation du DNSMASQ:...3 ii. Configuration du DNSMASQ:.3 iii. Configuration des serveurs DNS à interroger dans le bon ordre:......5 V.Scénario de test:....8 1. Test du cache DNSMASQet mesure du temps de réponse:.....8 2. Blacklist et page de blockage:.... 8 i. Recupération de la liste hosts et installation :.... 11 ii. Modification du fichier blacklist/hosts :...11 iii. Mise en place d'une page de blockage :..12 VI.Conclusion:... 12 1
I.Presentation de l atelier : Dans le cadre de notre journée annuelle «Securiday», nous vous inviterons à découvrir notre atelier «DNS Sinkhole». Il est souvent appelé «DNS-Blackhle». C est un simple bind qui maintient une liste des domaines malveillants. Lorsque les clients demandent un domaine dans cette liste, ils seront tous redirigés vers l interface de notre machine DNSMASQ. II.Presentation des outils utilisés : i.dnsmasq : C est un outil à utiliser idéalement sur une machine linux placée derrière un accès Internet et pour desservir un réseau local. C est un serveur libre DHCP, DNS cache et intégrant une fonction de filtrage, facile à configurer. Parmi ses fonctionnalités : rediriger les requêtes DNS de certains domaines vers un serveur précis. - cache DNS : il conserve localement les enregistrements DNS et va servir de DNS favori pour les PC du réseau local. Si DNSMASQ ne connait pas un nom de domaine, il passe la main au serveur DNS habituel et ajoute ensuite la nouvelle résolution dans son cache. A la prochaine requête sur ce domaine, DNSMASQ répondra directement au client. -serveur DHCP : pour distribuer des adresses IP aux clients du réseau local. - filtrage : DNSMASQ peut utiliser un fichier hosts additionnel pour filtrer l accès aux domaines malveillants. Nous allons utiliser cette possibilité pour ajouter une «blacklist» de domaine à risques (malwares ) ii.apache2 : C est un serveur http libre 1
III. Topologie du réseau : L architecture réseau de la défense gérée par DNS Sinkhole est décrite par la figure cidessous : 2
IV. Configuration des outils : i.installation du DNSMASQ : La première chose à faire est de déterminer le nom de notre interface et l adresse ip avec la commande: # ifconfig Le paquet DNSMASQ est présent sur les dépôts Ubuntu donc pour l installation de DNSMASQ on utilise la commande suivante : #apt-get install dnsmasq ii.configuration de DNSMASQ : Pour la configuration de dnsmasq, il faut faire les étapes suivantes : -éditer le fichier /etc/dnsmasq.conf avec la commande gedit -renseigner l interface qui écoute le LAN (eth2) 3
-redémarrer le service DNSMASQ avec la commande #/etc/init.d/dnsmasq restart -vérifier les ports DNS en écoute sur «localhost» et l IP du réseau local avec la commande : # netstat -pan grep dnsmasq 4
iii.configuration des serveurs DNS a interroger dans le bon ordre : Par défaut, un client (notre machine Dnsmasq) connecté (eth2) à une box Internet en DHCP reçoit la liste de serveurs DNS à utiliser en même temps que son IP. Il s agit des serveurs DNS du FAI définis sur la box.sur la machine Dnsmasq, les serveurs DNS sont renseignés automatiquement dans le fichier /etc/resolv.conf et toute modification manuelle de ce fichier est écrasée à chaque nouvelle requête DHCP Si on fait une requête DNS, on va alors interroger directement les DNS du FAI et notre Dnsmasq ne sert à rien. Il faut placer l IP (192.168.202.132 sur eth2) de notre Dnsmasq en tête de liste, pour être certain de bénéficier du cache DNS. Pour ce faire, il faut passer par le fichier dhclient.conf avec la commande: #gedit dhclient.conf et forcer l ajout de notre IP en tête de liste par la commande : prepend domain-name-servers 192.168.202.132 5
Ensuite, renouveler le bail DHCP fourni par le box et vérifier le fichier resolv.conf avec la commande :#dhclient 6
Et vérifier les serveurs DNS présents dans resolv.conf avec la commande : #gedit /etc/resolv.conf nameserver 192.168.202.132 # notre dnsmasq sur eth0 nameserver 192.168.1.2 # le serveur DNS et passerelle Internet (Box) 7
V.Scénario de test : 1.test du cache DNSMASQ et mesure du temps du réponse : Une requête vers un site pas encore en cache : on utilise la commande suivante : #dig debian.org vérifier la ligne ;; Query time: 51 msec et refaire la même requête : # dig debian.org la réponse déjà en cache devrait être bien plus rapide;; Query time: 1 msec Pour que l ensemble des machines du LAN bénéficient de DNSMASQ, il suffit de leur indiquer comme premier serveur DNS, l adresse IP de eth02. 2.blacklist et page de blockage : Nous abordons ici la mise en place d une blacklist pour interdire automatiquement l accès à des domaines malveillants. La liste de ces domaines peut être obtenue sur des sites spécialisés. Nous allons installer la liste de MVPS. Elle est régulièrement mise à jour et semble tenir la route. Dans un deuxième temps, nous allons rediriger les requêtes DNS bloquées vers une page web personnalisée. i.recupération de la liste hosts et installation : Tout d abord on va télécharger le fichier hosts.zip à partir de site suivant http://www.mvps.org/winhelp2002/hosts.zip Décompressez le fichier hosts dans /var/local/blacklist/ par la commande unzip hosts.zip -d /var/local/blacklist/ Puis, indiquez à Dnsmasq l emplacement de ce fichier avec le paramètre addn-hosts: avec la commande # gedit /etc/dnsmasq.conf 8
addn-hosts=/var/local/blacklist/hosts ande # gedit /etc/dnsmasq.conf addn-hosts=/var/local/blacklist/hosts Redémarrer DNSMASQ avec la commande # /etc/init.d/dnsmasq restart 9
On peut voir tout les sites malveillants dans notre balcklist à travers la commande suivante : # gedit /var/local/blacklist/hosts 10
Et enfin, on peut faire un test de résolution DNS vers un site présent sur la blacklist, par exemple :# dig yads.zedo.com Le domaine est bien blacklisté et renvoie vers notre l adresse. Maintenant, en cas d accès à un site bloqué, l utilisateur se retrouve devant une page d erreur, indiquant que la connexion a échoué. C est normal, car sur son IP locale, il n y a pas, en règle générale, de service web pour répondre. On va rediriger le blocage vers une page personnalisée ii.modification du fichier blacklist/hosts : Par défaut, le fichier hosts de notre blacklist est adapté à une utilisation locale : tout site malveillant est associé à l adresse 127.0.0.1. Nous allons modifier le fichier pour renvoyer vers l interface eth0 de notre machine DNSMASQ (192.168.202.132). Pour ce faire, editez le fichier HOSTS, n importe quel éditeur de texte fait l affaire pour remplacer 127.0.0.1 par 192.168.202.132, par exemple avec gedit : # gedit /var/local/blacklist/hosts 11
:%s/127.0.0.1/192.168.202.132/ Il faut également supprimer la ligne présente en tête de fichier qui renvoie vers localhost: 127.0.0.1 localhost iii.mise en place d une page de blockage : On va d abord installer sur notre machine DNSMASQ un serveur web, par exemple Apache2 avec la commande :# apt-get install apache2 Puis, éditer le fichier de configuration des pages d erreur: par la commande : 12
# gedit /etc/apache2/conf.d/localized-error-pages et rediriger les erreurs 404 vers la page index.html : ErrorDocument 404 /index.html Redémarrer Apache avec la commande # /etc/init.d/apache2 restart Il ne reste plus qu à éditer la page /var/www/index.html et à personnaliser le message de blocage. 13
On dispose maintenant d une machine faisant du cache DNS et du filtrage web avec page de blocage. Ce type de dispositif associé à un filtrage sur navigateur comme Adblock Plus vous offre un accès confortable au web et permet d éviter pas mal de sites douteux. Maintenant si on ouvre notre navigateur et on saisit un domaine de la liste ou trouve le résultat suivant : VI.Conclusion: En conclusion, il est conseillé de configurer le DNS Sinkhole pour la détection et la prévention contre les activités malveillantes survenant entre le système de l ordinateur et l internet. 14