Автор Гілка: iroh 1.0 — VPN з ключами замість IP-адрес та портів  (Прочитано 4499 раз)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
iroh — це VPN на основі QUICK, у якому адресація відбувається на основі ключів, що дозволяє бути впевненим у тому, з ким встановлене зʼєднання, на відміну від ip-адрес та портів. Iroh використовують такі аплікації як delta.chat.

Оголошення: https://www.iroh.computer/blog/v1
Проєкт: https://github.com/n0-computer/iroh
« Змінено: 2026-06-15 21:41:27 від Володимир Лісівка »
[Fedora Linux]

Відсутній ps

  • Графоман
  • ****
  • дописів: 254
  • Карма: +4/-0
    • Мої дописи на DevZone
О, я теж помітив цей анонс! Вперше про iroh дізнався в контексті Blossom, що в контексті nostr - там він є опцією до класичного транспорту HTTP.

Взагалі чим цікаво, на відміну від keybase-подібного sendme є прикладна специфікація для заміни DHT, яка виключає стек IP а звідти - обмеження дюал-стек libtorrent (і йому подібних). В теорії, ним можна ганяти торенти в оверлейному режимі, використовуючи той же WebSocket замість блокованих TCP. Навіть глянув тікети на qBittorrent, де вже є з коробки I2P/SAM; утім про iroh - поки глухо.

Схожа реалізація крипто-пари є також в Reticulum (прямо тренд пішов) але там інші, етерні можливості, орієнтовані на середовища з високою латентністю доставки пакетів і явно не розрахованого на доставку великих масивів даних, не кажучи про швидкість (SSH - і той під питанням).
« Змінено: 2026-06-16 03:43:36 від ps »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Цікаво, чи можна зробити на iroh свою приватну вікі, яка буде зберігатися вдома, але до якої я зможу мати доступ з будь-якої точки, наприклад з мобільного телефону? Та і доступ до свого приватного ШІ, коли я в дорозі, теж було б непогано мати без геморою з настройками і прокиданням портів через подвійний NAT.
[Fedora Linux]

Відсутній ps

  • Графоман
  • ****
  • дописів: 254
  • Карма: +4/-0
    • Мої дописи на DevZone
Вам сюди https://yggdrasil-network.github.io - умовно кажучи VPN на основі приватного ключа, що генерує на його основі валідний, статичний IPv6 в зоні 0200::/7
Є ще https://github.com/threefoldtech/mycelium - з фічею побудови приватних мереж, та іншою архітектурою маршрутизації, але в цілому те само, ранж 0400::/7
 
Це дві повноцінні віртуальні оверлейні мережі. З Iroh цікаво, може й вийде зробити, утім навіщо коли 99.9% софту працює саме з IP.
Головне налаштуйте Firewall, бо кожен учасник цих мереж сприйматиме ваш хост як дедікейтед без NAT.

P.S. я взагалі розглядаю тут Iroh як "брідж" URL, бо коли публікую допис nostr з вкладенням, то не знаю яке посилання давати: yggdrasil, mycelium, i2p, клір чи усі. А так додав iroh:// і все.
« Змінено: 2026-06-16 18:01:00 від ps »

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Я не хочу робити оверлейну мережу, по якій буде бігати хто зна який трафік, бо тоді треба робити фаєрвол.

Мені подобається ідея звʼязувати аплікацію з аплікацією, незалежно від того, скільки фаєрволів між ними.

В мене давно була ідея зробити повністю приватний трекер тікетів, на зразок trac чи trello. Я хотів робити його на основі сигнал (кожен тікет — як окрема приватна групова розмова), а тепер бачу що можна зробити на основі iroh.
[Fedora Linux]

Відсутній ps

  • Графоман
  • ****
  • дописів: 254
  • Карма: +4/-0
    • Мої дописи на DevZone
* По-перше, траф бігає по публічним пірам (отримують вхід через Listen), яким ви з коробки не будете, а будете піром клієнтського типу (отримують вихід через Peer)
* По-друге, навіть якщо будете - траф зашифрований end-to-end і вас стосується тільки в плані bandwidth
* По-третє, обидві мережі не працюють на зовні, вони є локальними (VPN в прямому сенсі без аутпроксі як це сьогодні модно їх обзивати)
* По-четверте, згаданий Mycelium вміє приватні мережі - це те що вам потрібно: айпішник на якому забіндити з хати публічний сервіс а не писати під нього брідж Iroh
* І на останок, все що потрібно зробити юзеру на debian - поставити ufw з політикою block (by default) і відкрити саме ті порти і для тих хостів, яким ви шарите дані

