niikn: обход блокировки nspd.gov.ru через NetBird route
Заменил socat+DNAT+hosts (утренняя попытка 2026-04-21 не решила авторизацию, поддомены sso/auth через FakeIP sing-box уходили в awg0→Финляндию где тоже блок) на два централизованных изменения: - NetBird Network Route 2.63.246.0/24 → pve-LionART для группы All: pushed на все 50 пиров автоматически, никаких действий на Windows-клиентах. - OpenWrt dnsmasq override server=/nspd.gov.ru/8.8.8.8: минует sing-box FakeIP, клиенты LAN НИИКН получают реальные 2.63.246.71-76 и Windows маршрутизирует их через wt0 (NetBird) → pve-LionART → Telekom (195.26.30.163), WAF НСПД пропускает. Работает для главной + всех поддоменов (sso/auth/api). Снесено: - nspd-socat.service на pve-LionART - DNAT "NSPD socat bypass for NIIKN" на MikroTik LionART - bat-снипы niikn-nspd-hosts-install/uninstall - hosts-записи + дубликат Ethernet-маршрута на WIN-BC0OTBOBBCH (192.168.1.202) Протестировано: fallback через awg0 для non-NetBird клиентов не работает — НСПД блочит hosting Amnezia-Финляндии тоже. Единственный known-good exit сейчас — pve-LionART/Telekom 195.26.30.163. Non-NetBird машины НИИКН не откроют НСПД до установки NetBird. Добавлен отчёт для руководства НИИКН (projects/niikn/nspd-incident-report.md).
This commit is contained in:
@@ -1,11 +1,15 @@
|
||||
---
|
||||
date: 2026-04-20
|
||||
type: decision
|
||||
tags: [decision, niikn, mmfb, network, wireguard]
|
||||
status: ЗАМЕНЕНО
|
||||
tags: [decision, niikn, mmfb, network, wireguard, superseded]
|
||||
---
|
||||
|
||||
# 2026-04-20: Обход блокировки nspd.gov.ru в НИИКН через WG-туннель к LionART
|
||||
|
||||
> **⚠️ СТАТУС: ЗАМЕНЕНО РЕШЕНИЕМ [[2026-04-21-niikn-nspd-netbird-route]].**
|
||||
> Эта схема (WG-туннель) откачена 2026-04-20 вечером — после поднятия сотрудники жаловались на медленный интернет. 2026-04-21 финальное решение: NetBird Network Route `2.63.246.0/24 → pve-LionART` + DNS override в OpenWrt dnsmasq. Только подсеть НСПД через туннель, не весь интернет. Описание ниже сохранено для референса.
|
||||
|
||||
## Проблема
|
||||
|
||||
Сотрудники НИИКН не могут открыть `https://nspd.gov.ru/` (Национальная система пространственных данных Росреестра). Возвращается страница "Запрещено" с Rule `57615a88d1ec0120b56fdce6`, Client IP `85.235.181.190`.
|
||||
|
||||
160
decisions/2026-04-21-niikn-nspd-netbird-route.md
Normal file
160
decisions/2026-04-21-niikn-nspd-netbird-route.md
Normal file
@@ -0,0 +1,160 @@
|
||||
---
|
||||
date: 2026-04-21
|
||||
type: decision
|
||||
status: ACTIVE
|
||||
tags: [decision, niikn, mmfb, lionart, netbird, nspd, bypass, dns]
|
||||
---
|
||||
|
||||
# 2026-04-21: Обход блокировки nspd.gov.ru через NetBird Network Route
|
||||
|
||||
> **Заменяет** [[2026-04-20-niikn-nspd-bypass-via-lionart]] (WG-туннель, откачен) и промежуточную попытку через socat+DNAT+hosts (утро 2026-04-21, не сработала из-за FakeIP в sing-box на OpenWrt).
|
||||
|
||||
## Проблема
|
||||
|
||||
НСПД блокирует по WAF публичный IP НИИКН `85.235.181.190` (MTS Customers_P2P_B16, AS8359). Подробности корневой причины — [[2026-04-20-niikn-nspd-bypass-via-lionart]].
|
||||
|
||||
## Почему предыдущие попытки не сработали
|
||||
|
||||
### WG-туннель НИИКН↔LionART (откачен 2026-04-20)
|
||||
Работал технически, но совпал с побочными изменениями (отключение podkop-fakeip route, смена DHCP DNS) → сотрудники пожаловались на общее замедление. Откачен.
|
||||
|
||||
### socat + DNAT + hosts (попытка 2026-04-21 утро, не полетела)
|
||||
Схема: `hosts: 195.26.30.163 nspd.gov.ru` → DNAT на MikroTik LionART (`src=85.235.181.190 → 10.253.1.253:4443`) → socat TCP4-LISTEN:4443 → nspd.gov.ru:443.
|
||||
|
||||
**Почему не сработала:**
|
||||
1. **OpenWrt 192.168.1.50 (podkop/sing-box) FakeIP-ил** весь домен `nspd.gov.ru` и поддомены в `198.18.0.0/15`. Windows получал FakeIP, шёл через podkop → awg0 (Финляндия), куда НСПД вообще не пускал.
|
||||
2. **Auth-поддомены** (`sso.nspd.gov.ru`) не были в hosts → ломалась авторизация даже когда главная открывалась.
|
||||
3. **Дублирующий Ethernet-маршрут** `2.63.246.0/24 via 192.168.1.1` с metric=1 конкурировал с wt0 при последующей попытке NetBird-route.
|
||||
|
||||
## Итоговое решение — NetBird Network Route + DNS override на OpenWrt
|
||||
|
||||
```
|
||||
[Windows НИИКН] DNS запрос → 192.168.1.50 (OpenWrt dnsmasq)
|
||||
↓ dnsmasq server=/nspd.gov.ru/8.8.8.8 (минует sing-box FakeIP 127.0.0.42)
|
||||
↓ ответ: 2.63.246.71-76 (реальные IP)
|
||||
[Windows НИИКН] routing table: 2.63.246.0/24 → wt0 (NetBird, metric=1)
|
||||
↓ WireGuard → 100.70.128.49 (pve-LionART)
|
||||
[pve-LionART 10.253.1.253] NetBird FORWARD + MASQUERADE
|
||||
↓ default gateway 10.253.1.1
|
||||
[MikroTik LionART 10.253.1.1] NAT masquerade на WAN
|
||||
↓ src=195.26.30.163 (Telekom /27)
|
||||
[НСПД 2.63.246.0/24] HTTP 200 ✅ (вкл. sso / auth / api субдомены)
|
||||
```
|
||||
|
||||
### Ключевое отличие от WG-схемы 2026-04-20
|
||||
|
||||
- **Только подсеть `2.63.246.0/24`** идёт через туннель, не весь интернет → общий traffic не замедляется.
|
||||
- **NetBird push** доставляет маршрут на все 50 пиров в группе `All` автоматически → ничего устанавливать на Windows-машины НИИКН.
|
||||
- Удалённые сотрудники (Мексика, Казахстан) получают фикс автоматически.
|
||||
|
||||
## Конфигурация
|
||||
|
||||
### 1. NetBird Network Route (через API)
|
||||
|
||||
```bash
|
||||
TOKEN='nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM' # из 2026-04-16-unifi-migration-peredelki
|
||||
curl -X POST -H "Authorization: Token $TOKEN" -H "Content-Type: application/json" \
|
||||
https://api.netbird.io/api/routes \
|
||||
-d '{
|
||||
"description": "NSPD bypass (2.63.246.0/24 → pve-LionART WAN 195.26.30.163)",
|
||||
"network_id": "nspd-bypass",
|
||||
"enabled": true,
|
||||
"peer": "cuisnd3l0ubs73bsbbl0",
|
||||
"network": "2.63.246.0/24",
|
||||
"metric": 9999,
|
||||
"masquerade": true,
|
||||
"groups": ["cqgcidrl0ubs73f2hgf0"]
|
||||
}'
|
||||
```
|
||||
|
||||
| Поле | Значение |
|
||||
|------|----------|
|
||||
| Route ID | `d7ji3ajl0ubs73a92s40` |
|
||||
| Peer (exit) | `cuisnd3l0ubs73bsbbl0` = pve-LionART (100.70.128.49) |
|
||||
| Groups | `cqgcidrl0ubs73f2hgf0` = All (50 пиров) |
|
||||
| Masquerade | true (NetBird ставит iptables MASQUERADE для WG→WAN SNAT) |
|
||||
|
||||
### 2. OpenWrt 192.168.1.50 — dnsmasq DNS override
|
||||
|
||||
Sing-box podkop FakeIP-ит весь `nspd.gov.ru` через community-list `russia_outside`. Решение — делегировать `nspd.gov.ru` на 8.8.8.8 напрямую, минуя sing-box:
|
||||
|
||||
```bash
|
||||
# ssh root@192.168.1.50
|
||||
uci add_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
|
||||
uci commit dhcp
|
||||
/etc/init.d/dnsmasq restart
|
||||
```
|
||||
|
||||
После этого dnsmasq для запросов `*.nspd.gov.ru` идёт на 8.8.8.8, не на `127.0.0.42:53` (sing-box).
|
||||
|
||||
Проверка:
|
||||
```bash
|
||||
nslookup nspd.gov.ru 192.168.1.50
|
||||
# Должно вернуть 2.63.246.71-76, не 198.18.0.x
|
||||
```
|
||||
|
||||
### 3. Клиенты — ничего делать не нужно
|
||||
|
||||
- NetBird-пиры в группе `All` получают маршрут `2.63.246.0/24 → wt0` автоматически.
|
||||
- Клиенты LAN НИИКН получают реальные IP НСПД через OpenWrt dnsmasq.
|
||||
- Если на машине остались старые hosts-записи `195.26.30.163 nspd.gov.ru` от снесённой попытки — убрать (браузер иначе пойдёт на 195.26.30.163:443, там никто не слушает).
|
||||
|
||||
## Cleanup старого socat-пути (выполнено 2026-04-21)
|
||||
|
||||
```bash
|
||||
# pve-LionART
|
||||
systemctl disable --now nspd-socat.service
|
||||
rm /etc/systemd/system/nspd-socat.service
|
||||
systemctl daemon-reload
|
||||
|
||||
# MikroTik LionART
|
||||
/ip firewall nat remove [find comment="NSPD socat bypass for NIIKN"]
|
||||
|
||||
# Windows 192.168.1.202 — hosts почищен вручную через WinRM
|
||||
```
|
||||
|
||||
## Диагностика
|
||||
|
||||
### Проверить NetBird route на клиенте
|
||||
```powershell
|
||||
Get-NetRoute -DestinationPrefix "2.63.246.0/24"
|
||||
# Должно быть: InterfaceAlias=wt0, RouteMetric=1
|
||||
Find-NetRoute -RemoteIPAddress 2.63.246.71
|
||||
# Должно: InterfaceAlias=wt0
|
||||
```
|
||||
|
||||
### Проверить DNS (не должен быть FakeIP)
|
||||
```powershell
|
||||
Resolve-DnsName nspd.gov.ru -Server 192.168.1.50 -DnsOnly
|
||||
# Должно: 2.63.246.71-76, НЕ 198.18.0.x
|
||||
```
|
||||
|
||||
### Проверить трафик на pve-LionART
|
||||
```bash
|
||||
ssh root@pve-LionART 'tcpdump -i wt0 -n "dst net 2.63.246.0/24" -c 10'
|
||||
```
|
||||
|
||||
## Откат
|
||||
|
||||
### NetBird route
|
||||
```bash
|
||||
curl -X DELETE -H "Authorization: Token $TOKEN" \
|
||||
https://api.netbird.io/api/routes/d7ji3ajl0ubs73a92s40
|
||||
```
|
||||
|
||||
### OpenWrt DNS override
|
||||
```bash
|
||||
uci del_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
|
||||
uci commit dhcp
|
||||
/etc/init.d/dnsmasq restart
|
||||
```
|
||||
|
||||
## Риски и ограничения
|
||||
|
||||
1. **NetBird зависимость** — если daemon упадёт на клиенте, маршрут `2.63.246.0/24` пропадёт и запросы уйдут через обычный WAN → WAF block.
|
||||
2. **OpenWrt зависимость** — если OpenWrt 192.168.1.50 упадёт, DNS `nspd.gov.ru` вернётся к FakeIP (или перестанет резолвиться). Остальной интернет не ломается.
|
||||
3. **Cert-pinning** — НСПД использует сертификат Минцифры. NetBird не трогает TLS, end-to-end между клиентом и НСПД. Проблем быть не должно.
|
||||
4. **Росреестр разблочит 85.235.181.190** (заявка 8-800-100-34-34) — тогда можно удалить NetBird route и dnsmasq override, НСПД заработает напрямую.
|
||||
|
||||
## Теги
|
||||
`#niikn` `#mmfb` `#lionart` `#netbird` `#nspd` `#bypass` `#dns` `#fix`
|
||||
Reference in New Issue
Block a user