• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

Мануал Настройка VPN с Wireguard с нуля шаг за шагом

admin

#root
Администратор
Регистрация
20.01.2011
Сообщения
7,665
Розыгрыши
0
Реакции
135
дравствуйте, я принес вам статью, которую я сделал, когда учился в университете, надеюсь, вы понимаете, что я не русский, надеюсь, вы понимаете ошибки и понимаете мою добрую волю перевести ее, не будучи русским, чтобы она дошла до всех людей xss.


Мы рассмотрим, как настроить VPN с помощью Wireguard. Мы кратко объясним, что такое VPN. Мы настроим Wireguard без использования скриптов, таких как pivpn. Мы настроим Wireguard на Windows, Linux, macOS, Android и IOS. Если вы частное лицо, специалист по кибербезопасности или компания, этот учебник может быть вам интересен. Мы постараемся объяснить, как внедрить службу, используя как можно меньше технических деталей. Мы ожидаем, что это будет быстрее и проще, чем, например, с OpenVPN. Наконец, мы добавим выводы, а также решения распространенных проблем. В настоящее время это руководство по настройке сервера и клиентов с любой операционной системой.

Что такое VPN?

Виртуальная частная сеть (VPN) - это технология компьютерных сетей, которая обеспечивает безопасное расширение локальной сети (LAN) через общедоступную или неконтролируемую сеть, такую как Интернет. Она позволяет компьютерам в сети отправлять и получать данные через общие или публичные сети так, как если бы это была частная сеть, со всеми функциональными возможностями, политиками безопасности и управления частной сети. Это достигается путем создания виртуального соединения "точка-точка" с использованием выделенных соединений, шифрования или комбинации обоих методов.

Для чего нужна VPN?


Обычные примеры - возможность соединить два или более филиала компании, используя Интернет в качестве связующего звена, позволить членам группы технической поддержки подключаться из дома к компьютерному центру, или позволить пользователю получить доступ к своему домашнему компьютеру из удаленного места, например, из отеля. И все это с использованием инфраструктуры Интернета.

VPN-соединение через Интернет технически является соединением глобальной сети (WAN) между сайтами, но пользователю кажется, что это частное соединение: отсюда и название "виртуальная частная сеть".

Что такое Wireguard?

Wireguard - это отличная альтернатива другим VPN-продуктам, таким как OpenVPN или IPSec.

WireGuard - это чрезвычайно простой, но быстрый и современный VPN, использующий самую современную криптографию. Его цель - быть быстрее, проще, проворнее и полезнее, чем IPsec. Предполагается, что его производительность будет значительно выше, чем у OpenVPN. WireGuard разработан как VPN общего назначения для работы как на встроенных интерфейсах, так и на суперкомпьютерах, и подходит для самых разных условий. Изначально выпущенный для ядра Linux, сейчас он является кросс-платформенным (Windows, macOS, BSD, iOS, Android) и может быть широко развернут. В настоящее время он находится в стадии активного развития, но уже может считаться самым безопасным, простым в использовании и самым простым VPN-решением в отрасли.

Его конфигурация, по сравнению с другими подобными продуктами, действительно проста, подобно тому, как настраивается SSH. Соединение устанавливается посредством обмена открытыми ключами между сервером и клиентом. Подключиться может только тот клиент, у которого есть открытый ключ в конфигурационном файле сервера.

WireGuard заботится о настройке сетевых интерфейсов, таких как wg0 или wg1, которые ведут себя аналогично более типичному интерфейсу eth0. Это позволяет настраивать и управлять интерфейсами WireGuard с помощью обычных инструментов, таких как ifconfig и ip.

Настройка WireGuard с помощью графического интерфейса


Функции

- Все в одном: WireGuard + Web UI
- Простая установка, простота в использовании
- Список, создание, удаление, включение и отключение клиентов
- Отображение QR-кода клиента
- Загрузка файла конфигурации клиента
- Статистика подключенных клиентов
- Поддержка граватара

Скачать графический интерфейс WireGuard
Для просмотра ссылки Войди или Зарегистрируйся

изображение 1: Wireguard Cliente


Настройка VPN с помощью Wireguard

