Projet Pi-hole

Pour commencer, qu'est-ce que Pi-hole ? Et pourquoi l'installer ?
Pi-hole est un bloqueur de publicit�s, vous allez me dire que vous avez d�j� ad Block et que vous n'avez pas besoin d'un autre bloqueur de publicit�s. En effet, vous n'avez pas tort, cependant il faut installer ad Block sur toutes vos machines (PC, Smartphone, Tablette...). Pi-hole quant � lui a besoin d��tre install� qu'une seule et unique fois, pour toutes vos machines sur votre r�seau. Donc plus besoin de se prendre la t�te avec une extension sur votre navigateur avec Pi-hole.
Mais comment cela fonctionne-t-il ?
Tout simplement gr�ce aux requ�tes DNS, vous allez remplacer votre serveur DNS par Pi-hole. Une fois install�, vous renseignerez � l'aide de l'interface web des listes de nom de domaines � bloquer. Et comme par magie toutes les pubs disparaissent ! :)
Je vous laisse consulter la page du projet pour plus d'information ;)

De quoi a-t-on besoin ?
Si vous �tes all�s visiter la page de Pi-hole vous avez pu constater qu'il est possible d'installer ce bloqueur de publicit�s de diff�rentes mani�res. Sur un Docker, sur une Raspberry Pi, ou encore sur des OS Linux.
Personnellement, j'ai choisi de l'installer sur une Raspberry Pi. Tout simplement parce que c'est peu couteux et que l'on peut l'alimenter � l'aide d'une prise USB. Cette prise USB peut tr�s bien se trouver derri�re la BOX, il n'y a donc pas d'alimentation suppl�mentaire. De plus une Raspberry Pi ne consomme pas beaucoup.
Finalement, c'est une solution peu couteuse et qui ne fera pas exploser la consommation �lectrique.

Passons maintenant � l'installation, il faut commencer par mettre � jour les paquets et la liste des paquets. Il faut donc taper la commande :

$ apt-get update && apt-get upgrade

Ensuite, nous allons installer curl pour pouvoir t�l�charger Pi-hole. /!\ Il faut faire attention avec curl et ne pas installer n'importe quoi avec. On ex�cute donc :

$ apt install curl

Une fois Curl install�, nous pouvons installer Pi-hole. Pour cela, il suffit d'ex�cuter la ligne suivante :

$ curl -sSL https://install.pi-hole.net | bash 

L'assistant d'installation va se lancer tout seul. Vous allez pouvoir dire "ok" aux trois informations qui vont suivre. La premi�re indique que vous allez installer et faire de votre machine un bloqueur de publicit�s. Le deuxi�me vous propose de faire un don au projet. Et enfin la derni�re vous informe qu'il est n�cessaire de mettre un adresse IP statique sur votre machine pour que pi-hole fonctionne correctement.

l'installation va transformer la machine en bloquer de pubs Donation pour pi-hole Il faut utiliser un adresse IP statique

Par la suite, vous pourrez choisir le serveur DNS que vous allez utiliser pour faire vos requ�tes. Ensuite vous pourrez le changer et/ou en ajouter d'autres. Vous avez le choix entre celui de Google, le c�l�bre 8.8.8.8 ou encore celui de Cloudflare qui se veut respectueux de la vie priv� (1.1.1.1). Mais vous pouvez tr�s bien en utiliser d'autres, avec le choix "custom", celui de votre op�rateur, votre propre DNS etc.

s�lection du serveur DNS

Les choix suivants, sont les listes de nom de domaines que vous allez bloquer. Vous pouvez toutes les laisser coch�es. Comme pour le DNS, vous allez pouvoir en ajouter d'autres et les supprimer plus tard. Vous pourrez aussi ajouter des noms de domaines dans une Whitelist pour qu'ils ne soient plus bloqu�s malgr� leurs pr�sences dans les listes. Apr�s, vous pourrez choisir de bloquer que les adresses IPv4 ou que les adresses IPv6. Je vous conseille de laisser les deux.

s�lection des listes de noms s�lection des protocoles

Maintenant, pi-hole va nous proposer d'affecter une adresse IP statique ou non. Si celle-ci vous convient, choisir "oui" sinon suivez les instructions pour changer l'adresse. L'assistant de pi-hole a tout pr�vu :)
Il vous pr�vient m�me que l'adresse que vous acceptez est une adresse d�livr�e par un DHCP et qu'il peut y avoir des conflits d'adresses.
Par la suite, comme l'adresse IPv6 est support�e il nous indique l'adresse IPv6 utilis�e pour bloquer la pub.

accepter l'adresse IP statique pr�vention de conflit d'IP

Nous arrivons au moment o� l'assistant nous demande d'installer l'interface web, je vous conseille de l'installer, vous trouverez toutes les donn�es statistiques dessus, vous pourrez tout reparam�trer. Pour avoir les statistiques, il faut bien activer les logs.

accepter l'interface web accepter l'installation d'un serveur web accepter les logs

Pi-hole est maintenant correctement install�, vous trouverez un r�capitulatif de toutes les informations pour vous connecter � l'interface web. De plus il nous demande de bien configurer nos appareils pour qu'ils utilisent pi-hole comme DNS

R�capitulatif de l'installation

