💾 Archived View for causa-arcana.com › blog › 2021 › 07 › 07 › tor-yggdrasil.html captured on 2022-07-16 at 13:48:37.

View Raw

More Information

⬅️ Previous capture (2022-04-29)

🚧 View Differences

-=-=-=-=-=-=-

<!DOCTYPE html>
<html class="h-100" lang="ru">
  <head>
    <meta charset="utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
    <meta name="viewport" content="width=device-width,
                                   initial-scale=1,
                                   maximum-scale=1,
                                   shrink-to-fit=no,
                                   user-scalable=no"/>

    <title>Размещение веб-сайтов в Tor и в Yggdrasil | Causa Arcana</title>

    <link rel="canonical" href="https://causa-arcana.com/blog/2021/07/07/tor-yggdrasil.html"/>
    <link rel="alternate"
          type="application/rss+xml"
          title="Causa Arcana"
          href="https://causa-arcana.com/blog/feed.xml"/>

    <meta name="description" content="Администраторы веб-сайтов находятся в условиях растущей цензуры. Она проявляется
по-разному в разных странах. Где-то это блокировки со стороны государства.
Где-то это отказ в обслуживании серверов
со стороны корпораций. Нынче важно
быть готовым да..."/>
    <meta name="twitter:card" content="summary"/>
    <meta name="twitter:site" content="@causa_arcana"/>
    <meta name="twitter:creator" content="@causa_arcana"/>
    <meta name="twitter:title" content="Размещение веб-сайтов в Tor и в Yggdrasil | Causa Arcana"/>
    <meta name="twitter:description" content="Администраторы веб-сайтов находятся в условиях растущей цензуры. Она проявляется
по-разному в разных странах. Где-то это блокировки со стороны государства.
Где-то это отказ в обслуживании серверов
со стороны корпораций. Нынче важно
быть готовым да..."/>
    <meta name="twitter:image" content="https://causa-arcana.com/assets/images/blog/preview/tor-yggdrasil.png"/>
    <meta property="og:type" content="website"/>
    <meta property="og:url" content="https://causa-arcana.com/blog/2021/07/07/tor-yggdrasil.html"/>
    <meta property="og:title" content="Размещение веб-сайтов в Tor и в Yggdrasil | Causa Arcana"/>
    <meta property="og:description" content="Администраторы веб-сайтов находятся в условиях растущей цензуры. Она проявляется
по-разному в разных странах. Где-то это блокировки со стороны государства.
Где-то это отказ в обслуживании серверов
со стороны корпораций. Нынче важно
быть готовым да..."/>
    <meta property="og:image" content="https://causa-arcana.com/assets/images/blog/preview/tor-yggdrasil.png"/>

    <link href="../../../../assets/images/logo-small.jpg" rel="icon" type="image/jpg" />
    <link href="../../../../assets/stylesheets/site.css" rel="stylesheet" />
  </head>

  <body class="d-flex flex-column h-100">
    <header>
      <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
  <div class="container-fluid">
<a href="../../../../index.html" class="navbar-brand">      <img src="../../../../assets/images/logo-small.jpg" width="30" height="30" alt="Логотип" />
      Causa Arcana
</a>
    <div class="navbar-collapse">
      <ul class="navbar-nav me-auto">
        <li class="nav-item">
<a href="../../../feed.html" class="nav-link  active ">            Блог
</a>        </li>

        <li class="nav-item">
<a href="../../../../sources.html" class="nav-link ">            Источники
</a>        </li>

        <li class="nav-item">
<a href="../../../../git.html" class="nav-link ">            Git
</a>        </li>

        <li class="nav-item">
<a href="../../../../team/index.html" class="nav-link ">            Наша команда
</a>        </li>
      </ul>
    </div>
  </div>
</nav>

    </header>

    <main>
        <article class="cl-blog-article container mt-4 mb-5">
    <header>
      <h1>Размещение веб-сайтов в Tor и в Yggdrasil</h1>

      <p>
        <small class="text-muted">
  <time datetime="2021-07-07T13:00:00Z">
     7 Июль, 2021 13:00
  </time>
