Вступ
Yggdrasil — це рання реалізація наскрізної зашифрованої мережі IPv6. Мережа легка, самовпорядковується, підтримується на декількох платформах і дозволяє практично будь-якому додатку, що підтримує IPv6, безпечно з’єднуватись з іншими її вузлами. Yggdrasil не вимагає підключення через IPv6 — він також працює через IPv4. Незважаючи на те, що Yggdrasil має багато спільного з cjdns, він використовує інший алгоритм маршрутизації, заснований на погодженому в усьому світі протоколі кістякового дерева (Spanning Tree Protocol) та має на меті впровадити деякі нові локальні методи зворотного зв’язку. Теоретично, Yggdrasil повинен добре масштабуватись в мережах з топологіями, подібними до Інтернету.
Статус проекту
Проект знаходиться на початковій стадії та активно розробляється. Нещодавно розробники випустили версію 0.3.15 і регулярно працюють над її оновленнями. Лише невелика кількість користувачів активно використовує і тестує Yggdrasil для ряду цілей, включаючи, але не обмежуючись, захищеним віддаленим доступом (SSH та VNC), доступом до серверів Matrix, Jabber та IRC і навіть деякими відеопотоками, передачею великих файлів та тестами на пропускну здатність в цій мережі.
Існує ряд внутрішніх служб, які надає спільнота та якими керує ком’юніті. Цілком ймовірно, що в майбутніх версіях можуть все ж таки траплятися випадкові зміни, що призводитимуть до помилок. Однак Yggdrasil переважно працює добре і виявився досить стабільним. Останні збірки сягали декількох тижнів роботи без збоїв!
Бінарні файли автоматично створюються кожного разу. Їх прив’язують до Git для ряду платформ. Радимо завантажувати, тестувати та використовувати їх у своєму середовищі. Будьте готові до частого оновлення. На цьому етапі не радимо покладатися на Yggdrasil для будь-яких надважливих завдань! Yggdrasil написаний мовою Go. Код невеликий і зручний для розуміння. Він був протестований на різних платформах (включаючи Linux, Windows, macOS, FreeBSD, OpenBSD та Ubiquiti EdgeOS) з певними застереженнями.
Підтримка iOS
Мережа підтримує роботу на iOS. Працює стабільно та автопід’єднується на iOS через інсталяцію VPN.
Що в планах?
- підтримка Android (неофіційно вона вже є);
- підтримка авто-підключення між iOS пристроями навіть якщо вони не в одній Wi-Fi мережі;
- робота через WebSocket як спосіб приховування роботи мережі.
Якщо ви хочете розвивати мережу, налаштуйте Yggdrasil на комп’ютері чи маршрутизаторі та приєднуйтесь до проекту. Чим більше мережа зростатиме, тим краще розробники розумітимуть, як можна масштабувати проект. Ви можете поспілкуватись з розробниками мережі в Matrix або в чаті мережі Freenode IRC. Також, на цих ресурсах ви можете знайти нас. Там можливо все, що побажає душа аноніма.
Встановлення на Linux
Yggdrasil добре підтримується в Debian, Ubuntu, basicOS, Linux Mint та подібних системах.
Примітки
Yggdrasil повинна працювати з будь-яким ядром, що включає модулі TUN та/або TAP. Максимальний розмір MTU, який підтримується в Linux, становить 65535 байт у режимі TUN та 65521 байт у режимі TAP.
Щоб Yggdrasil працював, потрібно ввімкнути IPv6. Зазвичай IPv6 увімкнений за замовчуванням, але якщо це не так, увімкніть його за допомогою: sysctl -w net.ipv6.conf.all.disable_ipv6 = 0.
Якщо ви використовуєте TUN/TAP, тоді у вашій системі повинен бути присутній /dev/net/tun. Ми ж рекомендуємо використовувати алгоритм BBR, оскільки він може значно зменшити затримку при навантаженні.
У останніх дистрибутивах це можна зробити за допомогою sysctl -w net.ipv4.tcp_congestion_control = bbr.
Ця інструкція стосується будь-якого іншого дистрибутива на базі Debian. Для спрощення встановлення Yggdrasil існують двійкові пакети Debian.
Встановлення пакета із сховища S3
На деяких платформах, по типу Raspberry Pi вам доведеться інсталювати dirmngr:
sudo apt-get install dirmngr
Потім імпортуйте ключ сховища у ваш gpg keyring та експортуйте його:
gpg — fetch-keys https://neilalexander.s3.dualstack. eu-west-2.amazonaws.com/deb/key.txt
gpg — export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
Додайте репозиторії до своїх apt джерел:
echo ‘deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil’ | sudo tee /etc/apt/sources.list.d/yggdrasil.list
sudo apt-get update
Примітка: сховище також працює через HTTPS — вам потрібно буде ввести команду sudo apt-get install apt-transport-https, а потім відредагувати вказану вище URL-адресу так, щоб вона починалася з https:// замість http:// в /etc/apt/sources.list.d/yggdrasil.list.
Встановіть Yggdrasil:
sudo apt-get install yggdrasil
Конфігурація буде автоматично сформована в /etc/yggdrasil.conf при встановленні пакету, а сервіс Yggdrasil буде встановлений в systemd.
Увімкніть та запустіть службу після update/upgrade:
sudo systemctl enable yggdrasil
sudo systemctl start yggdrasil
Одноразове встановлення пакета від CircleCI
Відвідайте сторінку збірки (Latest Builds | Yggdrasil (yggdrasil-network.github.io)) та завантажте відповідний файл .deb, а потім встановіть його у свою систему. Якщо ви хочете встановити останню версію .deb з гілки master:
curl -so- “https://circleci.com/api/v1.1/project/github/yggdrasil-network/yggdrasil-go/latest/artifacts?branch=master&filter=successful" | \
egrep -o “https.*yggdrasil\-.*$(dpkg — print-architecture).deb” | \
while read line; do curl -O $line && dpkg -i $(basename $line); done
Внесення змін до конфігурації
Змініть файл /etc/yggdrasil.conf, а потім перезавантажте конфігурацію:
systemctl reload yggdrasil
… або перезапустіть демон Yggdrasil взагалі:
systemctl restart yggdrasil
Конфігурація
Yggdrasil можна запускати з динамічно генерованою конфігурацією, використовуючи автоматичні налаштування за замовчуванням, за допомогою yggdrasil — autoconf. У цьому режимі Yggdrasil автоматично намагатиметься взаємодіяти з іншими вузлами в тій самій підмережі, але він також генеруватиме випадковий набір ключів при кожному запуску, а отже і випадкову IP-адресу. Зазвичай статична конфігурація спрощує більшість налаштувань — дозволяє підтримувати однакову IP-адресу, налаштовувати статичні однорангові мережі та різні інші параметри, які зберігатимуться при перезапуску. Yggdrasil підтримує конфігурацію у форматі HJSON або JSON. Формат HJSON є бажаним за замовчуванням, оскільки він містить коментарі, хоча його підтримка JSON доступна завдяки простоті маніпуляцій.
Створення конфігурації
Якщо ви встановили Yggdrasil через один із пакетів платформи (тобто macOS, Debian, RPM), тоді файл конфігурації за замовчуванням може вже існувати в /etc/yggdrasil.conf. В іншому випадку ви можете створити файл конфігурації наступними способами:
· Generate HJSON: yggdrasil -genconf > /etc/yggdrasil.conf
· Generate JSON: yggdrasil -genconf -json > /etc/yggdrasil.conf
Підключаємося
Встановили додаток?
Переходимо в публічний каталог peers та вибираємо найближчого до себе з точки зору географії peer (а краще пару).
Тепер пора додати «peers», йдемо в /etc/yggdrasil.conf (в разі iOS на вкладку Peers)
і додаємо
Peers:
[
tcp://a.b.c.d:e
tcp://d.c.b.a:e
tcp://[a:b:c::d]:e
tcp://[d:c:b::a]:e
]
На iOS це можна зробити в інтерфейсі програми.
Якщо в країнах СНД будуть бажаючі зробити публічні peers — пишіть в коментарях — та додавайте їх в github розробників Yggdrasil.
Якщо ви використовуєте домашнє підключення, вам слід уникати будь-яких віддалених вузлів. Для нормального використання вам потрібні лише 2 або 3 peers.
Peers TLS
Починаючи з версії Yggdrasil v0.3.11, стали можливі однорангові підключення через TLS. Це приховує з’єднання однорангових зв’язків усередині звичайного сеансу TLS, що може допомогти в деяких випадках, коли брандмауери або DPI можуть ідентифікувати або заблокувати звичайний трафік однорангового Yggdrasil. Відкриті рівні TLS ідентифікуються префіксом tls:// замість tcp://. Зверніть увагу, що через додатковий рівень шифрування через однорангові рівні TLS швидкість може бути дещо гіршою, ніж через звичайні однорангові tcp://.
Анонімність
Анонімність не була і не є пріоритетом при розробці мережі Yggdrasil. Мережа створювалася не з метою забезпечення анонімності, а для забезпечення можливості взаємодії користувачів. З деякими застереженнями, можна стверджувати, що мережа Yggdrasil не дає ніяких переваг в анонімності перед Інтернетом.
Технічною мовою: трафік між вузлами зашифрований, але IP-адреси вузлів відкриті. Тому ваш пристрій можна відстежити з точністю до найближчої до вас ноди. DPI: міф чи реальність? Питання відкрите.
Користувач, який бажає використовувати мережу анонімно, повинен самостійно вживати заходів щодо забезпечення своєї анонімності.
Але це вже непоганий старт для розвитку, на відміну від Інтернету.
Безпека
Шифрування трафіку
Трафік між вузлами мережі шифрується, тому навіть якщо на сайті в мережі Yggdrasil не встановлено SSL-сертифікат (адреса починається з http://, а не з https://) — можете бути впевнені, що з’єднання захищено від перехоплення.
Біла IP-адреса
Усередині мережі Yggdrasil ваш пристрій отримує унікальну «білу» IP-адресу (IPv6) з діапазону «deprecated» (що не використовуються в Інтернеті в даний момент). Тому рекомендується використовувати фаєрвол, щоб заблокувати небажані вхідні підключення. Небажані вхідні підключення — це поширене явище, актуальне для всіх мереж світу. У більшості випадків такий небажаний трафік блокується фаєрвол на рівні провайдера. Але в мережі Yggdrasil немає «провайдера» або центрального вузла, через який ви взаємодієте з мережею: ваш комп’ютер підключається в буквальному сенсі безпосередньо до мережі. Тому фільтрація трафіку повинна відбуватися на вашому комп’ютері (після належного налаштування, фаєрволи фільтрують трафік автоматично).
Для користувачів Windows
Переконайтеся, що ваш фаєрвол включений, і для мережі Yggdrasil в ньому налаштовано блокування небажаних вхідних підключень.
В системі Windows для цього достатньо в налаштуваннях з’єднання Yggdrasil вказати тип «Публічна мережа».
Крім того, переконайтеся, що служби спільного доступу до файлів і папок (SMB), віддаленого виклику процедур (RPC) або віддаленого робочого столу (RDP) не були допущені до виконання через «Публічну мережу», поки ви цілеспрямовано не захочете зробити свій комп’ютер доступним в мережі Yggdrasil віддалено (наприклад, для віддаленого адміністрування).
Не слід повністю блокувати мережу фаєрволом — інакше вона просто не буде працювати або буде працювати нестабільно.
Кібер-гігієна
У мережі Yggdrasil, так само як і в Інтернеті, слід дотримуватися запобіжних заходів і берегти свої персональні дані. Ні в якому разі не публікуйте в мережі Yggdrasil особисті дані, що мають особливу важливість (паспортні дані, реквізити банківських карт, тощо).
Також слід розуміти, що мережею Yggdrasil користуються різні люди (як і Інтернетом). Будьте уважні до проявів шахрайства і не дозволяйте завдати шкоди собі, своїм персональним даним або близьким людям.
Не слід завантажувати файли і програми, в надійності яких ви сумніваєтеся. Дотримуйтесь універсальних запобіжних засобів при роботі в будь-яких мережах.
Безпека контенту
Мережа Yggdrasil не регулюється міжнародним і національним правом щодо безпечного контенту.
Власники хостів (сайтів) всередині мережі Yggdrasil самостійно визначають політику і правила розміщення контенту на своїх ресурсах.
Попереджаємо, що користувач несе особисту відповідальність за наслідки ознайомлення з контентом, який може виявитися небажаним.
Крім того, ми рекомендуємо користувачам підходити розумно до публікації контенту в мережі, щоб не порушити права інших громадян, що користуються цією мережею.
Висновки
Yggdrasil — це чудовий інструмент для побудови власних мереж. Він досить легкий у використанні, тому у вас не повинно виникнути проблеми під час її інсталяції та налаштування. Це також хороше рішення при ізоляції від звичного нам Інтернету. Досвідчені користувачі можуть перейти туди і обговорити свій план дій при такій ситуації. А на цьому все, мої маленькі любителі анонімності. Читайте, розвивайтесь та залишайтесь анонімними.