Avant de continuer, il est toujours possible de changer d'adresse IP fixe. Pourquoi nous utilisons une adresse fixe ? c'est pour �viter que le DHCP nous donne une autre adresse. Et que notre bloqueur de publicit�s devienne inutile � cause d'un conflit d'adresse.
Pour ce faire, soit nous fixons � l'aide de notre DHCP une adresse fixe correspondant � l'adresse MAC de notre Raspberry Pi. Soit nous configurons directement un adresse IP dans les fichiers de configuration du r�seau de notre Raspberry Pi
Nous allons voir comment affecter une adresse IP directement dans les fichiers de configuration. Pour ce faire, � l'aide de votre �diteur de texte �ditez le fichier suivant /etc/dhcpcd.conf comme ceci pour l'utilisation avec l'interface Wifi :

interface wlan0
	static ip_address=192.168.1.15/24
	static routers=192.168.1.254
	static domain_name_servers=127.0.0.1

static ip_address est l'adresse que vous avez choisi pour votre bloquer de publicit�s
static routers est l'adresse de votre routeur
et static domain_name_servers est votre serveur DNS, ici 127.0.0.1 car nous sommes en train de cr�er un serveur DNS. Il faut donc qu'il s'appelle lui-m�me pour faire des requ�tes dans sa zone.
Une fois chang�, pour que notre Raspberry Pi prenne les param�tres souhait�s, il faut red�marrer l'interface. Il faut taper la commande:

$ ifdown wlan0

Pour l'�teindre, puis l'allumer pour que celle-ci puisse prendre nos param�tres indiqu�s ci-dessus. Avec cette commande :

$ ifup wlan0

Cette parenth�se finie, nous allons configurer notre DHCP pour qu'il donne l'adresse de notre pi-hole comme serveur DNS. Chez moi j'utilise une Freebox et un routeur wifi TP Link. Je vais vous montrer comment faire dans un premier temps avec une Freebox. Pour commencer, connectez-vous sur l'interface de votre Freebox, soit avec son adresse IP, dans mon cas 192.168.1.254 ou avec http://mafreebox.freebox.fr
Une fois connect�, vous allez aller dans les param�tres de la Freebox puis dans le mode avanc�, aller dans DHCP et modifier la ligne "serveur DNS 1" avec l'adresse IP de votre Pi-hole. Donc dans mon cas 192.168.15 , vous remarquerez qu'il y a d'autres adresses dans les champs suivants, c'est en cas o� ma Raspberry Pi crache.

Interface web de la Freebox  Param�tre avanc� de la Freebox Param�tre du DHCP de la Freebox

Pour le cas du routeur TP Link, comme pour la Freebox, il faut commencer par se connecter � l'interface d'administration. A l'aide de son adresse IP, puis aller dans DHCP dans le menu � gauche. Puis dans DHCP Settings et indiquer comme param�tres l'adresse de notre Pi-hole dans le champs "Primary DNS"

Interface du routeur TP Link

Nous avons fini l'installation de notre pi-hole, nous pouvons nous connecter � son interface avec son IP suivi de /admin, dans mon cas 192.168.1.15/admin ou avec le nom de domaine pi.hole
Vous allez arriver sur une interface avec quelques donn�es des derni�res 24h, qui ressemble � celles-ci :

Interface pi-hole Page de connexion pi-hole

Vous pouvez vous connecter � l'aide du mot de passe donn� � la fin de l'installation. Pour changer le mot de passe il faut taper sur un terminal en root de votre Raspberry Pi :

$ pihole -a -p

Cette commande va vous inviter � changer votre mot de passe, vous pouvez donc le faire apr�s la fin de l'installation et d�finir un mot de passe plus facile � m�moriser.
Une fois connect�, vous avez acc�s � un panel d'informations plus grand, comme le type de query, de quel serveur provient les requ�tes, le top des domaines bloqu� et autoris�. Vous pouvez aussi ajouter des domaines dans la Whitelist et dans la Blacklist, interrompre le service pendant une dur�e d�termin�e etc. Nous allons voir par la suite comment ajouter une liste et comment ajouter un domaine dans la Whitelist
Voici quelques captures d'�crans des graphiques disponibles :

Graphique pi-hole

Nous allons voir comment ajouter une liste qui va bloquer des noms de domaines. Dans notre exemple nous allons bloquer les contenus pornographiques. Il faut d'abord trouver une liste, une petite recherche sur Google et vous allez en trouver tr�s rapidement. Dans mon cas je vais utiliser cette liste .
Il faut aller dans settings puis dans Blocklist et coller l'url dans la barre en bas, enfin on clique sur "save and update" pour appliquer les changements. Une fois que tout est mis � jour, si vous allez sur l'un des sites de la liste, un page "impossible de trouver l'adresse IP du serveur" va s'afficher. En effet, pi-hole renvoie l'adresse 0.0.0.0 comme adresse des domaines bloquer. Cette adresse IP ne correspondant � aucun serveur, le navigateur ne peut afficher de pages.

param�tres pi-hole, ajouter une liste

Je vais maintenant vous montrer comment ajouter un nom de domaine dans la Whitelist. En effet, utilisant Google Analytics je ne pouvais plus m'y rendre avec pi-hole d'installer. Si l'on regarde bien dans les listes, il est bien dedans. Je ne pouvais donc plus acc�der aux statistiques de mes sites...
La solution est donc d�ajouter le domaine dans la Whitelist, c'est tout simple, il faut aller dans l'onglet Whitelist � gauche, puis taper le nom de domaine dans la barre et cliquer sur add

ajout d'un domaine dans la Whitelist