</small>

&bull;

<small class="text-muted">
  Александр Котов
</small>

  &bull;

    <a href="https://medium.com/causa-arcana/tor-yggdrasil-a0f7ad15bc04"><i class="fab fa-medium"></i> Medium</a>

<br/>

  <span class="badge bg-secondary me-2">
    tor
  </span>
  <span class="badge bg-secondary me-2">
    yggdrasil
  </span>
  <span class="badge bg-secondary me-2">
    децентрализация
  </span>
  <span class="badge bg-secondary me-2">
    цензура
  </span>

      </p>
    </header>

    <div class="blog-article--main mt-5 text-break">
      <p>Администраторы веб-сайтов находятся в условиях растущей цензуры. Она проявляется
по-разному в разных странах. Где-то это блокировки со стороны государства.
Где-то это отказ в обслуживании серверов
<a href="../../01/13/corporate-censorship.html">со стороны корпораций</a>. Нынче важно
быть готовым дать отпор цензуре. Для этого можно использовать сети Tor и
Yggdrasil. В первом случае они помогут обойти государственные механизмы
блокировок. Во втором случае они позволят скрыть факт размещения сервера у
конкретного поставщика услуг.</p>

<div class="d-flex justify-content-center">
 <figure class="nice-figure">
  <img src="../../../../assets/images/blog/tor-yggdrasil.png"
       alt="Логотипы Tor и Yggdrasil."/>
  <figcaption>
    Логотипы Tor и Yggdrasil.
  </figcaption>
 </figure>
</div>

<p>Для следования инструкциям в данной статье вам понадобится веб-сервер с
операционной системой Ubuntu 21.04 или подобной. Статический внешний IP-адрес не
обязателен. Главное иметь доступ к терминалу, например по SSH. Можно
использовать ваш домашний компьютер. Можно купить виртуальный сервер, например
на <a href="https://m.do.co/c/329082d7d543">DigitalOcean</a> (партнёрская ссылка).</p>

<p>Также необходимо владеть навыками работы в консольном текстовом редакторе. Можно
использовать Vim или Emacs, но они требуют изучения. Самым простым вариантом для
новичков будет Nano. Устанавливается командой <code>sudo apt install nano</code>.
Вызывается командой <code>sudo nano</code>, которой можно дополнительно передать имя файла:
<code>sudo nano /foo/bar</code>. Далее можно разобраться по подсказкам в нижней части
экрана. Они означают сочетания клавиши <strong>Ctrl</strong> с другими клавишами. Только если
вы используете ваш домашний компьютер, то можно редактировать файлы в обычном
текстовом редакторе с графическим интерфейсом.</p>

<p>Учтите, что в данной статье мы создаём лишь рабочий прототип. Для реального
использования требуется ещё настройка сетевого экрана и сетевой безопасности
операционной системы.</p>

<h2>Создаём веб-сайт</h2>

<p>Наш веб-сайт будет простой веб-страницей, отдаваемой с помощью сервера Nginx.
Для начала установим Nginx:</p>

<pre><code>$ sudo apt install nginx
</code></pre>

<p>Выключим стандартную конфигурацию:</p>

<pre><code>$ sudo rm /etc/nginx/sites-enabled/default
</code></pre>

<p>С помощью текстового редактора создадим новую конфигурацию в файле
<code>/etc/nginx/sites-available/tor_yggdrasil</code>:</p>

<pre><code>server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/html;

  index index.html;

  server_name _;

  location / {
    try_files $uri $uri/ =404;
  }
}
</code></pre>

<p>Далее необходимо включить эту конфигурацию, создав символическую ссылку на неё
из другой директории:</p>

<pre><code>$ sudo ln -s /etc/nginx/sites-available/tor_yggdrasil /etc/nginx/sites-enabled/tor_yggdrasil
</code></pre>

<p>Теперь перезапустим веб-сервер:</p>

<pre><code>$ sudo systemctl restart nginx.service
</code></pre>

