# NetBird Система на базе WireGuard обеспечивающая безопасное подключение к инфраструктуре. # Настройка подключения После того администратор аппрувнит вашу УЗ вы получите доступ сам Web-Interface NetBird.  Выбираете свою систему, в моем случае подключаться к инфре я буду через VPS ( который уже выступает в роли WireGuard VPN сервера ) для обеспечения большей безопасности. Перед подключением к NetBird в случае CLI клиентов как в моем случае в команду подключения необходимо добавить `--hostname you_nickname`, таким образом команда будет иметь вид: `netbird up --hostname dev-developer --management-url https://netbird.project-quest-dev.com:443`  После этого у вас появится доступ к внутренней инфраструктуре компании. Сетевые доступы ограничиваются вашей группой в 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
You should be redirected automatically to the target URL: /login?next=/. 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 конфиг:  Рестартуем 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` - адрес резолвера Таким образом мы получаю безопасную схему подключения: 