7.1 KiB
date, type, status, tags
| date | type | status | tags | |||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 2026-05-04 | decision | рабочее |
|
2026-05-04: NSPD из НИИКН — финальная схема через NetBird → pve-LionART
Контекст
После отката WG-туннеля 2026-04-20 (общее замедление трафика) NSPD-bypass был на стороне NetBird Networks. Сегодня клиенты НИИКН пожаловались "не работает даже через NetBird и другие сайты тоже".
Что нашёл
- Сетевая часть исправна — netbird route
nspd-bypass(2.63.246.0/24) активен, трейсpve-niikn → 100.70.128.49 (pve-lionart) → 10.253.1.1 (MikroTik LionART)работает. Сpve-niikncurl -k https://nspd.gov.ru/отдаётHTTP:200. - Цепочка для клиентов разорвана в трёх местах:
- OpenWrt 192.168.1.50: пропал
dnsmasq overrideдляnspd.gov.ru→ podkop ловит в FakeIP198.18.x.x→ AWG → Финляндия → блок (НСПД режет foreign IP). - MikroTik 192.168.1.1: нет static route
2.63.246.0/24 → 192.168.1.201(pve-niikn) → пакеты идут в default WAN → MTS WAF блок. - pve-niikn: нет SNAT/MASQUERADE для
192.168.1.0/24 → wt0→ пакеты приходили на pve-lionart с приватным src → asymmetric routing.
- OpenWrt 192.168.1.50: пропал
- TLS-сертификат NSPD выпущен
Russian Trusted Sub CA(Минцифра, valid from 2026-01-23). Chrome/Edge без ru-trust →ERR_CERT_AUTHORITY_INVALID. Yandex Browser работает нативно. Попутный артефакт:curlиз OpenWrt 24.10 на mbedTLS не парсит ASN.1 этого cert (X509 - The name tag or value is invalid) — но это не проблема пользователей.
Применённый фикс
1. OpenWrt (192.168.1.50) — DNS-override
ssh root@192.168.1.50 # 1qaz!QAZ
uci add_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
uci commit dhcp
/etc/init.d/dnsmasq restart
rm -f /tmp/sing-box/cache.db
/etc/init.d/sing-box restart
Проверка: nslookup nspd.gov.ru 127.0.0.1 → 2.63.246.x (НЕ 198.18.x.x).
2. MikroTik НИИКН (192.168.1.1) — static route
/ip/route/add dst-address=2.63.246.0/24 gateway=192.168.1.201 \
comment="NSPD via NetBird->LionART"
3. pve-niikn (192.168.1.201 / 100.70.120.229) — SNAT на wt0
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o wt0 \
-m comment --comment 'nspd-bypass-via-lionart' -j MASQUERADE
Persist через systemd unit /etc/systemd/system/iptables-nspd-restore.service (idempotent: iptables -C ... || iptables -A ...).
Подтверждение работы
# tcpdump на vmbr0 при curl с OpenWrt → nspd.gov.ru:443
192.168.1.50 > 2.63.246.73:443 Flags [S] ← клиент
2.63.246.73:443 > 192.168.1.50 Flags [S.] ← НСПД отвечает!
192.168.1.50 > 2.63.246.73:443 Flags [P.] len 276 ← TLS ClientHello
2.63.246.73:443 > 192.168.1.50 Flags [.] len 1228 ← TLS ServerHello+Cert
... full data flow ...
Что нужно от пользователей
-
Yandex Browser — открывают
nspd.gov.ruсразу (встроенно доверяет Минцифре). -
Chrome/Edge/Firefox — установить ru-trust сертификаты с https://www.gosuslugi.ru/crt:
russian_trusted_root_ca.cer→ Trusted Root Certification Authoritiesrussian_trusted_sub_ca.cer→ Intermediate Certification Authorities
PowerShell от админа (через RustDesk):
$tmp=$env:TEMP iwr https://gu-st.ru/content/Other/doc/russian_trusted_root_ca.cer -OutFile $tmp\r.cer iwr https://gu-st.ru/content/Other/doc/russian_trusted_sub_ca.cer -OutFile $tmp\s.cer Import-Certificate -FilePath $tmp\r.cer -CertStoreLocation Cert:\LocalMachine\Root Import-Certificate -FilePath $tmp\s.cer -CertStoreLocation Cert:\LocalMachine\CA
Распространение на другие гос-сайты
Тот же ru-trust cert у culture.gov.ru, gosuslugi.ru, rosreestr.gov.ru (последний ещё блокирует MTS-IP отдельно — нужен такой же bypass через LionART).
2026-05-04 — добавлены zakupki и telemost
Аналогичная схема (без TLS-cert проблем — zakupki.gov.ru имеет GlobalSign cert, telemost.yandex.ru тоже стандартный).
NetBird Routes API (POST /api/routes):
zakupki-bypass→95.167.245.0/24(idd7s61o2fadhs73bjk520) → peercuisnd3l0ubs73bsbbl0(pve-lionart)telemost-bypass→87.250.251.0/24(idd7s61oafadhs73bjk750) → тот же peer
MikroTik НИИКН:
/ip/route/add dst-address=95.167.245.0/24 gateway=192.168.1.201 comment="zakupki via NetBird->LionART"
/ip/route/add dst-address=87.250.251.0/24 gateway=192.168.1.201 comment="telemost via NetBird->LionART"
pve-niikn — добавлен MSS clamping для wt0 (NetBird MTU=1280, br-lan/vmbr0=1500 → большие TCP-ответы дропались):
iptables -t mangle -A FORWARD -o wt0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t mangle -A FORWARD -i wt0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Не забыть iptables-save > /etc/iptables/rules.v4 для persist (или дополнить iptables-nspd-restore.service).
Известный артефакт: lk.zakupki.gov.ru (94.25.27.250) даёт TLS handshake failure даже с LionART — у него mTLS / ГОСТ-крипто-провайдер требуется. Решается локально на клиенте (КриптоПро/JaCarta), не сетевыми средствами.
Откат
# pve-niikn
systemctl disable --now iptables-nspd-restore.service
rm /etc/systemd/system/iptables-nspd-restore.service
iptables -t nat -D POSTROUTING -s 192.168.1.0/24 -o wt0 \
-m comment --comment 'nspd-bypass-via-lionart' -j MASQUERADE
# MikroTik НИИКН
/ip/route/remove [find comment="NSPD via NetBird->LionART"]
# OpenWrt
uci -q del_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/77.88.8.8'
uci -q del_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
uci commit dhcp
/etc/init.d/dnsmasq restart
Связанные
- decisions/2026-04-20-niikn-nspd-bypass-via-lionart.md — предыдущая попытка через WG-туннель MikroTik↔MikroTik, откачено
- projects/niikn/openwrt-bypass.md — раздел "Исключение доменов из проксирования"
- decisions/2026-04-28-niikn-uookn-sev-gov-fakeip-fix.md — другие gov-сайты
Теги
#niikn #mmfb #lionart #netbird #nspd #mikrotik #openwrt #fix