Files
manuals/docs/NetBird/Connect_to_VPN.md
2025-11-30 18:07:34 +02:00

80 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# NetBird
Система на базе WireGuard обеспечивающая безопасное подключение к инфраструктуре.
# Настройка подключения
После того администратор аппрувнит вашу УЗ вы получите доступ сам Web-Interface NetBird.
![Login page](images/login_page.png)
Выбираете свою систему, в моем случае подключаться к инфре я буду через VPS ( который уже выступает в роли WireGuard VPN сервера ) для обеспечения большей безопасности.
Перед подключением к NetBird в случае CLI клиентов как в моем случае в команду подключения необходимо добавить `--hostname you_nickname`, таким образом команда будет иметь вид:
`netbird up --hostname dev-developer --management-url https://netbird.project-quest-dev.com:443`
![Approve Connect](images/approve_connection.png)
После этого у вас появится доступ к внутренней инфраструктуре компании. Сетевые доступы ограничиваются вашей группой в Authentik.
Убедиться, что VPN соединения установлено и работает корректно можно пингом внутреннего PgAdmin:
```bash
nslookup pgadmin.greedy.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: pgadmin.greedy.com
Address: 100.80.215.33
ping pgadmin.greedy.com
PING pgadmin.greedy.com (100.80.215.33) 56(84) bytes of data.
64 bytes from prod-infra.netbird.selfhosted (100.80.215.33): icmp_seq=1 ttl=64 time=0.782 ms
64 bytes from prod-infra.netbird.selfhosted (100.80.215.33): icmp_seq=2 ttl=64 time=1.08 ms
curl --insecure https://pgadmin.greedy.com
<!doctype html>
<html lang=en>
<title>Redirecting...</title>
<h1>Redirecting...</h1>
<p>You should be redirected automatically to the target URL: <a href="/login?next=/">/login?next=/<a>. If not, click the link.
```
# DNS
Уже на этом моменте вы получаете доступ к внутренней инфраструктуре. Внутренняя инфраструктура имеет свои `dns` зоны, которые не имеют никакого отношения к внешнему миру. В случае установки NetBird на рабочую систему ваши запросы к `pgadmin.greedy.com` через тунель уже проксируются на внетренний DNS сервер. Но в моем сценарии, когда имеется некий VPS выступающий в роли `Man-in-a-Middle` запросы до `*.greedy.com` просто будут потеряны.
После подключения к NetBird сети, на нашей машине поднимается Local-Resolver сервис самого NetBird.
Чтобы моя рабочая машина знала куда отправлять запросы я укажу в клиентском конфиге своего VPN (WireGuard - это мой рабочий VPN) этот самый Local-Resolver в качестве одного из DNS серверов.
Чтобы найти Local-Resolver IP на VPS выполняю команду:
```bash
netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 110005/sshd: /usr/s
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 589/systemd-resolve
tcp6 0 0 :::22 :::* LISTEN 110005/sshd: /usr/s
udp 0 0 0.0.0.0:51820 0.0.0.0:* -
udp 0 0 127.0.0.1:3128 0.0.0.0:* 111013/netbird
udp 0 0 0.0.0.0:8080 0.0.0.0:* -
udp 0 0 100.80.82.135:53 0.0.0.0:* 111013/netbird
udp 0 0 127.0.0.53:53 0.0.0.0:* 589/systemd-resolve
```
Вот и адрес нашего Resolver: `100.80.82.135:53 111013/netbird`. Этот адрес я добавляю в свой клиенсткий WireGuard конфиг:
![alt text](images/wg-dns.png)
Рестартуем WireGuard подключения и теперь даже на локальном машине у нас резолвятся внутренние домены компании.
P.S в случе если на вашем VPS настроен `ufw` вам следует добавить разрешающее правило, чтобы WG клиенты ( ваш компьютер ) имели доступ до Resolver:
`sudo ufw allow from 10.7.0.0/24 to 100.80.82.135 port 53 proto udp`
где:
- `10.7.0.0/24` - (клиентская подсеть wg)
- `100.80.82.135` - адрес резолвера
Таким образом мы получаю безопасную схему подключения:
![Connection Scheme](images/conn_architecture.png)