<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>WireGuard on Лаборатория Баз знаний</title><link>https://rabrain.ru/special/handbook/wireguard/</link><description>Recent content in WireGuard on Лаборатория Баз знаний</description><generator>Hugo</generator><language>ru</language><atom:link href="https://rabrain.ru/special/handbook/wireguard/index.xml" rel="self" type="application/rss+xml"/><item><title>Обзор WireGuard</title><link>https://rabrain.ru/special/handbook/wireguard/owerview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/owerview/</guid><description>&lt;h2 id="концептуальный-обзор"&gt;Концептуальный обзор&lt;a class="td-heading-self-link" href="#%d0%ba%d0%be%d0%bd%d1%86%d0%b5%d0%bf%d1%82%d1%83%d0%b0%d0%bb%d1%8c%d0%bd%d1%8b%d0%b9-%d0%be%d0%b1%d0%b7%d0%be%d1%80" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Если вы хотите получить общее концептуальное представление о том, что такое WireGuard, читайте дальше. Затем вы можете перейти к &lt;a href="https://rabrain.ru/install/"&gt;установке&lt;/a&gt; и прочитать &lt;a href="https://rabrain.ru/quickstart/"&gt;инструкции по быстрому запуску&lt;/a&gt; о том, как его использовать.&lt;/p&gt;
&lt;p&gt;Если вы заинтересованы во внутреннем устройстве, вас может заинтересовать краткое описание &lt;a href="https://rabrain.ru/protocol/"&gt;протокола&lt;/a&gt; или вы можете углубиться, прочитав &lt;a href="https://rabrain.ru/papers/wireguard.pdf"&gt;технический документ&lt;/a&gt;, который более подробно описывает протокол, криптографию и основы. Если вы намерены реализовать WireGuard для новой платформы, пожалуйста, прочитайте &lt;a href="https://rabrain.ru/xplatform/"&gt;заметки о кросс-платформенной разработке&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Установка WireGuard</title><link>https://rabrain.ru/special/handbook/wireguard/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/install/</guid><description>&lt;h2 id="обзор"&gt;Обзор&lt;a class="td-heading-self-link" href="#%d0%be%d0%b1%d0%b7%d0%be%d1%80" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;WireGuard доступен для широкого спектра операционных систем и платформ. Ниже приведены инструкции по установке для наиболее популярных систем. Если ваша система не указана в списке, вы также можете легко &lt;a href="https://rabrain.ru/compilation/"&gt;скомпилировать WireGuard из исходного кода&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="краткая-таблица-установки"&gt;Краткая таблица установки&lt;a class="td-heading-self-link" href="#%d0%ba%d1%80%d0%b0%d1%82%d0%ba%d0%b0%d1%8f-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b0-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b8" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Операционная система&lt;/th&gt;
					&lt;th&gt;Команда установки&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Windows 10/11/2016/2019/2022/2025&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://www.wireguard.com/install/"&gt;Скачать MSI-установщик&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;macOS (App Store)&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://apps.apple.com/us/app/wireguard/id1451685025"&gt;Установить из App Store&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Ubuntu&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sudo apt install wireguard&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Debian&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;# apt install wireguard&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Fedora&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sudo dnf install wireguard-tools&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Arch Linux&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sudo pacman -S wireguard-tools&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Android&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.wireguard.android"&gt;Google Play&lt;/a&gt; или &lt;a href="https://www.wireguard.com/install/"&gt;APK-файл&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;iOS&lt;/td&gt;
					&lt;td&gt;&lt;a href="https://apps.apple.com/us/app/wireguard/id1451685025"&gt;Установить из App Store&lt;/a&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenSUSE/SLE&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;sudo zypper install wireguard-tools&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Alpine&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;# apk add -U wireguard-tools&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Gentoo&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;# emerge wireguard-tools&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;FreeBSD&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;# pkg install wireguard&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenBSD&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;# pkg_add wireguard-tools&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="подробные-инструкции"&gt;Подробные инструкции&lt;a class="td-heading-self-link" href="#%d0%bf%d0%be%d0%b4%d1%80%d0%be%d0%b1%d0%bd%d1%8b%d0%b5-%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%ba%d1%86%d0%b8%d0%b8" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="установка-на-сервере-ubuntu"&gt;Установка на сервере Ubuntu&lt;a class="td-heading-self-link" href="#%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%bd%d0%b0-%d1%81%d0%b5%d1%80%d0%b2%d0%b5%d1%80%d0%b5-ubuntu" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;WireGuard включён в репозитории Ubuntu, начиная с версии 20.04 (Focal Fossa). Для более ранних версий рекомендуется использовать PPA.&lt;/p&gt;</description></item><item><title>Быстрый старт</title><link>https://rabrain.ru/special/handbook/wireguard/quickstart/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/quickstart/</guid><description>&lt;h2 id="быстрый-старт"&gt;Быстрый старт&lt;a class="td-heading-self-link" href="#%d0%b1%d1%8b%d1%81%d1%82%d1%80%d1%8b%d0%b9-%d1%81%d1%82%d0%b0%d1%80%d1%82" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде всего, убедитесь, что вы хорошо понимаете &lt;a href="overview.md"&gt;концептуальный обзор&lt;/a&gt;, а затем &lt;a href="https://rabrain.ru/special/handbook/wireguard/install/"&gt;установите WireGuard&lt;/a&gt;. После этого читайте дальше.&lt;/p&gt;