Начнем с предположения, что у вас есть сервер (либо VPS, Raspberry Pi и т.д.), на котором мы собираемся установить Wireguard. Этот сервер будет иметь дистрибутив на базе Debian, и именно его мы будем использовать для настройки VPN с Wireguard.

Начиная с ядра 5.4 Wireguard присутствует в репозиториях Linux в стабильной версии. В частности, в Ubuntu версии 20.04 мы уже имеем это ядро, однако мы можем установить его в нестабильной версии практически в любой дистрибутив на базе Debian.
Установка Wireguard на сервер

apt install wireguard

Далее мы включаем репозитории EPEL и PowerTools:

Код:
Код:

 sudo dnf install epel-release


    sudo dnf install dnf-plugins-core


    sudo dnf config-manager --set-enabled powertools

Затем включите репозиторий Wireguard:

Код:
Код:

 sudo dnf copr enable jdoss/wireguard

    sudo dnf install wireguard-dkms wireguard-tools

Настройка интерфейса сервера

Теперь, когда Wireguard установлен, мы приступим к подготовке интерфейса. Для этого с помощью команды cd перейдем по следующему пути:

Код:
Код:

 cd /etc/wireguard/

Здесь мы сгенерируем нашу пару открытого и закрытого ключей следующим образом:

Код:
Код:

umask 077

Код:
Код:

wg genkey | tee server_private.key | wg pubkey > server_public.key

Код:
С помощью команды ll мы можем проверить, что открытый и закрытый ключи были созданы. Теперь в целях безопасности мы изменим разрешение доступа к ключам так, чтобы доступ к ним имел только пользователь root. Таким образом, если сервер будет взломан, они не смогут выдать себя за нас и направить трафик на другой сервер, отличный от того, который мы создали. Мы сделаем это следующим образом:

Код:
Код:

chmod 600 -R ../wireguard/

Создаем наш конфигурационный файл:

Код:
Код:

 touch wg0.conf

Код:
Находясь в пути, мы скопируем и вставим наш закрытый ключ из командной строки. Мы также можем скопировать и вставить его щелчком мыши, но этот способ сэкономит нам немного времени:

Код:
Код:

cat server_private.key >> wg0.conf

Редактирование файла wg0.conf

Переходим к редактированию конфигурационного файла. Я буду использовать Nano, но вы можете использовать любой текстовый редактор, который вам нравится:

Код:
Код:

nano wg0.conf

Код:
Сразу же откроется редактор, и мы увидим, что наш приватный ключ уже находится внутри (помните, что мы скопировали и вставили его ранее командой cat wg private.key >> wg0.conf). Теперь мы отредактируем файл и оставим его в таком виде:

Код:
Код:

[Interface]
    Адрес = 10.0.0.1
    PrivateKey = Здесь находится ваш закрытый ключ
    ListenPort = 51820
    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Пошаговое объяснение раздела [Интерфейс]

- "Address" - это адрес в VPN, вы можете дать ему тот, который хотите, лишь бы он не был занят. По этому адресу создается VPN сеть, вы можете использовать тот, который есть у меня. У каждого клиента он должен быть свой, то есть, если сервер - 10.0.0.1, то клиент будет 10.0.0.2.

- "PrivateKey" - это ваш закрытый ключ, помните, что он был скопирован и вставлен ранее.

- "ListenPort" - порт, на котором будет работать Wireguard. Важно, по умолчанию 51820 UDP является портом, на котором работает эта VPN, но это может быть любой другой порт. Вы должны открыть его в вашем модеме, чтобы услуга работала.

- "PostUp" и "PostDown" - это правила брандмауэра. Они нужны только в том случае, если у вас есть правила Iptables (а они должны быть). Вы можете скопировать и вставить их, но вы должны знать интерфейс, т.е. мой - eth0, но ваш может иметь другое имя. Вы можете легко проверить это в терминале с помощью команды ifconfig.

Когда наш файл уже отредактирован с помощью nano, нажмите Ctrl O, чтобы сохранить его, и Ctrl X, чтобы закрыть его. Мы собираемся активировать Wireguard для начала работы с системой:

Ctrl X, чтобы закрыть его. Давайте включим Wireguard для загрузки вместе с системой:

Код:
Код:

