Ik maak al heel gelang gebruik van Pi-hole om advertenties en malware te blokkeren van mijn netwerk. Dit werkt erg goed en geeft een veel fijnere ervaring met internet browsen.

Nu zijn er echter altijd nog sommige apparaten die intern gebruik maken van een eigen DNS server (vaak die van Google 8.8.8.8) en dus nog steeds buiten Pi-hole om werken. Een bekend voorbeeld hiervan is de Google Chromecast. Je kunt echter met een simpele truc toch instellen dat DNS aanvragen toch via jouw Pi-hole lopen als je een Unifi USG gebuikt met de Unifi controller software.

Met behulp van de informatie van de blog van Scott Helme heb ik een stappenplan gevonden hoe dit voor elkaar te krijgen. Alle credits gaan dus naar Scott.

Het idee is dat je alle DNS requests die niet via je USG lopen onderschept en doorstuurt naar je Pi-hole. Dit doe je door de file ‘/usr/lib/unifi/data/sites/default/config.gateway.json’ aan te passen. Deze moet dan de volgende regels bevatten.

{
     "service": {
        "nat": {
           "rule": {
              "1": {
                 "description": "DNS Redirect",
                 "destination": {
                    "address": "!192.168.1.1",
                    "port": "53"
                 },
                 "inbound-interface": "eth1",
                 "inside-address": {
                    "address": "192.168.1.73"
                 },
                 "log": "disable",
                 "protocol": "tcp_udp",
                 "type": "destination"
              }
           }
        }
     }
}

In bovenstaande configuratie is 192.168.1.1 het IP-adres van je USG en 192.168.1.73 het IP-adres van je Pi-hole. Nadat je deze aanpassing hebt gemaakt moet je deze nog activeren door een ‘provision’ te forceren van je USG. Dit doe je bij de ‘Manage Device’ setting van je USG device:




Na een aantal minuten zal dit klaar zijn en zullen voortaan alle DNS requests via je Pi-hole verlopen. Toch wel een veilige gedachte.