From 37a393f2ae4ee922e8111271f4046a92cb5b8b07 Mon Sep 17 00:00:00 2001 From: postscriptum Date: Tue, 3 Feb 2026 04:59:07 +0200 Subject: [PATCH] add `connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi` --- ...znc-bouncer-to-libera-chat-irc-via-tor.gmi | 143 ++++++++++++++++++ public/uk/index.gmi | 1 + public/uk/znc-irc-bouncer-setup.gmi | 1 + 3 files changed, 145 insertions(+) create mode 100644 public/uk/connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi diff --git a/public/uk/connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi b/public/uk/connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi new file mode 100644 index 0000000..2812f2a --- /dev/null +++ b/public/uk/connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi @@ -0,0 +1,143 @@ +# Підключення баунсера ZNC до Libera.Chat/IRC через Tor + +Дістався мені 24/7 сервер, на якому відсутній інтерфейс Інтернет але присутній мультикаст Yggdrasil, через який можна підключитись до мережі Tor, а з неї - до Libera.Chat + +Про те, як налаштувати баунсер ZNC, я раніше писав в матеріалі: +=> znc-irc-bouncer-setup.gmi Встановлення та налаштування IRC-баунсера ZNC в Linux + +Про налаштування підключення до мережі Tor засобами мостів Yggdrasil, описано тут: +=> arti-onion-router-with-tor-connection-over-yggdrasil.gmi Встановлення Onion-роутера Arti з підключенням до мережі Tor через Yggdrasil + +## Обліковий запис на сервері Libera.Chat + +В офіційній документації вказано, що для підключення до сервера через Tor, потрібно мати зареєстрований на сервері обліковий запис: + +> Libera.Chat is reachable via Tor using our onion service, provided you already have an account (created without using Tor). + +=> https://libera.chat/guides/connect#accessing-liberachat-via-tor + +Можливо, це зроблено з метою захисту від спаму, не цікавився. + +Повна документація з реєстрації облікових записів описана тут: +=> https://libera.chat/guides/registration + +Якщо коротко, то з комп'ютера де є Інтернет, заходимо з клієнта IRC (наприклад, Halloy) через порт 6697 на будь який сервер Libera.Chat з офіційного списку: + +* irc.libera.chat +* irc.eu.libera.chat +* irc.us.libera.chat +* irc.au.libera.chat +* irc.ea.libera.chat +* irc.ipv4.libera.chat +* irc.ipv6.libera.chat + +### Авторизація + +На випадок, якщо вже є старий акаунт - логінимось і крок з реєстрацією пропускаємо: + +``` bash +/msg NickServ IDENTIFY YOUR_NICK YOUR_PASS +``` + +### Реєстрація + +Підключившись до сервера, вказуємо нікнейм поточної сесії: + +``` +/nick YOUR_NICK +``` +* YOUR_NICK - ваше значення + +Якщо нікнейм вільний, то NickServ його присвоїть. Тепер потрібно його зареєструвати, адже наразі - це лише псевдонім гостьової сесії: + +``` +/msg NickServ REGISTER YourPassword youremail@example.com +``` + +Після введення команди, в мене з'явилось повідомлення про надсилання листа підтвердження на вказану адресу e-mail. Туди прийшов лист з командою активації, яку потрібно скопіювати в той же чат: + +``` +/msg NickServ VERIFY REGISTER YOUR_NICK ACTIVATION_KEY +``` +* YOUR_NICK, ACTIVATION_KEY - унікальні значення + +Якщо помилок не виникло і побачили відповідне вітання від сервера - реєстрацію успішно завершено! + +## Генерація сертифікату + +Особливістю підключення до Libera.Chat через Tor є необхідність створення користувацького сертифікату з подальшою реєстрацією його відбитку (fingerprint) на сервері: + +> This service requires public-key SASL authentication using either the EXTERNAL or ECDSA-NIST256P-CHALLENGE (but not PLAIN) mechanisms. See our guide on setting up CertFP for more information. + +Детальніше про сертифікати написано тут: +=> https://libera.chat/guides/certfp.html + +Вся документація вище - зводиться до виконання двох команд на локальному комп'ютері: + +1. Генерація локального файлу user.pem: + +``` bash +openssl req -nodes -sha512 -newkey rsa:4096 -keyout user.pem -x509 -days 3650 -out user.pem -subj "/CN=YOUR_NICK" +``` +* `-days 3650` - не обов'язково, сервер перевіряє сертифікат тільки один раз +* `/CN=YOUR_NICK` - має бути актуальним + +2. Отримання відбитку, для Libera.Chat це має бути `-sha512`: + +``` bash +openssl x509 -sha512 -noout -fingerprint -in user.pem | sed -e 's/^.*=//;s/://g;y/ABCDEF/abcdef/' +``` +* результатом виконання цієї команди буде хеш-рядок, який потрібно скопіювати + +### Реєстрація сертифікату на сервері + +Щоб почати користуватись створеними локально ключами, їх потрібно зареєструвати. В чаті NickServ, від авторизованого раніше користувача, вказується команда: + +``` bash +/msg NickServ CERT ADD [FINGERPRINT] +``` +* FINGERPRINT - зкопійований хеш-рядок з останньої команди openssl + +Якщо все пройшло без помилок, перевірити доданий відбиток можна командою: + +``` bash +/whois YOUR_NICK +``` + +## Підключення ZNC до Libera.Chat + +Логінимось до Веб-адмінки баунсера і виконуємо наступне + +### ZNC » webadmin » Edit User » Networks » Add + +* Не знаю, чи це дійсно було потрібно для Tor, але я вимкнув "Trust all certs". + +Переходимо до секції "Servers of this IRC network", тиснемо "Add": + +* Hostname: libera75jm6of4wxpxt4aynol3xjmbtxgfyjpu34ss4d7r7q2v5zrpyd.onion +* Port: 6697 +* SSL: Yes + +На тій же сторінці, в секції "Modules", вмикаємо наступні додатки: + +* cert - інтерфейс сертифікатів для SASL +* sasl - механізм авторизації зареєстрованого користувача + +Скролимо до низу та зберігаємо налаштування кнопкою "Save and continue", після чого на цій же сторінці в меню зліва має з'явитись нове підменю для поточної мережі "Network Modules (libera)". В цьому меню, мають бути посилання на два активовані модулі вище, заходимо по черзі та актуалізуємо дані + +### ZNC » cert » Certificate + +Тут є тільки одне поле "PEM File" - копіюємо в нього вміст локального сертифікату (user.pem) та зберігаємо налаштування кнопкою "Update". + +### ZNC » sasl » SASL + +В налаштуваннях цього модуля, вказуємо логін (Username) та пароль (Password) від облікового запису Libera.Chat, які вказали під час реєстрації NickServ. + +* Опція "Require authentication" при цьому в мене не відмічена. + +Нижче, є блок "Mechanisms": тут важливо вказати "EXTERNAL", після чого зберігаємо налаштування і пробуємо підключитись. Підключаючись з клієнта, вказуємо в ньому саме сервер / логін / пароль від облікового запису баунсера, а не сервера Libera.Chat (наприклад, у мене це u_znc) + +## Посилання + +=> https://wiki.znc.in/Cert +=> https://dev.adiirc.com/projects/adiirc/wiki/LiberaChat_tor diff --git a/public/uk/index.gmi b/public/uk/index.gmi index d2044a6..11e4aeb 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -16,6 +16,7 @@ ### Нотатки +=> connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi 2026-02-03 Підключення баунсера ZNC до Libera.Chat/IRC через Tor => fix-qemu-kvm-hang-on-booting-from-hard-disk.gmi 2026-02-01 Виправлення зависання "Booting from Hard Disk..." в QEMU / KVM (virt-manager) => insulating-windows-with-polystyrene.gmi 2026-02-01 Мій лайфхак з утеплення вікон полістироловими плитами => run-mycelium-without-root.gmi 2026-01-31 Запуск роутера Mycelium без root diff --git a/public/uk/znc-irc-bouncer-setup.gmi b/public/uk/znc-irc-bouncer-setup.gmi index 550b010..3a088cd 100644 --- a/public/uk/znc-irc-bouncer-setup.gmi +++ b/public/uk/znc-irc-bouncer-setup.gmi @@ -227,5 +227,6 @@ password = "" ### Дивіться також +=> connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi Підключення баунсера ZNC до Libera.Chat/IRC через Tor => soju-irc-bouncer-setup.gmi Встановлення та базове налаштування IRC-баунсера soju в Linux => arti-onion-router-with-tor-connection-over-yggdrasil.gmi Встановлення Onion-роутера Arti з підключенням до мережі Tor через Yggdrasil \ No newline at end of file