Aller au contenu
Home » Pi-hole : Ajoute des entrées à la liste blanche sans accès administrateur

Pi-hole : Ajoute des entrées à la liste blanche sans accès administrateur

Advertisements

Some of the links shared in this post are affiliate links. If you click on the link and make a purchase, we will receive an affiliate commission at no additional cost to you.


Pi-hole est un bloqueur de publicités à l’échelle du réseau qui agit comme un puits DNS pour bloquer les publicités et le suivi sur tous les appareils d’un réseau. Pi-hole fonctionne au niveau du DNS et peut être installé sur un petit ordinateur tel que le Raspberry Pi ou un autre serveur Linux.

Le problème : les faux positifs avec d’autres membres de la famille.

Si tu utilises les listes de blocage officielles, il ne devrait y avoir que quelques faux positifs. Cependant, si tu utilises plus de listes de blocage pour Pihole, il peut rapidement arriver que certains sites Web ne fonctionnent pas correctement ou ne soient pas accessibles du tout. En tant qu’administrateur de Pihole, il te suffit de mettre le domaine sur liste blanche, les autres personnes du foyer qui utilisent Pihole doivent attendre que l’administrateur l’ait fait pour eux. Heureusement, il existe une solution à ce problème :

Pihole Simple Whitelist

Image : Github.com/zigzag1001

Installer Pihole Simple Whitelist

sudo su
cd  /var/www/html/
mkdir liste blanche
cd liste blanche
curl  -O https://raw.githubusercontent.com/zigzag1001/pihole-Simple-Whitelist/main/whitelist-add.php  \N -O  https://raw.githubusercontent.com/zigzag1001/pihole-Simple-Whitelist/main/whitelist-add.php \N
     O https://raw.githubusercontent.com/zigzag1001/pihole-Simple-Whitelist/main/style.css \N -O https://raw.githubusercontent.com/zigzag1001/pihole-Simple-Whitelist/main/style.css \N -O https://raw.githubusercontent.com/zigzag1001/pihole-Simple-Whitelist/main/style.css\N
     -O https://raw.githubusercontent.com/zigzag1001/pihole-Simple-Whitelist/main/index.html

Détermine et copie la valeur de hachage de ton mot de passe Pihole Webui :

cat  /etc/pihole/setupVars.conf  | grep WEBPASSWORD

Définis $auth à la ligne 16 comme étant le hachage du mot de passe.

nano whitelist-add.php
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['action']) && $_POST['action']  === 'list') {
        // Liste domainessur liste blanche 
       $command = "sudo pihole -w -l | awk '{print $1, $2}'" ;
        
       $output = [] ;
        exec("$command 2>&1", $output) ;
        
        echo "<pre>" . implode("\n", $output) . "</pre>";
   } elseif (isset($_POST['action']) && $_POST['action']  === 'disable') {
        // https://www.crosstalksolutions.com/the-worlds-greatest-pi-hole-and-unbound-tutorial-2023/
        
       $XMin =  5; // Minutes à désactivation blocage
       $XSec = $XMin * 60;
       $auth = "YOUR_PASSWORD_HASH"; // `cat /etc/pihole/setupVars.conf | grep WEBPASSWORD`
        
       $command = "curl -s  \"http://localhost/admin/api.php?disable={$XSec}&auth={$auth}\"";
        
       $output = [] ;
       $returnVar =  0;
        exec("$command 2>&1", $output, $returnVar) ;
        
        if ($returnVar === 0) {
            echo "Désactive le blocage pendant $XMin minutes. ". implode(' ', $output) ;
           $t=time() ;
           $d=date("M-d H:i e",$t) ;
            error_log("Désactivé par{$_SERVER['REMOTE_ADDR']} - {$d}\n",  3, "/var/log/pihole_disabled.log") ;
       } else {
            echo "Échec. Le blocage n'est pas désactivé. Output : " . implode(' ', $output) ;
       }
   } else {
        // Liste blanche  undomaine 
       $t=time() ;
       $d=date("M-d H:i e",$t) ;
       $domain = escapeshellarg($_POST['domain']) ;
       $regex_domain = "/[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.[a-zA-Z]{2,6}/";
       $is_match = preg_match($regex_domain, $domain) ;
        if ($is_match == 1) {
           $command = "sudo pihole -w $domain --comment  \"{$_SERVER['REMOTE_ADDR']} - {$d}\"";
            
           $output = [] ;
           $returnVar =  0;
            exec("$command 2>&1", $output, $returnVar) ;
            
            if ($returnVar === 0) {
                echo "Domain $domain has been successfully whitelisted.";
           } else {
                echo "Échec de la mise sur liste blanche du domaine $domaine. Sortie : " . implode(' ', $output) ;
           }
       } else {
            echo "L'entrée du domaine est erronée.";
       }
   }
}
?>

Sauvegarder : CTRL + O et Fermer : CTRL + X

Tu peux maintenant accéder à http://pi.hole/whitelist/ dans ton navigateur.

Pihole : Simple Whitelist est un projet de zigzag1001 sur Github.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Mastodon