&lt;h2 id="видео-параллельной-настройки"&gt;Видео параллельной настройки&lt;a class="td-heading-self-link" href="#%d0%b2%d0%b8%d0%b4%d0%b5%d0%be-%d0%bf%d0%b0%d1%80%d0%b0%d0%bb%d0%bb%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d0%b9-%d0%bd%d0%b0%d1%81%d1%82%d1%80%d0%be%d0%b9%d0%ba%d0%b8" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Прежде чем подробно объяснять команды, будет чрезвычайно полезно посмотреть видео, где два пира настраиваются одновременно:&lt;/p&gt;
&lt;video controls width="100%"&gt;
 &lt;source src="talk-demo-screencast.mp4" type="video/mp4"&gt;
 Ваш браузер не поддерживает воспроизведение видео.
&lt;/video&gt;
&lt;p&gt;Или по отдельности, настройка одного узла выглядит так:&lt;/p&gt;
&lt;p&gt;&lt;img src="https://rabrain.ru/special/handbook/wireguard/quickstart/walkthrough.gif" alt="Пример настройки wg(8)"&gt;&lt;/p&gt;
&lt;h2 id="интерфейс-командной-строки"&gt;Интерфейс командной строки&lt;a class="td-heading-self-link" href="#%d0%b8%d0%bd%d1%82%d0%b5%d1%80%d1%84%d0%b5%d0%b9%d1%81-%d0%ba%d0%be%d0%bc%d0%b0%d0%bd%d0%b4%d0%bd%d0%be%d0%b9-%d1%81%d1%82%d1%80%d0%be%d0%ba%d0%b8" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Новый интерфейс можно добавить с помощью &lt;code&gt;ip-link(8)&lt;/code&gt;, который должен автоматически загрузить модуль:&lt;/p&gt;</description></item><item><title>wg-quick — руководство</title><link>https://rabrain.ru/special/handbook/wireguard/man/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/man/</guid><description>&lt;h2 id="имя"&gt;ИМЯ&lt;a class="td-heading-self-link" href="#%d0%b8%d0%bc%d1%8f" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;wg-quick&lt;/strong&gt; — простая настройка интерфейса WireGuard&lt;/p&gt;
&lt;h2 id="синтаксис"&gt;СИНТАКСИС&lt;a class="td-heading-self-link" href="#%d1%81%d0%b8%d0%bd%d1%82%d0%b0%d0%ba%d1%81%d0%b8%d1%81" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wg-quick &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt; up &lt;span style="color:#000;font-weight:bold"&gt;|&lt;/span&gt; down &lt;span style="color:#000;font-weight:bold"&gt;|&lt;/span&gt; save &lt;span style="color:#000;font-weight:bold"&gt;|&lt;/span&gt; strip &lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt; &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt; CONFIG_FILE &lt;span style="color:#000;font-weight:bold"&gt;|&lt;/span&gt; INTERFACE &lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="описание"&gt;ОПИСАНИЕ&lt;a class="td-heading-self-link" href="#%d0%be%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Это чрезвычайно простой скрипт для быстрого поднятия интерфейса WireGuard, подходящий для нескольких распространённых сценариев использования.&lt;/p&gt;
&lt;p&gt;Используйте &lt;code&gt;up&lt;/code&gt; для добавления и настройки интерфейса, и &lt;code&gt;down&lt;/code&gt; для его отключения и удаления. Команда &lt;code&gt;up&lt;/code&gt; добавляет интерфейс WireGuard, поднимает его с указанными IP-адресами, настраивает MTU и маршруты, и при необходимости выполняет предварительные/последующие скрипты. Команда &lt;code&gt;down&lt;/code&gt; при необходимости сохраняет текущую конфигурацию, удаляет интерфейс WireGuard и при необходимости выполняет предварительные/последующие скрипты. Команда &lt;code&gt;save&lt;/code&gt; сохраняет конфигурацию существующего интерфейса без его отключения. Используйте &lt;code&gt;strip&lt;/code&gt; для вывода конфигурационного файла без специфичных для wg-quick опций, подходящего для использования с &lt;code&gt;wg(8)&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>wg — руководство</title><link>https://rabrain.ru/special/handbook/wireguard/wg/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/wg/</guid><description>&lt;h2 id="имя"&gt;ИМЯ&lt;a class="td-heading-self-link" href="#%d0%b8%d0%bc%d1%8f" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;wg&lt;/strong&gt; — установка и получение конфигурации интерфейсов WireGuard&lt;/p&gt;
&lt;h2 id="синтаксис"&gt;СИНТАКСИС&lt;a class="td-heading-self-link" href="#%d1%81%d0%b8%d0%bd%d1%82%d0%b0%d0%ba%d1%81%d0%b8%d1%81" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wg &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt; КОМАНДА &lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt; &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt; ОПЦИИ &lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;... &lt;span style="color:#ce5c00;font-weight:bold"&gt;[&lt;/span&gt; АРГУМЕНТЫ &lt;span style="color:#ce5c00;font-weight:bold"&gt;]&lt;/span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="описание"&gt;ОПИСАНИЕ&lt;a class="td-heading-self-link" href="#%d0%be%d0%bf%d0%b8%d1%81%d0%b0%d0%bd%d0%b8%d0%b5" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;wg&lt;/strong&gt; — это утилита конфигурации для получения и установки параметров туннельных интерфейсов WireGuard. Сами интерфейсы могут быть добавлены и удалены с помощью &lt;code&gt;ip-link(8)&lt;/code&gt;, а их IP-адреса и таблицы маршрутизации могут быть настроены с помощью &lt;code&gt;ip-address(8)&lt;/code&gt; и &lt;code&gt;ip-route(8)&lt;/code&gt;. Утилита &lt;code&gt;wg&lt;/code&gt; предоставляет серию подкоманд для изменения специфичных для WireGuard аспектов интерфейсов.&lt;/p&gt;</description></item><item><title>Компиляция из исходного кода</title><link>https://rabrain.ru/special/handbook/wireguard/source/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/source/</guid><description>&lt;h2 id="компиляция-модуля-ядра-из-исходного-кода"&gt;Компиляция модуля ядра из исходного кода&lt;a class="td-heading-self-link" href="#%d0%ba%d0%be%d0%bc%d0%bf%d0%b8%d0%bb%d1%8f%d1%86%d0%b8%d1%8f-%d0%bc%d0%be%d0%b4%d1%83%d0%bb%d1%8f-%d1%8f%d0%b4%d1%80%d0%b0-%d0%b8%d0%b7-%d0%b8%d1%81%d1%85%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%b4%d0%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В этом руководстве вы узнаете, как скомпилировать WireGuard из исходного кода для Ubuntu и Fedora. Это может быть полезно, если вы используете нестандартное ядро, хотите получить самую свежую версию или если ваш дистрибутив не предоставляет готовые пакеты.&lt;/p&gt;


