Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - Dutchman

#1

Configuration
- OPNsense with AdGuard Home as a plugin (`os-adguardhome-maxit`), Unbound as the upstream resolver at `127.0.0.1:5335`
- LAN `192.168.188.0/24`, IoT VLAN `192.168.20.0/24`
- WireGuard active on port 51820, 3 peers (iPhone, iPad, MacBook)

Problem
In the AdGuard Home query log, I see constantly repeated DNS queries (multiple per second, active for hours/days) to four seemingly random domains:

```
setrol.com
holodisks.com
randomchoice.org
eletricalsheet.com
```

All queries are logged with **client IP `60.168.131.252`**, a public IP address in China (WHOIS: CHINANET-AH, Anhui).

Raw data from `/usr/local/AdGuardHome/data/querylog.json`:
```json
{"T":"2026-06-29T12:07:57.804291543+02:00","QH":"eletricalsheet.com","QT":"A","QC":"IN","CP":""," IP":"60.168.131.252","Result":{"Rules":[{"Text":"||eletricalsheet.com^$important"}],"Reason":3,"IsFiltered":true},"Elapsed":99867}
```

What I've already ruled out
1. **Open DNS resolver on the WAN**: Found a WireGuard firewall rule that was too broad (UDP, source `*`, destination port `*` to WAN address) which accidentally allowed external requests on port 53 as well. I restricted this to destination port 51820 (the WireGuard port). Confirmed with `nslookup google.com <WAN-IP>` from an external network → now correctly times out.
   - **Result: Queries in the AdGuard query log continue unabated, even after this fix.** However, I now see "Blocked" instead of "Processed" since I manually added the 4 domains to the custom filter rules—so AdGuard is still actively receiving these queries.

2. **WireGuard as a relay**: checked via VPN → WireGuard → Status. None of the 3 peers have a recent handshake (oldest was 4–6 days ago), and all peers currently show 0 or very little traffic. This rules out an active WireGuard tunnel as the direct source.

3. **Local device sending the queries**: packet capture on the LAN interface (igc1), filter `udp port 53`, over 100 packets captured—none of the four suspicious domain names appeared in the capture, even though they did appear in the AdGuard query log during the same period.

4. **IPv6 as an alternative path**: checked via Interfaces → Overview on the WAN interface (OdidoWAN). Only an IPv4 address is present; no routable IPv6 address. This rules out an IPv6 leak alongside the IPv4 WireGuard rule as an explanation.

## The Question
How can AdGuard Home log queries with an external (Chinese) source IP when:
- WAN port 53 is no longer accessible from the outside (confirmed with an nslookup test),
- there is no active WireGuard session,
- a packet capture on the LAN interface does not show these queries?

Is there a mechanism in AdGuard Home (e.g., EDNS Client Subnet, or something related to how the plugin/Unbound integration works) that could cause an external IP address to appear in the query log without it actually being an incoming request? Or is there another vulnerability I haven't found yet (for example, another open port, IPv6 instead of IPv4, or a tunnel/proxy I haven't checked)?

Any suggestions on where to look next are welcome.
#2
# Verdacht herhaald DNS-verkeer met extern bron-IP, oorzaak onbekend

## Setup
- OPNsense met AdGuard Home als plugin (`os-adguardhome-maxit`), Unbound als upstream resolver op `127.0.0.1:5335`
- LAN `192.168.188.0/24`, IoT VLAN `192.168.20.0/24`
- WireGuard actief op poort 51820, 3 peers (iPhone, iPad, MacBook)

## Probleem
In de AdGuard Home query log zie ik continue, herhaalde DNS-queries (meerdere per seconde, al uren/dagen actief) naar vier willekeurig aandoende domeinen:

```
setrol.com
holodisks.com
randomchoice.org
eletricalsheet.com
```

Alle queries worden geregistreerd met **client-IP `60.168.131.252`**, een publiek IP in China (WHOIS: CHINANET-AH, Anhui).

Ruwe entry uit `/usr/local/AdGuardHome/data/querylog.json`:
```json
{"T":"2026-06-29T12:07:57.804291543+02:00","QH":"eletricalsheet.com","QT":"A","QC":"IN","CP":"","IP":"60.168.131.252","Result":{"Rules":[{"Text":"||eletricalsheet.com^$important"}],"Reason":3,"IsFiltered":true},"Elapsed":99867}
```

## Wat ik al heb uitgesloten
1. **Open DNS-resolver op WAN**: vond een te brede WireGuard firewall-regel (UDP, source `*`, destination port `*` naar WAN-adres) die per ongeluk ook externe queries op poort 53 doorliet. Heb dit beperkt tot destination port 51820 (de WireGuard-poort). Bevestigd met `nslookup google.com <WAN-IP>` vanaf extern netwerk → nu terecht een timeout.
   - **Resultaat: queries in AdGuard query log gaan onverminderd door, ook na deze fix.** Wel zie ik nu "Geblokkeerd" i.p.v. "Verwerkt" sinds ik de 4 domeinen handmatig heb toegevoegd aan Custom filtering rules — dus AdGuard ontvangt deze queries nog steeds actief.

2. **WireGuard als doorgeefluik**: gecontroleerd via VPN → WireGuard → Status. Geen van de 3 peers heeft een recente handshake (oudste 4-6 dagen geleden) en alle peers laten 0 of zeer laag verkeer zien op dit moment. Sluit een actieve WireGuard-tunnel als directe bron uit.

3. **Lokaal apparaat dat de queries verstuurt**: Packet capture op LAN-interface (igc1), filter `udp port 53`, 100+ pakketten gevangen — geen van de vier verdachte domeinnamen kwam voorbij in de capture, ondanks dat ze in dezelfde periode wel in de AdGuard query log verschenen.

4. **IPv6 als alternatief pad**: gecontroleerd via Interfaces → Overview op de WAN-interface (OdidoWAN). Alleen een IPv4-adres aanwezig, geen routeerbaar IPv6-adres. Sluit een IPv6-gat naast de IPv4 WireGuard-regel uit als verklaring.

## De vraag
Hoe kan AdGuard Home queries registreren met een extern (Chinees) bron-IP als:
- de WAN-poort 53 niet meer bereikbaar is vanaf buiten (bevestigd met nslookup-test),
- er geen actieve WireGuard-sessie is,
- een packet capture op de LAN-interface deze queries niet laat zien?

Is er een mechanisme in AdGuard Home (bijv. EDNS Client Subnet, of iets in hoe de plugin/Unbound-koppeling werkt) waardoor een extern IP in het querylog terecht kan komen zonder dat het daadwerkelijk een binnenkomende request is? Of is er een ander lek dat ik nog niet heb gevonden (bijv. een ander geopend poort, IPv6 in plaats van IPv4, een tunnel/proxy die ik niet heb gecontroleerd)?

Elke suggestie over waar ik verder moet zoeken is welkom.