Я тут вже трішки розібрався і піднімаю релей Yggdrasil для Iroh, бо його вшитий клір резольвить як euc1-1.relay.n0.iroh.link. 17 IN AAAA

UPD. підняв
  • [202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:3340 - Yggdrasil
  • [505:6847:c778:61a1:5c6d:e802:d291:8191]:3340 - Mycelium

Приклад:

sendme send -v --magic-ipv6-addr [ВАШ_YGG]:ПОРТ \
    --relay http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:3340 /path/to/file
  • отриманий хеш вказується у відповідному `sendme receive`
  • порт відкривати не потрібно

Сетап: systemd, конфіги
« Змінено: 2026-06-17 01:17:43 від ps »

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 487
  • Карма: +7/-0
...свою приватну вікі, яка буде зберігатися вдома, але до якої я зможу мати доступ з будь-якої точки, наприклад з мобільного телефону? Та і доступ до свого приватного ШІ, коли я в дорозі, теж було б непогано мати без геморою з настройками і прокиданням портів через подвійний NAT.
Піднімаєте ірц сервер (навіть тут на лоу) та маєте собі релей текстового трафіку (і вікі, і все інше).
До того ж через нього зможете знати іп (як адмін) і порти для прокидання натів.
А без того ви чийсь інший сервер маєте як посередник для встановлення прямих зв'язків.
Ви перевіряли який в вас мобільний іп? Може він взагалі глобальний іп6?

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 487
  • Карма: +7/-0
А ви знайомі зі стандартами УПнП та ІГД (в УПнП)?
Ваш роутер, та роутер провайдера може надавати через них сервіс вибору портів які ви хочете отримати. Тоді непотрібно нічого з того що пропонували.
This adds a port to the router's forwarding table. The mapping will be automatically refreshed...
These signals may be emitted multiple times if there are multiple routers present.
... the protocol "UDP" or "TCP" ...
The local ip on the internal device...
Removes all mappings and prevents other from being formed...

Бібліотека є під усі мови. Там ХМЛ та СОАП.

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Піднімаєте ірц сервер (навіть тут на лоу) та маєте собі релей текстового трафіку (і вікі, і все інше).

Для цього потрібно щоб сервер мав білу ip-адресу і запис в DNS, а це зараз не дороге але й не безплатне задоволення. Крім того, такий сервер може бути вразливий. Спілкування напряму між двома приватними адресами захищеними ключами значно менш геморойне. Це як різниця між telnet по паролю і ssh по ключу.

До того ж через нього зможете знати іп (як адмін) і порти для прокидання натів.
Я не хочу знати. Я хочу щоб компʼютер працював для мене, а не я — для компʼютера.

Ви перевіряли який в вас мобільний іп? Може він взагалі глобальний іп6?

У мене ipv4 на телефоні (Водафон).

Цитата
А ви знайомі зі стандартами УПнП та ІГД (в УПнП)?
Тут UPnP використовується автоматично для пробивання дірок у NAT. Якщо подвійний NAT або провайдерський NAT або UPnP заборонений, то UPnP вже не допоможе. Я зараз за подвійним чи потрійним NAT на ноутбуці, і за CGNAT на телефоні, тобто звʼязатися напряму вони можуть тільки коли вони в одній локальній мережі WiFi, де мені цей звʼязок не дуже й потрібен.

Крім того, UPnP у кожного виробника різний, часто міняється після оновлення, і може бути глюкавим чи робочим тільки частково. Спробуйте nmap -sU -p 1900 --script=upnp-info АДРЕСА_ШЛЮЗА щоб отримати адресу UPnP, а тоді спробуйте upnpc -u АДРЕСА_UPNP -l, щоб подивитися що реально підтримується. Я пробував на 4-ьох різних роутерах — у всіх по різному.
[Fedora Linux]

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Приклад:

sendme send -v --magic-ipv6-addr [ВАШ_YGG]:ПОРТ \
    --relay http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:3340 /path/to/file
  • отриманий хеш вказується у відповідному `sendme receive`
  • порт відкривати не потрібно

Сетап: systemd, конфіги

Я поставив iroh-ssh-android на телефоні, iroh-ssh на ноутбуці, обмінявся ключами iroh та ssh — і все забігало, зʼєднання працює і через WiFi і через оператора (повільніше). Я тепер можу зайти на свій ноутбук по ssh, але тільки зі свого телефону, що мене цілком влаштовує. На ноутбуці я можу запустити в терміналі boo (щоб не тримати зʼєднання постійно відкритим), потім oh-my-pi і тоді мати постійний доступ до свого власного ШІ, та до своїх файлів. Тобто, наприклад, я можу наказати ШІ на ноутбуці, щоб він робив щось корисне, поки я в дорозі. А VPN-и та тунелі мені вже в печінках сидять.

PS.

Подивитися на конфігурацію не можу:
Цитата
500

Внутрішня помилка сервера

Версія Forgejo: 15.0.0-165-1fa1b083+gitea-1.22.0
« Змінено: 2026-06-17 15:21:23 від Володимир Лісівка »
[Fedora Linux]

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 487
  • Карма: +7/-0
Я не хочу знати. Я хочу щоб компʼютер працював для мене, а не я — для компʼютера.
Так це бажання протилежне до безпеки. Це ви захотіли телнет без шифрування "щоб від працював для вас, а не ви для нього" :)))