&lt;div class="alert alert-primary" role="alert"&gt;


 &lt;strong&gt;Требования:&lt;/strong&gt; Вам понадобится gcc ≥ 4.7 и заголовочные файлы вашего ядра, расположенные в правильном месте, для успешной компиляции.

&lt;/div&gt;

&lt;h2 id="шаг-1-установка-инструментов-сборки"&gt;Шаг 1: Установка инструментов сборки&lt;a class="td-heading-self-link" href="#%d1%88%d0%b0%d0%b3-1-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b0-%d0%b8%d0%bd%d1%81%d1%82%d1%80%d1%83%d0%bc%d0%b5%d0%bd%d1%82%d0%be%d0%b2-%d1%81%d0%b1%d0%be%d1%80%d0%ba%d0%b8" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;h3 id="ubuntu-и-debian"&gt;Ubuntu и Debian&lt;a class="td-heading-self-link" href="#ubuntu-%d0%b8-debian" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get install libelf-dev linux-headers-&lt;span style="color:#204a87;font-weight:bold"&gt;$(&lt;/span&gt;uname -r&lt;span style="color:#204a87;font-weight:bold"&gt;)&lt;/span&gt; build-essential pkg-config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="fedora"&gt;Fedora&lt;a class="td-heading-self-link" href="#fedora" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo dnf install elfutils-libelf-devel kernel-devel pkg-config @development-tools
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="red-hat-enterprise-linux--centos"&gt;Red Hat Enterprise Linux / CentOS&lt;a class="td-heading-self-link" href="#red-hat-enterprise-linux--centos" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo yum install elfutils-libelf-devel kernel-devel pkgconfig &lt;span style="color:#4e9a06"&gt;&amp;#34;@Development Tools&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="arch-linux"&gt;Arch Linux&lt;a class="td-heading-self-link" href="#arch-linux" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo pacman -S linux-headers base-devel pkg-config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="opensuse"&gt;OpenSUSE&lt;a class="td-heading-self-link" href="#opensuse" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo zypper install kernel-default-devel pkg-config
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="alpine"&gt;Alpine&lt;a class="td-heading-self-link" href="#alpine" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;apk add build-base linux-hardened-dev &lt;span style="color:#8f5902;font-style:italic"&gt;# или linux-vanilla-dev для ядра vanilla&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="шаг-2-получение-исходного-кода"&gt;Шаг 2: Получение исходного кода&lt;a class="td-heading-self-link" href="#%d1%88%d0%b0%d0%b3-2-%d0%bf%d0%be%d0%bb%d1%83%d1%87%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b8%d1%81%d1%85%d0%be%d0%b4%d0%bd%d0%be%d0%b3%d0%be-%d0%ba%d0%be%d0%b4%d0%b0" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Клонируйте репозитории WireGuard:&lt;/p&gt;</description></item><item><title>Протокол и криптография</title><link>https://rabrain.ru/special/handbook/wireguard/protocol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/protocol/</guid><description>&lt;div class="alert alert-primary" role="alert"&gt;


 &lt;strong&gt;Более подробная информация доступна в &lt;a href="https://rabrain.ru/papers/wireguard.pdf"&gt;техническом документе&lt;/a&gt;. Для краткого ознакомления читайте далее.&lt;/strong&gt;