<p>Уже сейчас при обращении к вашему веб-серверу по IP-адресу (если такая
возможность есть) вы должны увидеть ошибку 403 и название сервера Nginx. Теперь
создадим файл <code>/var/www/html/index.html</code> со следующим содержанием:</p>

<pre><code>&lt;!DOCTYPE html&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;utf-8&quot;/&gt;
    &lt;title&gt;Tor &amp; Yggdrasil&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;h1&gt;Tor &amp; Yggdrasil&lt;/h1&gt;
    &lt;p&gt;Hello from Tor or Yggdrasil!&lt;/p&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>

<p>Теперь при обращении к вашему веб-серверу по IP-адресу вы увидите веб-страницу:</p>

<div class="d-flex justify-content-center">
 <figure class="nice-figure">
  <img src="../../../../assets/images/blog/tor-yggdrasil-web-page.png"
       alt="Наша тестовая веб-страница."/>
  <figcaption>
    Наша тестовая веб-страница.
  </figcaption>
 </figure>
</div>

<p>Если вы работаете на домашнем компьютере, то адресом будет <code>127.0.0.1</code>. Если по
какой-то причине у вашего веб-сервера вообще нет IP-адреса, то вы сможете
увидеть созданную вами веб-страницу позже, когда подключите Tor или Yggdrasil.</p>

<h2>Подключаем Tor</h2>

<p><a href="https://www.torproject.org">Tor</a> (от англ. <em>The Onion Router</em>) &ndash; это
оверлейная сеть (то есть построенная поверх другой сети) с так называемой
луковичной маршрутизацией. TCP-пакеты в ней проходят через несколько узлов.
Каждый узел снимает с пакета предназначенный для него слой шифрования, чтобы
получить информацию о том, куда направить пакет дальше. Отсюда аналогия с луком.
Такой механизм обеспечивает приватность и анонимность &ndash; промежуточный узел не
знает, что находится внутри пакета, каков его первоначальный источник и конечное
место назначения.</p>

<p>Изначально Tor предназначался для доступа к обычным веб-сайтам если они по
какой-то причине недоступны обычным способом, например из-за государственной
блокировки, или если пользователь желает сохранить анонимность. Для этого в сети
существуют так называемые выходные узлы. На них в таком случае ложится вся
юридическая ответственность за действия пользователей сети, поэтому такие узлы
не стоит запускать в странах, где нет возможности доказать в суде свою
невиновность.</p>

<p>Однако также в Tor существуют внутренние скрытые сервисы. Установить
местонахождение такого сервиса невозможно. Именно такой сервис мы и запустим.
К нему невозможно получить доступ обычным способом. Для этого нужно установить
<a href="https://www.torproject.org/download/">Tor Browser</a>. Скрытый сервис имеет
специальный адрес. Например, зеркало нашего веб-сайта доступно по адресу
<a href="http://a4xu7f2nwqxrraaj3qfiao5cgfyrkpuxainvrjszvnzf3y7gzslcu7qd.onion">http://a4xu7f2nwqxrraaj3qfiao5cgfyrkpuxainvrjszvnzf3y7gzslcu7qd.onion</a>.</p>

<p>Для начала установим программное обеспечение Tor:</p>

<pre><code>$ sudo apt install tor
</code></pre>

<p>Отредактируйте файл настроек <code>/etc/tor/torrc</code>. Всё имеющееся содержимое можно
удалить и заменить следующим:</p>

<pre><code>SocksPort 0
HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:80
ExitPolicy reject *:*
</code></pre>

<p>Перезапустите Tor:</p>

<pre><code>$ sudo systemctl restart tor.service
</code></pre>

<p>Теперь нужно узнать доменное имя нашего сервиса:</p>

<pre><code>$ sudo cat /var/lib/tor/hidden_service/hostname
</code></pre>

<p>Вы должны увидеть строку, оканчивающуюся на <code>.onion</code>. Если открыть этот адрес в
Tor Browser, то вы увидите вашу веб-страницу. Это всё, что нужно для настройки
скрытого сервиса в Tor.</p>

<h2>Подключаем Yggdrasil</h2>

