Как настроить перенаправление DNS на Pi-hole?

У меня есть арендованный сервер с установленным WireGuard, который используется в качестве ВПН. Я также настроил Pi-hole на этом сервере и хочу отслеживать, какие сайты посещают клиенты ВПН. Как правильно настроить Pi-hole в качестве DNS-сервера и перенаправить как старые, так и новые подключения на него для ведения журнала посещаемых сайтов? Нужна документация с подробными инструкциями.
  • 16 сентября 2024 г. 14:03
Ответы на вопрос 2
Настройка перенаправления DNS на Pi-hole для клиентов WireGuard включает несколько шагов. Вот подробная инструкция по настройке:

### Шаг 1: Настройка Pi-hole

1. **Установите Pi-hole**: Если вы еще не установили Pi-hole, сделайте это с помощью команды:
   ```bash
   curl -sSL https://install.pi-hole.net | bash
   ```

2. **Настройте базовые параметры**: Следуйте указаниям установщика. Важно выбрать интерфейс, на котором работает ваш VPN, и указать DNS-сервер (например, Google или Cloudflare).

3. **Настройка статического IP**: Убедитесь, что Pi-hole использует статический IP-адрес, чтобы клиенты могли постоянно обращаться к нему.

### Шаг 2: Настройка WireGuard

1. **Настройте конфигурацию WireGuard**: В вашем файле конфигурации WireGuard (`wg0.conf`) добавьте ваш Pi-hole IP-адрес в параметры DNS. Например:
   ```
   [Interface]
   Address = 10.0.0.1/24
   ListenPort = 51820
   PrivateKey = <ваш_приватный_ключ>
   DNS = 10.0.0.2  # IP адрес Pi-hole

   [Peer]
   PublicKey = <публичный_ключ_клиента>
   AllowedIPs = 10.0.0.1/24
   ```

2. **Подключите клиентов**: Убедитесь, что в конфигурации клиента также указан DNS-сервер. Например, для клиента WireGuard конфигурация может выглядеть так:
   ```
   [Interface]
   Address = 10.0.0.3/24
   PrivateKey = <ваш_приватный_ключ>
   DNS = 10.0.0.2  # IP адрес Pi-hole

   [Peer]
   PublicKey = <публичный_ключ_сервера>
   Endpoint = <адрес_впн_сервера>:51820
   AllowedIPs = 0.0.0.0/0
   ```

### Шаг 3: Настройка маршрутов и NAT

1. **Настройка IP-адресации**: Убедитесь, что на сервере разрешены IP-форвардинг и iptables. Для разрешения IP-адресации выполните команду:
   ```bash
   echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
   sudo sysctl -p
   ```

2. **Настройка iptables**: Создайте правила NAT для обеспечения правильного маршрутизации трафика. Например:
   ```bash
   sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
   ```

   Замените `eth0` на соответствующий интерфейс, подключенный к интернету.

### Шаг 4: Тестирование

1. **Подключите клиента**: Подключите клиента к вашему WireGuard серверу.

2. **Проверьте DNS**: Проверьте, что запросы DNS проходят через Pi-hole. Для этого можно использовать команду `dig` или `nslookup`:
   ```bash
   dig example.com
   ```

   Убедитесь, что ответ приходит с IP-адреса вашего Pi-hole.

3. **Проверьте журналы Pi-hole**: Зайдите в интерфейс Pi-hole и проверьте, что запросы от клиента видны в разделе "Queries".

### Рекомендуемые ссылки для дополнительной информации

- [Документация Pi-hole](https://docs.pi-hole.net/)
- [Руководство по WireGuard на официальном сайте](https://www.wireguard.com/#quickstart)

Следуя этой инструкции, вы сможете настроить перенаправление DNS через Pi-hole для клиентов вашего WireGuard VPN.
В настройках WG указать ваш DNS сервер.
Похожие вопросы