&lt;/div&gt;

&lt;h2 id="криптографические-примитивы"&gt;Криптографические примитивы&lt;a class="td-heading-self-link" href="#%d0%ba%d1%80%d0%b8%d0%bf%d1%82%d0%be%d0%b3%d1%80%d0%b0%d1%84%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8%d0%b5-%d0%bf%d1%80%d0%b8%d0%bc%d0%b8%d1%82%d0%b8%d0%b2%d1%8b" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;В WireGuard используются следующие протоколы и примитивы:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ChaCha20&lt;/strong&gt; для симметричного шифрования, аутентифицированного с помощью &lt;strong&gt;Poly1305&lt;/strong&gt;, с использованием &lt;strong&gt;AEAD-конструкции из RFC7539&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Curve25519&lt;/strong&gt; для ECDH (обмена ключами по эллиптическим кривым)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BLAKE2s&lt;/strong&gt; для хеширования и ключевого хеширования, описанный в &lt;strong&gt;RFC7693&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SipHash24&lt;/strong&gt; для ключей хеш-таблиц&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HKDF&lt;/strong&gt; для производной ключей, как описано в &lt;strong&gt;RFC5869&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Эти примитивы выбраны за их высокую производительность и криптографическую стойкость. Например, ChaCha20-Poly1305 обеспечивает скорость шифрования, сравнимую с AES, но без аппаратного ускорения, что делает его идеальным для встраиваемых устройств. Curve25519 считается одним из самых безопасных и быстрых алгоритмов для обмена ключами.&lt;/p&gt;</description></item><item><title>Формальная верификация</title><link>https://rabrain.ru/special/handbook/wireguard/forma-verification/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/forma-verification/</guid><description>&lt;h2 id="формальная-верификация"&gt;Формальная верификация&lt;a class="td-heading-self-link" href="#%d1%84%d0%be%d1%80%d0%bc%d0%b0%d0%bb%d1%8c%d0%bd%d0%b0%d1%8f-%d0%b2%d0%b5%d1%80%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;WireGuard прошёл все виды формальной верификации, охватывающие аспекты криптографии, протокола и реализации. Ниже приведены подробности различных усилий по верификации.&lt;/p&gt;