<p><a href="https://yggdrasil-network.github.io">Yggdrasil</a> &ndash; это тоже оверлейная сеть. В
то время как Tor лишь устанавливает туннель от одного узла к другому, Yggdrasil
обеспечивает целую частную сеть (VPN; от англ. <em>Virtual Private Network</em>) на
основе протокола IPv6. Пакеты в сети всегда зашифрованы, а публичным ключом
является сам адрес IPv6, что возможно за счёт его большой длины (128 бит).
Помимо использования в качестве VPN, Yggdrasil разрабатывается для создания
сетей с ячеистой топологией поверх самых разных каналов связи (не обязательно
через Интернет), что может быть полезно для создания альтернативных поставщиков
услуг связи, неподконтрольных правительствам.</p>

<p>Хотя сеть Yggdrasil может быть частной, также существует публичная сеть, узлы
кото��ой перечислены в
<a href="https://github.com/yggdrasil-network/public-peers">специальном репозитории</a>.
Именно в этой сети мы и разместим наш веб-сайт. Для доступа к сервисам в этой
сети нужно настроить Yggdrasil на вашем домашнем компьютере тем же способом,
что описан далее для веб-сервера. Если вы итак используете в этом качестве
домашний компьютер, то дополнительные действия не потребуются. Если вы боитесь
устанавливать Yggdrasil на домашний компьютер (программное обеспечение ещё
не прошло аудит безопасности), то можно также установить его на смартфон с
операционной системой Android, сборки под которую публикуются в
<a href="https://t.me/yggdrasil_android">Telegram</a>. Android обеспечивает более сильную
изоляцию приложений. Узел в Yggdrasil имеет специальный адрес IPv6. Например,
зеркало нашего веб-сайта доступно по адресу
<a href="http://[200:f0a1:c2ef:37a2:467f:9f74:ae64:9954]">http://[200:f0a1:c2ef:37a2:467f:9f74:ae64:9954]</a>.</p>

<p>Для начала установим программное обеспечение Yggdrasil:</p>

<pre><code>$ gpg --fetch-keys https://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/key.txt
$ gpg --export 569130E8CA20FBC4CB3FDE555898470A764B32C9 | sudo apt-key add -
$ echo &#39;deb http://neilalexander.s3.dualstack.eu-west-2.amazonaws.com/deb/ debian yggdrasil&#39; | sudo tee /etc/apt/sources.list.d/yggdrasil.list
$ sudo apt update
$ sudo apt install yggdrasil
$ sudo systemctl start yggdrasil.service
$ sudo systemctl enable yggdrasil.service
</code></pre>

<p>Отредактируйте файл настроек <code>/etc/yggdrasil.conf</code>. Строку <code>Peers: []</code> замените
следующими строками (или можете выбрать любые другие узлы из
<a href="https://github.com/yggdrasil-network/public-peers">репозитория</a>):</p>

<pre><code>  Peers: [
    &quot;tcp://188.226.125.64:54321&quot;
    &quot;tcp://46.151.26.194:60575&quot;
    &quot;tcp://ygg.tomasgl.ru:61933&quot;
    &quot;tcp://yggnode.cf:18226&quot;
    &quot;tcp://95.165.99.73:5353&quot;
    &quot;tcp://ygg.loskiq.dev:17313&quot;
  ]
</code></pre>

<p>Перезапустите Yggdrasil:</p>

<pre><code>$ sudo systemctl restart yggdrasil.service
</code></pre>

<p>Теперь нужно узнать IPv6-адрес нашего узла:</p>

<pre><code>$ sudo journalctl -xe --unit yggdrasil.service
</code></pre>

<p>Среди выведенных строк будет строка вроде этой:</p>

<pre><code>Jul 07 12:41:23 tor-yggdrasil yggdrasil[3969]: 2021/07/07 12:41:23 Your IPv6 address is 200:f0a1:c2ef:37a2:467f:9f74:ae64:9954
</code></pre>