Для цього потрібно щоб сервер мав білу ip-адресу і запис в DNS, а це зараз не дороге але й не безплатне задоволення. Крім того, такий сервер може бути вразливий. Спілкування напряму між двома приватними адресами захищеними ключами значно менш геморойне. Це як різниця між telnet по паролю і ssh по ключу.
То ви не зрозуміли що ваші адреси перестали бути приватними :)))
(хоч вони й до того не були захищеними, навіть коли вам таке здавалося, читайте рфц про адреси за натами)
До того ж ключі це не магічне слово яке вас чомусь повинно захистити.
А от про ірц ви помилилися в багатьох припущеннях.

Якщо подвійний NAT або провайдерський NAT або UPnP заборонений, то UPnP вже не допоможе.
Ні :)
(хоча фраза "якщо немає УПнП то УПнП не допоможе, це ще та логіка :))) )

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Так це бажання протилежне до безпеки. Це ви захотіли телнет без шифрування "щоб від працював для вас, а не ви для нього" :)))
Безпека і зручність часто протилежні, але зручна безпека краща за незручну, бо незручна безпека створює втому, а втома призводить до пофігізму («Я робив це вже 3 тисячі раз, а мене ще й досі не взламали! Навіщо я себе мучу?!»).


То ви не зрозуміли що ваші адреси перестали бути приватними :)))
(хоч вони й до того не були захищеними, навіть коли вам таке здавалося, читайте рфц про адреси за натами)
До того ж ключі це не магічне слово яке вас чомусь повинно захистити.

Я в курсі, що презерватив не захищає від кулі, але й броня не захищає від сифілісу.

Якщо мені треба зʼєднатися зі своїм ноутбуком зі свого телефону через незахищену мережу, то ssh + аутентифікація і авторизація по ключах + сильно урізаний по можливостях VPN — на порядки зменшують імовірність підхопити якусь заразу.

Але, звичайно, два запущені мережні сервіси збільшують площу атаки. Для максимальної безпеки, потрібно відключати пристрої від мереж звʼязку та живлення, але це значно зменшує їхню корисність та окупність, тому ефективніше їх взагалі не купувати.  [smiley=ded.gif]
[Fedora Linux]

Відсутній BeSiDa

  • Графоман
  • ****
  • дописів: 487
  • Карма: +7/-0
Безпека і зручність часто протилежні, але зручна безпека краща за незручну, бо незручна безпека створює втому, а втома призводить до пофігізму («Я робив це вже 3 тисячі раз, а мене ще й досі не взламали! Навіщо я себе мучу?!»).
Крім зручної та незручної є ще "роблю без думок". От ви скільки тисяч разів закрили та відкрили замок на дверях? :)  (за життя)

Якщо мені треба зʼєднатися зі своїм ноутбуком зі свого телефону через незахищену мережу, то ssh + аутентифікація і авторизація по ключах + сильно урізаний по можливостях VPN — на порядки зменшують імовірність підхопити якусь заразу.
От тільки-но почали про види атак і види захисту і знов сповзли до беззмістовного "зменшують" чи "збільшують" (які не виміряти часом, як от наприклад рекомендований час у хвилинах між змінами ключа ссш у рфц по ссш в2),.