&lt;div class="alert alert-primary" role="alert"&gt;


 &lt;strong&gt;Что такое формальная верификация?&lt;/strong&gt; Это процесс математического доказательства того, что система соответствует своей спецификации и свободна от определённых классов ошибок. В контексте криптографических протоколов это означает доказательство того, что протокол безопасен против различных моделей атакующего.

&lt;/div&gt;

&lt;h3 id="символическая-верификация-протокола-с-использованием-tamarin"&gt;Символическая верификация протокола с использованием Tamarin&lt;a class="td-heading-self-link" href="#%d1%81%d0%b8%d0%bc%d0%b2%d0%be%d0%bb%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b0%d1%8f-%d0%b2%d0%b5%d1%80%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d1%80%d0%be%d1%82%d0%be%d0%ba%d0%be%d0%bb%d0%b0-%d1%81-%d0%b8%d1%81%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5%d0%bc-tamarin" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Протокол WireGuard, описанный в &lt;a href="https://rabrain.ru/papers/wireguard.pdf"&gt;техническом документе&lt;/a&gt; и основанный на &lt;a href="https://noiseprotocol.org/noise.pdf"&gt;Noise&lt;/a&gt;, был формально верифицирован в символической модели с использованием &lt;a href="https://tamarin-prover.github.io/"&gt;Tamarin&lt;/a&gt;. Это означает, что существует математическое доказательство безопасности протокола WireGuard.&lt;/p&gt;</description></item><item><title>Кроссплатформенная реализация</title><link>https://rabrain.ru/special/handbook/wireguard/xplatform/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/xplatform/</guid><description>&lt;h2 id="кроссплатформенная-пользовательская-реализация"&gt;Кроссплатформенная пользовательская реализация&lt;a class="td-heading-self-link" href="#%d0%ba%d1%80%d0%be%d1%81%d1%81%d0%bf%d0%bb%d0%b0%d1%82%d1%84%d0%be%d1%80%d0%bc%d0%b5%d0%bd%d0%bd%d0%b0%d1%8f-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%b0%d1%8f-%d1%80%d0%b5%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Хотя WireGuard изначально был разработан для ядра Linux для максимальной производительности, он может работать в пользовательском пространстве с использованием отдельной реализации. В настоящее время &lt;code&gt;wireguard-go&lt;/code&gt; вполне функционален, а &lt;code&gt;wireguard-rs&lt;/code&gt; находится в разработке.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Что такое пользовательская реализация?&lt;/strong&gt; В отличие от реализации в ядре, которая работает на уровне операционной системы, пользовательская реализация работает как обычное приложение. Это позволяет запускать WireGuard на платформах, где нет доступа к ядру, или когда требуется более простая интеграция с приложениями.&lt;/p&gt;</description></item><item><title>Маршрутизация и сетевые пространства имён</title><link>https://rabrain.ru/special/handbook/wireguard/routing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/routing/</guid><description>&lt;h2 id="интеграция-с-маршрутизацией-и-сетевыми-пространствами-имён"&gt;Интеграция с маршрутизацией и сетевыми пространствами имён&lt;a class="td-heading-self-link" href="#%d0%b8%d0%bd%d1%82%d0%b5%d0%b3%d1%80%d0%b0%d1%86%d0%b8%d1%8f-%d1%81-%d0%bc%d0%b0%d1%80%d1%88%d1%80%d1%83%d1%82%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d0%b5%d0%b9-%d0%b8-%d1%81%d0%b5%d1%82%d0%b5%d0%b2%d1%8b%d0%bc%d0%b8-%d0%bf%d1%80%d0%be%d1%81%d1%82%d1%80%d0%b0%d0%bd%d1%81%d1%82%d0%b2%d0%b0%d0%bc%d0%b8-%d0%b8%d0%bc%d1%91%d0%bd" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Как и все сетевые интерфейсы Linux, WireGuard интегрируется в инфраструктуру сетевых пространств имён (network namespaces). Это означает, что администратор может иметь несколько полностью разных сетевых подсистем и выбирать, какие интерфейсы находятся в каждом из них.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Что такое сетевые пространства имён?&lt;/strong&gt; Это механизм ядра Linux, который позволяет изолировать сетевые стеки. Каждое пространство имён имеет свои собственные сетевые интерфейсы, таблицы маршрутизации, правила файервола и сокеты. Это основа для контейнеризации (Docker, LXC и другие).&lt;/p&gt;</description></item><item><title>Встраивание в приложения</title><link>https://rabrain.ru/special/handbook/wireguard/embending/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://rabrain.ru/special/handbook/wireguard/embending/</guid><description>&lt;h2 id="встраивание-wireguard-в-пользовательские-приложения"&gt;Встраивание WireGuard в пользовательские приложения&lt;a class="td-heading-self-link" href="#%d0%b2%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d0%bd%d0%b8%d0%b5-wireguard-%d0%b2-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8c%d1%81%d0%ba%d0%b8%d0%b5-%d0%bf%d1%80%d0%b8%d0%bb%d0%be%d0%b6%d0%b5%d0%bd%d0%b8%d1%8f" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Клиентские приложения проекта WireGuard были спроектированы с максимальной возможностью повторного использования, что позволяет создавать пользовательские приложения, использующие WireGuard. Ситуация несколько отличается на разных платформах, и эта страница пытается обобщить то, что доступно в проекте.&lt;/p&gt;