<p>Здесь <code>200:f0a1:c2ef:37a2:467f:9f74:ae64:9954</code> &ndash; это ваш адрес. Нужно добавить
к нему слева <code>http://[</code>, а справа <code>]</code>. Получится
<code>http://[200:f0a1:c2ef:37a2:467f:9f74:ae64:9954]</code>. Если открыть этот адрес в
веб-браузере при включенном Yggdrasil, то вы увидите вашу веб-страницу (по
какой-то причине Mozilla Firefox на Android не умеет открывать такие адреса при
вставке в адресную строку). Это всё, что нужно для настройки веб-сайта в
Yggdrasil.</p>

    </div>
  </article>

    </main>

    <footer class="mt-auto py-4 bg-dark text-light">
      <div class="container">
  <div class="d-sm-none">
    <div class="row row-cols-1">
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li>
              <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li>
              <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li>
              <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li>
              <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li>
              <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li>
              <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li>
              <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li>
          </ul>
        </div>
    </div>
  </div>

  <div class="d-none d-sm-block d-md-none">
    <div class="row row-cols-2">
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li>
              <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li>
              <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li>
              <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li>
          </ul>
        </div>
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li>
              <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li>
              <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li>
              <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li>
          </ul>
        </div>
    </div>
  </div>

  <div class="d-none d-md-block d-lg-none">
    <div class="row row-cols-3">
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li>
              <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li>
              <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li>
          </ul>
        </div>
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li>
              <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li>
              <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li>
          </ul>
        </div>
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li>
              <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li>
          </ul>
        </div>
    </div>
  </div>

  <div class="d-none d-lg-block">
    <div class="row row-cols-4">
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://t.me/causa_arcana" class="link-light"><i class="fab fa-telegram"></i> Канал в Telegram</a></li>
              <li><a href="https://t.me/causa_arcana_chat" class="link-light"><i class="fab fa-telegram"></i> Чат в Telegram</a></li>
          </ul>
        </div>
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://www.youtube.com/c/CausaArcana" class="link-light"><i class="fab fa-youtube"></i> YouTube</a></li>
              <li><a href="https://medium.com/causa-arcana" class="link-light"><i class="fab fa-medium"></i> Medium</a></li>
          </ul>
        </div>
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://qoto.org/@causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> Mastodon</a></li>
              <li><a href="https://diode.zone/video-channels/causa_arcana" class="link-light"><i class="fab fa-mastodon"></i> PeerTube</a></li>
          </ul>
        </div>
        <div class="col">
          <ul class="list-unstyled mb-0">
              <li><a href="https://matrix.to/#/#causa-arcana:matrix.org" class="link-light"><i class="far fa-comments"></i> Matrix</a></li>
              <li><a href="https://twitter.com/causa_arcana" class="link-light"><i class="fab fa-twitter"></i> Twitter</a></li>
          </ul>
        </div>
    </div>
  </div>

  <hr/>

  <div class="row">
    <div class="col-12 col-lg-9">
      <p class="mb-0">
        <i class="fas fa-rss-square"></i>
        RSS:
        <a href="https://causa-arcana.com/blog/feed.xml" class="text-reset">https://causa-arcana.com/blog/feed.xml</a>
      </p>

      <p class="mb-0">
        <i class="fab fa-creative-commons-by"></i>
        Содержимое доступно на условиях лицензии <a rel="license" href="https://creativecommons.org/licenses/by/4.0/" class="text-reset">Creative Commons Attribution</a>.
      </p>

      <p class="mb-0">
        <i class="far fa-envelope"></i>
        Связь с администрацией:
        <a href="mailto:admin@causa-arcana.com" class="text-reset">
          admin@causa-arcana.com
        </a>
      </p>
    </div>

    <div class="col-12 col-lg-3">
      <hr class="d-block d-lg-none"/>

      <img src="../../../../assets/images/badge-ipv6.svg" height="24" class="me-2" alt="IPv6" />

<a href="https://no-js.club" target="_blank" class="me-2">        <img src="../../../../assets/images/badge-no-js-club.svg" height="24" alt="no-JS Club" />
</a>
<a href="https://1mb.club" target="_blank" class="me-2 link-light">        <span>[1MB&nbsp;Club]</span>
</a>    </div>
  </div>
</div>

    </footer>
  </body>
</html>