От на скільки частіше треба міняти ключ через те що ви самі обрали варіант з Мен-Ін-Зе-Мідле бай дезайн? :)  (ссш не дуже розрахований на постійну атаку такого виду, особливо заміри часу між пакетами з натисканням клавіш).

Для максимальної безпеки, потрібно відключати пристрої від мереж звʼязку та живлення, але це значно зменшує їхню корисність та окупність, тому ефективніше їх взагалі не купувати.  [smiley=ded.gif]
От... звели до абсурду :) "зменшує" порівняли з "повним нуль" :)))
Де логіка?

Але головно то підміна "ІД в застосунку" на "аналог ІП". Це різні рівні.
Сервіс рівня ірц, майнкрафт серевера, пошти, халф-лайф сервера, а не роутерів рівня іп. Але "один на всіх", тому і баги "одні на всіх", а не окремо по застосунках.
Хоча... мультипас квік з драфта рфц то цікаво... подивитись що знайдуть за баги в ньому.

Відсутній ps

  • Графоман
  • ****
  • дописів: 254
  • Карма: +4/-0
    • Мої дописи на DevZone
Дехто, хто вміє читати (документацію) навів наступну цитату:

Цитата
Tickets contain IP addresses: When you create a ticket, it embeds the IP addresses you’re currently reachable at. Sharing a ticket means sharing your IP address with whoever receives it. This is intentional - it enables direct connections without a central server.

Якщо це дійсно залежність а не опція (от як вбудований трекер в посилання magnet) то рішення мені не підходить. Бо уявляв собі хеш на поверхні з маршрутизуючим демоном під капотом (або умовним 127.0.0.1 для веб сервісів)

Відсутній Володимир Лісівка

  • Адміністратор ЩОДО
  • Видавець
  • *****
  • дописів: 4166
  • Карма: +40/-0
  • Програміст
Крім зручної та незручної є ще "роблю без думок". От ви скільки тисяч разів закрили та відкрили замок на дверях? :)  (за життя)

Приблизно 30 тисяч раз.


Якщо мені треба зʼєднатися зі своїм ноутбуком зі свого телефону через незахищену мережу, то ssh + аутентифікація і авторизація по ключах + сильно урізаний по можливостях VPN — на порядки зменшують імовірність підхопити якусь заразу.
От тільки-но почали про види атак і види захисту і знов сповзли до беззмістовного "зменшують" чи "збільшують" (які не виміряти часом, як от наприклад рекомендований час у хвилинах між змінами ключа ссш у рфц по ссш в2).
Двофакторна автентифікація зменшує імовірність успішної атаки через те, що зловмиснику потрібно дві речі для успішної атаки замість однієї. Тобто вимірюється це дуже легко: було — 1 (один) фактор, стало — 2 (два) фактори.

От на скільки частіше треба міняти ключ через те що ви самі обрали варіант з Мен-Ін-Зе-Мідле бай дезайн? :)  (ссш не дуже розрахований на постійну атаку такого виду, особливо заміри часу між пакетами з натисканням клавіш).
Ключ-адресу потрібно міняти так само часто, як і ip-адресу. Як часто ви міняєте своїм пристроям адреси (за власним бажанням, а не тому що щось вас змусило)? Я колись читав про технологію захисту серверів, яка змінює ip-адресу сервера 100 раз на секунду. Технічно, це можливо і з ключами-адресами.

Для максимальної безпеки, потрібно відключати пристрої від мереж звʼязку та живлення, але це значно зменшує їхню корисність та окупність, тому ефективніше їх взагалі не купувати.  [smiley=ded.gif]
От... звели до абсурду :) "зменшує" порівняли з "повним нуль" :)))
Де логіка?
Корисність може бути навіть негативна, не тільки нульова, так як потрібні кошти/час на обслуговування, зберігання/захист, утилізацію.

Але головно то підміна "ІД в застосунку" на "аналог ІП". Це різні рівні.

Це не є ідентифікатором в застосунку, хоча, звичайно, ніхто не забороняє привʼязати ідентифікатор до IP-, чи MAC-, чи ключа-адреси — в телекомі так часто робили і досі роблять, чим хакери і користуються. З ключами-адресами, ми все ще на 3-му рівні OSI, а не на 7-мому. Ключі-адреси, це такі самі адреси як адреси IPv4, IPv6, чи IPv666. Тобто ми маємо справу з новим видом VPN, а не новим видом автентифікації користувачів. Але те що VPN постачається як бібліотека, яка не потребує налаштувань, робить її зручною для використання у застосунках.
[Fedora Linux]