&lt;div class="alert alert-primary" role="alert"&gt;


 &lt;strong&gt;Важно:&lt;/strong&gt; Если вы системный администратор, который просто пытается &lt;strong&gt;написать скрипты&lt;/strong&gt; для существующих клиентов WireGuard, эта страница &lt;strong&gt;не для вас&lt;/strong&gt;. Вместо этого ознакомьтесь с документацией по инструментам &lt;a href="wg.md"&gt;wg(8)&lt;/a&gt; и &lt;a href="man.md"&gt;wg-quick(8)&lt;/a&gt;, а также с &lt;a href="https://git.zx2c4.com/wireguard-windows/about/docs/enterprise.md"&gt;руководством по корпоративному управлению для Windows&lt;/a&gt;.

&lt;/div&gt;

&lt;h3 id="зачем-встраивать-wireguard"&gt;Зачем встраивать WireGuard?&lt;a class="td-heading-self-link" href="#%d0%b7%d0%b0%d1%87%d0%b5%d0%bc-%d0%b2%d1%81%d1%82%d1%80%d0%b0%d0%b8%d0%b2%d0%b0%d1%82%d1%8c-wireguard" aria-label="Heading self-link"&gt;&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Встраивание WireGuard в приложения может быть полезно для:&lt;/p&gt;</description></item></channel></rss>