systemctl enable wg-quick@wg0

Запускаем службу, проверяем, что она активна и что интерфейс создан (сначала одна команда, затем другая):

Код:
Код:

systemctl start wg-quick@wg0

Код:
Код:

systemctl status wg-quick@wg0


Важное замечание о переадресации.

Будьте осторожны с этим, так как это может занять много времени. Нам нужно, чтобы переадресация была включена:

Код:
Код:

 sysctl -w net.ipv4.ip_forward=1

Если вы используете менеджер брандмауэра UFW, включите порты следующим образом:

Код:
Код:

ufw allow 22/tcp

Код:
Код:

ufw allow 51820/udp

Код:
Код:

 ufw enable

Код:
Это важно для того, чтобы иметь доступ в интернет. Если после настройки службы этого не происходит, проверьте путь /etc/sysctl.d и файл 99-sysctl.conf. Откройте его с помощью nano и найдите следующие строки:

Код:
Код:

# Откомментируйте следующую строку, чтобы включить пересылку пакетов для IPv4.

    #net.ipv4.ip_forward=1

Обратите внимание, что здесь говорится: "Откомментируйте следующую строку, чтобы включить пересылку пакетов для IPv4". Просто удалите # из строки, где написано net.ipv4.ip_forward=1, сохраните с помощью Ctrl O и выйдите. Теперь у вас должен быть доступ в интернет.
Настройка клиента Wireguard в Windows


Wireguard является кроссплатформенным. Он работает на Linux, Windows, MacOS, Android и IOS. Я собираюсь показать вам, как настроить все устройства в качестве клиентов. Давайте посмотрим, как настроить клиент Wireguard на Windows 10.

С компьютера под управлением Windows заходим на сайт Wireguard и скачиваем программу для Windows. Устанавливаем ее и даем ей права администратора. Затем в разделе Add Tunnel нажимаем на Add empty tunnel и заполняем данные, как показано на изображениях. Открытый и закрытый ключи уже автоматически сгенерированы программой

- Нажмите "Добавить туннель", а затем "Добавить пустой туннель".
- Заполните данные, как показано на изображении. Важно: открытый и закрытый ключи автоматически генерируются программой.

Настройка сервера для добавления клиента Windows.

Снова внутри нашего Linux-сервера и по пути /etc/wireguard/ мы изменим файл wg0.conf. Мы сделаем это следующим образом:

Код:
Код:

 nano wg0.conf

Добавьте раздел Peer в разделе Interface, и он будет выглядеть следующим образом:

Код:
Код:

[Interface].

    Адрес = 10.0.0.1

    PrivateKey = Здесь находится ваш закрытый ключ

    ListenPort = 51820

    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

    [Peer]

    Publickey = ПУБЛИЧНЫЙ КЛЮЧ, СОЗДАННЫЙ ВАШИМ КЛИЕНТОМ WINDOWS

    РазрешенныеIPs =10.0.0.2/32

    PersistentKeepAlive = 25

Мы добавили peer (наш клиент) с его публичным ключом, ранее сгенерированным в клиенте windows (помните, что он был сгенерирован автоматически при добавлении туннеля). У нас также есть IP 10.0.0.2, который соответствует клиенту. Наконец, строка PersistentKeepAlive = 25 - это отправка пакета каждые 25 секунд, что и рекомендует Wireguard.

Перезапустите службу и проверьте, что клиент был создан:

Код:
Код:

systemctl restart wg-quick@wg0


Зайдя в клиент Windows, нажмите на кнопку "Активировать", и вы готовы к работе.


Настройка VPN с Wireguard на IOS и Android


В качестве клиентов Wireguard могут выступать смартфоны и мобильные телефоны с IOS и Android. Мы покажем вам, как их настроить.

Из командной консоли нашего сервера, получив повышенные привилегии пользователя root, переходим по пути /etc/wireguard. Помните, что для этого мы используем команду cd /etc/wireguard.

Мы собираемся создать каталог для клиентов IOS и Android. Переместимся в эту папку:

Код:
Код:

mkdir mobile_clients

Код:
Код:

cd mobile_clients

