Інструкція

Pi-hole поза домом: VPN замість відкритого DNS

Використання Pi-hole через VPN, локальний режим DNS, захист адміністративної сторінки та HTTPS.

Перевірка джерела:

Не відкривайте порт 53 для всього інтернету. Публічний рекурсивний DNS може використовуватися у відбитих атаках. Для фільтрації на власному телефоні за межами дому підключайте VPN і використовуйте Pi-hole як DNS усередині тунелю.

1. Доступ через VPN

Налаштуйте WireGuard або інший відповідний VPN. У конфігурації клієнта вкажіть LAN-адресу Pi-hole як DNS і переконайтеся, що до неї є маршрут. Правила firewall мають дозволяти DNS із VPN-підмережі. За CGNAT спочатку вирішіть доступність VPN-вузла.

2. Обмежте джерела DNS

Залиште режим прослуховування, відповідний локальним мережам. Якщо VPN-підмережа не вважається локальною у вашій топології, спочатку перевірте маршрути й firewall; не перемикайте рекурсію на довільні зовнішні джерела лише для усунення помилки.

3. Адміністративна сторінка

Дайте інтерфейсу приватне ім’я, наприклад pihole.yourname.uk.app. Для .app потрібен чинний HTTPS. Сертифікат можна отримати через DNS-01 без відкриття адміністративного порту. За потреби використовуйте внутрішній reverse proxy. Публічне ім’я з приватною A-адресою може вимагати точкового винятку DNS rebinding.

4. Захистіть керування

Задайте унікальний пароль, оновлюйте Pi-hole і ОС, не надавайте адміністративні права звичайним клієнтам. DDNS має оновлювати зовнішню адресу VPN, а не змінювати приватну адресу Pi-hole.

5. Перевірка

З мобільної мережі підключіть VPN, перевірте DNS-відповідь і появу запитів клієнта у журналі Pi-hole. Без VPN ваш публічний DNS-порт не має відповідати довільним клієнтам. Окремо перевірте IPv6, щоб він не обходив обрану DNS-схему.

Приклади конфігурації

Замініть умовні значення, інтерфейси й порти на власні. Приклади можуть стосуватися різних версій — не виконуйте несумісні варіанти разом. Не публікуйте справжні токени або приватні ключі.

[Interface]
Address = 10.8.0.2/32
PrivateKey = <phone private key>
DNS = 192.168.1.2

[Peer]
PublicKey = <server public key>
Endpoint = home.yourname.uk.app:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
sudo pihole-FTL --config dns.listeningMode        # shows the current value, should be LOCAL
sudo pihole-FTL --config dns.listeningMode LOCAL  # set it back if needed
~/.acme.sh/acme.sh --install-cert -d pihole.yourname.uk.app --ecc \
  --fullchain-file /etc/pihole/fullchain.pem --key-file /etc/pihole/key.pem \
  --reloadcmd "cat /etc/pihole/fullchain.pem /etc/pihole/key.pem > /etc/pihole/tls.pem && chown pihole:pihole /etc/pihole/tls.pem && chmod 600 /etc/pihole/tls.pem && systemctl restart pihole-FTL"

sudo pihole-FTL --config webserver.domain pihole.yourname.uk.app

Підсумкова перевірка

Тестуйте через мобільну мережу поза домашнім Wi-Fi. Окремо перевірте DNS, потрібний порт, чинний HTTPS-сертифікат та вхід у застосунок. Залишайте адмінпанелі приватними, встановлюйте оновлення й перевіряйте відновлення резервних копій. Контролюйте firewall IPv6 разом з IPv4. Успішний тест порту не є аудитом безпеки.

Ця локалізована редакція стисло викладає вихідну інструкцію. Команди зберігають оригінальний синтаксис. Для своєї версії звіряйтеся з документацією виробника за посиланнями.

Джерела та документація

Партнери