diff --git a/decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md b/decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md index 0c74327..2827698 100644 --- a/decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md +++ b/decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md @@ -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`. diff --git a/decisions/2026-04-21-niikn-nspd-netbird-route.md b/decisions/2026-04-21-niikn-nspd-netbird-route.md new file mode 100644 index 0000000..9355c68 --- /dev/null +++ b/decisions/2026-04-21-niikn-nspd-netbird-route.md @@ -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` diff --git a/projects/mmfb/mikrotik.md b/projects/mmfb/mikrotik.md index e48fe5d..df6d34b 100644 --- a/projects/mmfb/mikrotik.md +++ b/projects/mmfb/mikrotik.md @@ -17,20 +17,11 @@ tags: [mmfb, lionart, network] - **LAN:** bridge1, 10.253.1.0/24 - **NAT:** masquerade на out-interface=ether1-gw-telekom (WAN) -## WireGuard +## Bypass для НСПД (активно) -### wg-niikn — туннель для NSPD bypass -- Listen port: 51820 -- IP: 10.99.99.1/30 -- Peer: NIIKN MikroTik (`192.168.1.1`), allowed-address=10.99.99.2/32 -- Public key: `YuI6lQ1f1bF37x5dwa/JQuW30x4McO2//cl/mEWg4mE=` -- Назначение: проксирует трафик клиентов НИИКН на nspd.gov.ru (`2.63.246.0/24`) через свой WAN, минуя заблокированный IP МТС у НИИКН. -- Подробности: [decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md](../../decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md) +MikroTik LionART в этом не участвует — только обычный WAN masquerade. NSPD bypass сделан на уровне NetBird Network Route `2.63.246.0/24 → pve-LionART (10.253.1.253)`. Трафик выходит через обычный NAT LionART с src=`195.26.30.163`, который WAF НСПД пропускает. + +Подробности: [[../../decisions/2026-04-21-niikn-nspd-netbird-route]]. ## Firewall (важное) -Дефолтный forward chain пропускает только LAN (`10.253.1.0/24`). Для трафика из WG-туннеля в WAN добавлены явные accept-правила: -``` -chain=forward action=accept in-interface=wg-niikn out-interface-list=WAN # NIIKN→WAN -chain=forward action=accept in-interface-list=WAN out-interface=wg-niikn connection-state=established,related # ответы -chain=input action=accept protocol=udp dst-port=51820 in-interface-list=WAN # WG handshake -``` +Дефолтный forward chain пропускает только LAN (`10.253.1.0/24`). Для NetBird-форварда pve-LionART ходит наружу через обычный masq как любой LAN-клиент. diff --git a/projects/mmfb/proxmox-inventory.md b/projects/mmfb/proxmox-inventory.md index d4cc304..32ceadf 100644 --- a/projects/mmfb/proxmox-inventory.md +++ b/projects/mmfb/proxmox-inventory.md @@ -45,7 +45,16 @@ tags: [mmfb, proxmox] - **LXC 103 (NPM):** Docker контейнеры `npm-app-1` (jc21/nginx-proxy-manager, порты 80/81/443) и `portainer-ce` (8000/9443). Работают ~15 месяцев. - **LXC 105 (agentdvr):** systemd `AgentDVR.service`. Архив — новый LVM `archive-vg/archive` (ext4, 4.55 TB) на отдельных sda+sdb. Скорость записи ~140 GB/день → глубина архива ~32 дня максимум. Retention в cron: 14 дней (`/AgentDVR/cleanup_old_recordings.sh`, 03:00 ежедневно). 11 камер, названия `10.253.1.{21,27,32,33,35,37,38,39,41,42,43}`. Камера 10.253.1.27 "Camera 2 mic" периодически не отвечает по ONVIF (в логах `Invalid Source`) — разобраться отдельно. +## Роль в NetBird + +- **pve-LionART** выступает exit-node для NetBird routes: + - `10.253.1.0/24` → LAN ММФБ (группа All) + - `0.0.0.0/0` → группа Москва (роуминг-клиенты) + - `2.63.246.0/24` → NSPD bypass для группы All (см. [[../../decisions/2026-04-21-niikn-nspd-netbird-route]]) + ## История изменений +- **2026-04-21 (позже):** NetBird route `2.63.246.0/24 → pve-LionART` создан для обхода блокировки nspd.gov.ru на всех пирах (НИИКН, Мексика, Казахстан). Старый `nspd-socat.service` + DNAT на LionART снесены (были не нужны — проблема корневая была в FakeIP OpenWrt). +- **2026-04-21:** поднят `nspd-socat.service` на хосте для обхода блокировки nspd.gov.ru у НИИКН. Заменил WG-туннель wg-niikn на MikroTik LionART (откачен 2026-04-20). Снят тем же днём (не решал auth-поддомены). - **2026-04-17:** создан LVM `archive-vg` на sda+sdb (4.55 TB), ext4, `/mnt/pve/Archive`. mp1 LXC 105 переключен с loop-файла 500G на новый LVM. Удалён `/mnt/pve/Work/ct-105-archive500.img` (освободил 500G на sdd). Очищено 105G скрытых данных под mountpoint `/AgentDVR/Media/WebServerRoot/Media` в rootfs LXC 105 (rootfs был 100% → 2%). Retention поднят с 7 до 14 дней. - **2026-04-17:** все 11 камер переведены с continuous (`recordmode=2`) на запись по движению (`detector.type=Simple`, `recordmode=0`, `recordondetect=True`). Ожидаемая экономия ~50-80%, глубина архива до ~30 дней. - **2026-04-17:** в NPM (LXC 103, 10.253.1.25:81) создан proxy host `dvr-mmfb.dttb.ru` → `10.253.1.40:8090` (id=9, WebSockets=ON). Ждёт DNS A-записи. diff --git a/projects/niikn/mikrotik.md b/projects/niikn/mikrotik.md index 85e0766..9eeab07 100644 --- a/projects/niikn/mikrotik.md +++ b/projects/niikn/mikrotik.md @@ -30,19 +30,11 @@ Hairpin NAT: NPM(80,443), TURN(3478→133), Talk TURN(3479→200), RustDesk(2111 Трафик на FakeIP-диапазон направляется на OpenWrt (192.168.1.50) с podkop. -## WG-туннель к LionART (для НСПД) +## Обход блокировки nspd.gov.ru -Подсеть НСПД (`2.63.246.0/24`) маршрутизируется через MikroTik LionART (`195.26.30.163`), потому что публичный IP НИИКН (`85.235.181.190`, MTS Customers_P2P_B16) внесён в blacklist WAF НСПД. Подробности и ключи — [decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md](../../decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md). +Публичный IP НИИКН (`85.235.181.190`, MTS Customers_P2P_B16) в blacklist WAF НСПД. Решение — **NetBird Network Route `2.63.246.0/24 → pve-LionART`** (exit через LionART WAN `195.26.30.163`) + DNS override в OpenWrt dnsmasq (`server=/nspd.gov.ru/8.8.8.8`, минует FakeIP sing-box). **На MikroTik НИИКН изменений нет.** -``` -/interface/wireguard add name=wg-lionart listen-port=51821 mtu=1420 -/ip address add address=10.99.99.2/30 interface=wg-lionart -/ip route add dst-address=2.63.246.0/24 gateway=10.99.99.1 comment="NSPD via LionART" -/ip firewall nat add chain=srcnat action=masquerade out-interface=wg-lionart \ - comment="masq NSPD via LionART WG" -``` - -Peer endpoint: `195.26.30.163:51820`. **Masquerade на wg-lionart обязателен** — без него обратные пакеты не проходят conntrack на LionART. +Подробности: [[../../decisions/2026-04-21-niikn-nspd-netbird-route]]. ## DHCP diff --git a/projects/niikn/nspd-incident-report.md b/projects/niikn/nspd-incident-report.md new file mode 100644 index 0000000..e5000c1 --- /dev/null +++ b/projects/niikn/nspd-incident-report.md @@ -0,0 +1,95 @@ +--- +date: 2026-04-21 +type: report +audience: management +tags: [niikn, nspd, incident, report] +--- + +# Отчёт: недоступность nspd.gov.ru из сети НИИКН + +**Дата:** 21 апреля 2026 +**Статус:** решено технически, ожидается долгосрочное решение от Росреестра +**Автор:** Олег Батлаев (DevOps) + +--- + +## Краткая суть + +С некоторого момента сотрудники НИИКН не могут открыть портал Росреестра **Национальной системы пространственных данных** (`https://nspd.gov.ru/`) — страница не грузится или возвращает сообщение «Запрещено». Проблема затрагивает всех пользователей, работающих с кадастром и пространственными данными. + +**Причина** — не сбой у нас и не сбой у оператора связи. Защитная система Росреестра включила наш офисный интернет-адрес в список запрещённых. Это административно-сетевое решение стороны Росреестра. + +**Сейчас** — доступ восстановлен техническим обходом, описанным ниже. Работа с порталом возможна в обычном режиме. + +--- + +## Что именно произошло + +Портал НСПД использует защитную систему (WAF), которая автоматически блокирует подозрительные IP-адреса. В чёрный список попал целый корпоративный диапазон оператора МТС — `Customers_P2P_B16` — к которому принадлежит и публичный адрес нашего офиса `85.235.181.190`. + +С других интернет-каналов (например, домашнего, с другого провайдера) тот же портал открывается без проблем. Блокировка действует **только при обращении с нашего офисного IP**, независимо от браузера, устройства и пользователя. + +В блокировке на стороне Росреестра сотрудники НИИКН никаких нарушений не совершали — это, вероятно, **коллективная блокировка целого диапазона МТС** из-за действий сторонних клиентов оператора. + +## Что сделано для восстановления доступа + +У нас есть отдельный резервный интернет-канал на другой удалённой площадке, с другим оператором связи (провайдер Telekom). Этот канал не заблокирован Росреестром. + +Все обращения к порталу НСПД (и его поддоменам авторизации) теперь проходят через этот резервный канал автоматически, без каких-либо действий пользователя: + +``` +Компьютер сотрудника НИИКН + │ + └─► по защищённому туннелю на вторую площадку (Proxmox "LionART") + │ + └─► через её интернет-канал (провайдер Telekom) + │ + └─► на портал nspd.gov.ru — доступ разрешён +``` + +Всё остальное — обычный интернет, рабочие сервисы, видеосвязь — по-прежнему идёт через основной канал МТС без изменений. Только обращения конкретно к серверам НСПД направляются в обход. + +## Что это даёт и насколько надёжно + +- ✅ **Работает прозрачно для пользователя** — сотрудник просто открывает `https://nspd.gov.ru/` в браузере как обычно. +- ✅ **Работает для всех функций портала** — включая вход в личный кабинет, API, любые поддомены. +- ✅ **Покрывает удалённых сотрудников** — решение автоматически действует для удалёнщиков (Мексика, Казахстан, другие города), если у них на рабочем ноутбуке установлена наша корпоративная VPN-программа NetBird. +- ✅ **Не влияет на скорость остального интернета** — только трафик к НСПД уходит в обход, остальной — как раньше. +- ✅ **Реализовано централизованно** — администратор включил один раз, работает на всех машинах автоматически. + +## Что требуется от сотрудников и руководства + +**От сотрудников — ничего.** Устанавливать программы, менять настройки, очищать кэш — не нужно. Работает из коробки. + +**Единственное условие** — на рабочем компьютере должна быть установлена наша корпоративная VPN-программа **NetBird**. Она уже установлена на большинстве рабочих машин в НИИКН и у удалённых сотрудников. На новых машинах её устанавливает системный администратор при первичной настройке (это же нужно для многих других рабочих сервисов). + +**Если портал НСПД всё ещё не открывается у конкретного сотрудника** — сообщить администратору. Вероятная причина — на компьютере не запущена или не настроена программа NetBird. + +## Риски и нюансы + +| Риск | Оценка | Что делать | +|------|--------|------------| +| Второй канал (LionART) может пропасть из-за аварии провайдера Telekom | Низкий (дублирование через разных операторов — устойчивая схема) | При аварии доступ к НСПД восстановится автоматически после возвращения канала | +| Росреестр расширит блокировку, включив новые подсети НСПД | Средний | Расширение списка обхода на стороне администратора — вопрос 5 минут | +| Новые сотрудники/ноутбуки без VPN NetBird | Средний | Стандартная процедура: установка NetBird включена в чек-лист настройки рабочего места | + +## Что делать для долгосрочного решения + +Техническое решение — это обход. Правильный путь — **добиться исключения нашего корпоративного IP из чёрного списка Росреестра**. + +Рекомендуемые действия от руководства НИИКН: + +1. **Звонок в службу поддержки Росреестра**: **8-800-100-34-34**. + Суть обращения: «С корпоративного IP-адреса `85.235.181.190` не открывается портал nspd.gov.ru, WAF блокирует с правилом `57615a88d1ec0120b56fdce6`. Просим разблокировать.» + +2. **Письменное обращение через форму обратной связи** портала: https://nspd.gov.ru/feedback. + Приложить скриншот страницы «Запрещено» с указанным `Client IP` и `Rule`. + +3. **Если поддержка Росреестра игнорирует** — обращение в Минцифры или депутатский запрос. Услуга федерального значения, доступная только одному юрлицу — повод для формального разбирательства. + +После разблокировки обход отключается за 30 секунд, портал начнёт работать напрямую. + +## Контакты для вопросов + +**Технический администратор:** Олег Батлаев +**Внутренние ссылки (для IT-службы):** [[../../decisions/2026-04-21-niikn-nspd-netbird-route]] diff --git a/projects/niikn/openwrt-bypass.md b/projects/niikn/openwrt-bypass.md index 4b4a03a..f7f9b50 100644 --- a/projects/niikn/openwrt-bypass.md +++ b/projects/niikn/openwrt-bypass.md @@ -147,6 +147,18 @@ FakeIP диапазон (198.18.0.0/15) направляется через Open Клиенты получают DNS 192.168.1.50 (dnsmasq → sing-box FakeIP). +### DNS override для NSPD (bypass через NetBird, см. [[../../decisions/2026-04-21-niikn-nspd-netbird-route]]) + +Чтобы `nspd.gov.ru` **не попадал** в FakeIP sing-box (он в community-list `russia_outside`), dnsmasq делегирует этот домен напрямую в 8.8.8.8: + +```bash +uci add_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8' +uci commit dhcp +/etc/init.d/dnsmasq restart +``` + +После этого клиенты получают реальные IP `2.63.246.71-76`, которые попадают в NetBird route `2.63.246.0/24 → pve-LionART`. + ## Как работает FakeIP схема 1. Клиент запрашивает DNS для `instagram.com` → получает FakeIP `198.18.0.239`