В нашем случае мы будем использовать только одно мобильное устройство, поэтому я не буду создавать дополнительные папки. Если вы хотите быть аккуратными, вы можете создать папку для каждого мобильного телефона, который вы хотите использовать в качестве клиента.

Сгенерируем открытый и закрытый ключи для мобильного клиента:

Код:
Код:

wg genkey | tee clientemovil_private.key | wg pubkey > clientemovil_public.key

Создайте конфигурационный файл для мобильного клиента:

Код:
Код:

touch clientemovil.conf

Отправляем в конфигурационный файл закрытый ключ нашего мобильного клиента, а также открытый ключ нашего сервера с помощью следующих команд:

Код:
Код:

cat clientemovil_private.key > clientemovil.conf

Код:
Код:

cat ../../servidor_public.key >> clientemovil.conf

Теперь с помощью nano clientemovil.conf мы собираемся отредактировать конфигурационный файл. Помните, что первая строка внутри файла - это закрытый ключ мобильного клиента. Вторая строка - это открытый ключ нашего сервера. Предыдущими командами мы скопировали их, и поэтому они находятся внутри. Теперь мы оставляем файл в таком виде:

Код:
Код:

 [Interface]. 

    Адрес = 10.0.0.4 

    PrivateKey = ВАШ ПРИВАТНЫЙ КЛЮЧ МОБИЛЬНОГО КЛИЕНТА

    ListenPort = 51820 

    [Peer] 

    Publickey = ПУБЛИЧНЫЙ КЛЮЧ ВАШЕГО СЕРВЕРА

    Конечная точка = ВАШ ПУБЛИЧНЫЙ IP:51820

    AllowedIPs = 0.0.0.0.0/0 

    PersistentKeepAlive = 25

Настройка VPN с Wireguard, добавление мобильного клиента на сервер.


Теперь перейдем к конфигурационному файлу сервера и скопируем в него открытый ключ мобильного клиента. Будьте внимательны, чтобы правильно выполнить эту команду, так как вы можете удалить содержимое конфигурационного файла сервера:

Код:
Код:

cat mobile_client_public.key >> /etc/wireguard/wg0.conf

Теперь отредактируйте файл конфигурации сервера с помощью nano:

Код:
Код:

nano /etc/wireguard/wg0.conf

В конце файла будет находиться открытый ключ нашего мобильного клиента, мы оставляем конфигурационный файл в таком виде:

Код:
Код:

[Interface] [Интерфейс

    Адрес = 10.0.0.1

    PrivateKey = Здесь находится ваш закрытый ключ

    ListenPort = 51820

    PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

    [Peer]

    PublicKey = ПУБЛИЧНЫЙ КЛЮЧ, созданный вашим клиентом WINDOWS

    Разрешенные IP = 10.0.0.2/32

    PersistentKeepAlive = 25

    [Peer]

    PublicKey = ПУБЛИЧНЫЙ КЛЮЧ ВАШЕГО КЛИЕНТА LINUX

    Разрешенные IP = 10.0.0.3/32

    PersistentKeepAlive = 25

    [Peer] 

    PublicKey = ПУБЛИЧНЫЙ КЛЮЧ ВАШЕГО МОБИЛЬНОГО КЛИЕНТА 

    Разрешенные IP = 10.0.0.4/32 

    PersistentKeepAlive = 25

Перезапустите Wireguard и проверьте, что мобильный клиент разрешен:

Код:
Код:

 systemctl restart wg-quick@wg0

Код:
Генерация QR-кода с помощью Qrencode.

Qrencode - это программа, которая позволяет нам генерировать QR-код из командной строки. Мы устанавливаем ее следующим образом:

Код:
Код:

 apt install qrencode

Мы генерируем наш QR-код для сканирования с помощью устройства Android или IOS.

Код:
Код:

 qrencode -t ansiutf8 < clientemovil.conf

Рекомендации
Для просмотра ссылки Войди или Зарегистрируйся

Можно ещё использовать обычный скрипт для установки Для просмотра ссылки Войди или Зарегистрируйся

Или решение с AdGuard, Unbound и веб-интерфейсом в Docker - Для просмотра ссылки Войди или Зарегистрируйся

Автор: p1t
 
Activity
So far there's no one here
Сверху Снизу