Выпуск Nebula 1.5, систСмы для создания ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉΠ½Ρ‹Ρ… P2P-сСтСй

ДоступСн выпуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Nebula 1.5, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π³ΠΎ инструмСнтарий для построСния Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹Ρ… ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉΠ½Ρ‹Ρ… сСтСй. Π‘Π΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎ дСсятков тысяч Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… хостов, Ρ€Π°Π·ΠΌΠ΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… Ρƒ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€ΠΎΠ², формируя ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Ρ€Ρ… глобальной сСти. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ MIT. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ основан ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Slack, Ρ€Π°Π·Π²ΠΈΠ²Π°ΡŽΡ‰Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠΈΠΌΡ‘Π½Π½Ρ‹ΠΉ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ мСссСндТСр. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ€Π°Π±ΠΎΡ‚Π° Π² Linux, FreeBSD, macOS, Windows, iOS ΠΈ Android.

Π£Π·Π»Ρ‹ Π² сСти Nebula Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ P2P — ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ появлСния нСобходимости ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ динамичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ прямыС VPN-соСдинСния. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ хоста Π² сСти подтвСрТдаСтся Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ сСртификатом, Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ сСти Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ прохоТдСния Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ — ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ сСртификат, ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠΉ IP-адрСс Π² сСти Nebula, имя ΠΈ члСнство Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ… хостов. Π‘Π΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΠΈΠΌ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ, Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌ создатСлСм сСти Π½Π° своих мощностях ΠΈ примСняСмом для завСрСния ΠΏΠΎΠ»Π½ΠΎΠΌΠΎΡ‡ΠΈΠΉ хостов, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉΠ½ΠΎΠΉ сСти.

Для создания Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½ΠΎΠ³ΠΎ ΠΊΠ°Π½Π°Π»Π° связи Π² Nebula примСняСтся собствСнный Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», основанный Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ Π”ΠΈΡ„Ρ„ΠΈ—Π₯Π΅Π»Π»ΠΌΠ°Π½Π° ΠΈ ΡˆΠΈΡ„Ρ€Π΅ AES-256-GCM. РСализация ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° базируСтся Π½Π° Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π°Ρ…, прСдоставляСмых Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Noise, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ примСняСтся Π² Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΊΠ°ΠΊ WireGuard, Lightning ΠΈ I2P. УтвСрТдаСтся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΡˆΡ‘Π» нСзависимый Π°ΡƒΠ΄ΠΈΡ‚ бСзопасности.

Для обнаруТСния Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ·Π»ΠΎΠ² ΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ сСти ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ·Π»Ρ‹ «lighthouse», Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ IP-адрСса ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… фиксированы ΠΈ извСстны участникам сСти. Π£ ΡƒΠ·Π»ΠΎΠ²-участников Π½Π΅Ρ‚ привязки ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ IP-адрСсу, ΠΎΠ½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ сСртификатам. Π’Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ хостов ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ внСсти измСнСния Π² подписанныС сСртификаты ΠΈ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… IP-сСтСй Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡ‚Π²ΠΎΡ€ΠΈΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌ хостом простой смСной IP-адрСса. ΠŸΡ€ΠΈ создании туннСля ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ хоста подтвСрТдаСтся ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.

Π‘ΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠΉ сСти выдСляСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ½Ρ‚Ρ€Π°Π½Π΅Ρ‚ адрСсов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 192.168.10.0/24) ΠΈ осущСствляСтся связываниС Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… адрСсов с сСртификатами хостов. Из участников ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉΠ½ΠΎΠΉ сСти ΠΌΠΎΠ³ΡƒΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π³Ρ€ΡƒΠΏΠΏΡ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для раздСлСния сСрвСров ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станций, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ для ΠΎΠ±Ρ…ΠΎΠ΄Π° трансляторов адрСсов (NAT) ΠΈ мСТсСтСвых экранов. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° сторонних хостов, Π½Π΅ входящих Π² ΡΠ΅Ρ‚ΡŒ Nebula (unsafe route).

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ созданиС мСТсСтСвых экранов для раздСлСния доступа ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π² ΠΎΠ²Π΅Ρ€Π»Π΅ΠΉΠ½ΠΎΠΉ сСти Nebula. Для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ACL с привязкой Ρ‚Π΅Π³ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ хост Π² сСти ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ собствСнныС ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ хостам, Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌ, ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°ΠΌ ΠΈ сСтСвым ΠΏΠΎΡ€Ρ‚Π°ΠΌ. ΠŸΡ€ΠΈ этом хосты Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΡŽΡ‚ΡΡ Π½Π΅ ΠΏΠΎ IP-адрСсам, Π° ΠΏΠΎ Π·Π°Π²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ хоста, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Π»Π°Ρ‚ΡŒ Π±Π΅Π· ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ состав сСти ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰Π΅Π³ΠΎ Ρ†Π΅Π½Ρ‚Ρ€Π°.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС:

  • Π’ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ print-cert Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ «-raw» для Π²Ρ‹Π²ΠΎΠ΄Π° PEM-прСдставлСния сСртификата.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Linux riscv64.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ настройка remote_allow_ranges для привязки списков Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… хостов ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌ подсСтям.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция pki.disconnect_invalid для сброса Ρ‚ΡƒΠ½Π½Π΅Π»Π΅ΠΉ послС прСкращСния довСрия ΠΈΠ»ΠΈ истСчСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ сСртификата.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция unsafe_routes.<route>.metric для задания вСса ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌΡƒ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρƒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru