• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Настройка VPN с Wireguard с нуля шаг за шагом | + English Version

p1t

RAID-массив
Пользователь
Регистрация
05.04.2023
Сообщения
63
Реакции
113
Автор: p1t
Источник: https://xss.pro



здравствуйте, я принес вам статью, которую я сделал, когда учился в университете, надеюсь, вы понимаете, что я не русский, надеюсь, вы понимаете ошибки и понимаете мою добрую волю перевести ее, не будучи русским, чтобы она дошла до всех людей xss.


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

Captura de pantalla de 2023-05-16 12-53-31.png


Что такое VPN?

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

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



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

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

Captura de pantalla de 2023-05-16 12-56-43.png


Что такое Wireguard?

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


wireguard-solo.logo_.png



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
- https://github.com/WeeJeWel/wg-easy

Captura de pantalla de 2023-05-16 13-26-29.png

изображение 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

Рекомендации

https://github.com/pirate/wireguard-docs


Модераторы и форумчане не стесняются редактировать и перемещать тему, если что-то не так или что-то плохо переведено.

Как я уже говорил, я не русский, я сделал это со всей добросовестностью и со всем возможным желанием.
 
English Version


We'll take a look at how to set up a VPN using Wireguard. We will briefly explain what a VPN is. We will set up Wireguard without using scripts like pivpn. We will set up Wireguard on Windows, Linux, macOS, Android and IOS. If you are an individual, cybersecurity professional, or company, this tutorial might be of interest to you. We will try to explain how to implement the service using as little technical detail as possible. We expect this to be faster and easier than with, for example, OpenVPN. Finally, we will add findings as well as solutions to common problems. Currently, this is a guide to setting up a server and clients with any operating system.


https://xss.pro/attachments/56759/


What is a VPN?

A virtual private network (VPN) is a computer networking technology that provides a secure extension of a local area network (LAN) over a public or uncontrolled network such as the Internet. It allows computers on a network to send and receive data over public or public networks as if it were a private network, with all the functionality, security policies, and management of a private network. This is achieved by creating a virtual point-to-point connection using dedicated connections, encryption, or a combination of both methods.

What is a VPN for?


Common examples are the ability to connect two or more branch offices of a company using the Internet as a link, allow members of a technical support team to connect from home to a computer center, or allow a user to access their home computer from a remote location such as a hotel. And all this using the infrastructure of the Internet.

A VPN connection over the Internet is technically a wide area network (WAN) connection between sites, but it appears to the user as a private connection: hence the name "virtual private network".


https://xss.pro/attachments/56761/


What is WireGuard?

Wireguard is a great alternative to other VPN products like OpenVPN or IPSec.



https://xss.pro/attachments/56764/



WireGuard is an extremely simple yet fast and modern VPN that uses state-of-the-art cryptography. Its goal is to be faster, simpler, more nimble, and more useful than IPsec. It is expected that its performance will be significantly higher than that of OpenVPN. WireGuard is designed as a general purpose VPN to run on both embedded interfaces and supercomputers and is suitable for a wide range of environments. Originally released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and can be widely deployed. Currently under active development, it can already be considered the most secure, easiest to use, and easiest VPN solution in the industry.

Its configuration, compared to other similar products, is really simple, similar to how SSH is configured. The connection is established through the exchange of public keys between the server and the client. Only the client that has the public key in the server's configuration file can connect.

WireGuard takes care of configuring network interfaces such as wg0 or wg1, which behave similarly to the more typical eth0 interface. This allows you to configure and manage WireGuard interfaces using common tools like ifconfig and ip.

Configuring WireGuard Using the GUI

Functions

- All in one: WireGuard + Web UI
- Easy installation, easy to use
- List, create, delete, enable and disable clients
- Display customer QR code
- Download client configuration file
- Statistics of connected clients
- Gravatar support

Download WireGuard GUI
- https://github.com/WeeJeWel/wg-easy


https://xss.pro/attachments/56765/

Image 1: Wireguard Cliente



VPN setup with Wireguard

Let's start by assuming that you have a server (either VPS, Raspberry Pi, etc.) on which we are going to install Wireguard. This server will have a Debian based distribution and is what we will use to set up the VPN with Wireguard.

Starting with kernel 5.4, Wireguard is present in the Linux repositories in a stable version. In particular, in Ubuntu version 20.04 we already have this kernel, but we can install it in an unstable version in almost any Debian-based distribution.
Installing Wireguard on the server

apt install wireguard

Next, we enable the EPEL and PowerTools repositories:



Code:


sudo dnf install epel-release


sudo dnf install dnf-plugins-core


sudo dnf config-manager --set-enabled powertools



Then enable the Wireguard repository:



Code:


sudo dnf copr enable jdoss/wireguard

sudo dnf install wireguard-dkms wireguard-tools


Setting up the server interface

Now that Wireguard is installed, we will start preparing the interface. To do this, use the cd command to go to the following path:



Code:


cd /etc/wireguard/



Here we will generate our public/private key pair as follows:



Code:


umask 077





Code:


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



With the ll command, we can verify that the public and private keys have been generated. Now, for security reasons, we will change the access permission to the keys so that only the root user has access to them. This way, if the server gets hacked, they won't be able to impersonate us and route traffic to a different server than the one we set up. We will do it like this:



Code:


chmod 600 -R ../wireguard/



Let's create our config file:



Code:


touch wg0.conf



While on the road, we will copy and paste our private key from the command line. We can also copy and paste it with a mouse click, but this way will save us some time:



Code:


cat server_private.key >> wg0.conf



Editing the wg0.conf file

Let's move on to editing the configuration file. I'll be using Nano, but you can use any text editor you like:



Code:


nano wg0.conf



The editor will immediately open and we will see that our private key is already inside (remember we copied and pasted it earlier with cat wg private.key >> wg0.conf). Now we will edit the file and leave it like this:



Code:


[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


Step-by-step explanation of the [Interface] section


- "Address" is the address in the VPN, you can give it the one you want, as long as it is not busy. A VPN network is created at this address, you can use the one I have. Each client must have its own, that is, if the server is 10.0.0.1, then the client will be 10.0.0.2.

- "PrivateKey" is your private key, remember that it was copied and pasted earlier.

- "ListenPort" - the port on which Wireguard will run. Important, by default 51820 UDP is the port this VPN is running on, but it can be any other port. You must open it in your modem for the service to work.

- "PostUp" and "PostDown" are firewall rules. They are only needed if you have Iptables rules (and they should). You can copy and paste them, but you must know the interface, i.e. mine is eth0, but yours may have a different name. You can easily check this in the terminal using the ifconfig command.

With our file already edited with nano, press Ctrl O to save it and Ctrl X to close it. We are going to activate Wireguard to start working with the system:

Ctrl X to close it. Let's enable Wireguard to boot with the system:



Code:


systemctl enable wg-quick@wg0


We start the service, check that it is active and that the interface is created (first one command, then another):




Code:


systemctl start wg-quick@wg0




Code:


systemctl status wg-quick@wg0



An important note about redirects.

Be careful with this as it can take a long time. We need redirects to be enabled:




Code:


sysctl -w net.ipv4.ip_forward=1



If you are using the UFW firewall manager, enable the ports as follows:




Code:


ufw allow 22/tcp





Code:


ufw allow 51820/udp





Code:


ufw enable



This is important in order to have internet access. If this does not happen after configuring the service, check the /etc/sysctl.d path and the 99-sysctl.conf file. Open it with nano and look for the following lines:




Code:


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

#net.ipv4.ip_forward=1



Note that it says "Uncomment the following line to enable packet forwarding for IPv4". Just remove the # from the line that says net.ipv4.ip_forward=1, save with Ctrl O and exit. You should now have internet access.
Setting up the Wireguard client in Windows


Wireguard is cross-platform. It works on Linux, Windows, MacOS, Android and IOS. I'm going to show you how to set up all devices as clients. Let's see how to set up the Wireguard client on Windows 10.

From a computer running Windows, go to the Wireguard website and download the program for Windows. Install it and give it administrator rights. Then, in the Add Tunnel section, click on Add empty tunnel and fill in the data as shown in the images. The public and private keys are already automatically generated by the program

- Click "Add Tunnel" and then "Add Empty Tunnel".
- Fill in the details as shown in the image. Important: public and private keys are automatically generated by the program.

Setting up a server to add a Windows client.

Again inside our Linux server and along the path /etc/wireguard/ we will change the wg0.conf file. We will do it like this:




Code:


nano wg0.conf


Add a Peer section under the Interface section and it will look like this:



Code:


[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



We have added a peer (our client) with its public key previously generated in the windows client (remember that it was automatically generated when the tunnel was added). We also have an IP of 10.0.0.2 which matches the client. Finally, the line PersistentKeepAlive = 25 is to send a packet every 25 seconds, which is what Wireguard recommends.

Restart the service and check that the client has been created:




Code:


systemctl restart wg-quick@wg0



Once in the Windows client, click on the "Activate" button and you're ready to go.



VPN setup with Wireguard on IOS and Android



Smartphones and mobile phones with IOS and Android can act as Wireguard clients. We'll show you how to set them up.

From the command console of our server, having received elevated privileges of the root user, we go along the path /etc/wireguard. Remember that we use the cd /etc/wireguard command for this.

We are going to create a directory for IOS and Android clients. Let's move to this folder:



Code:


mkdir mobile_clients




Code:


cd mobile_clients



In our case, we will use only one mobile device, so I will not create additional folders. If you want to be careful, you can create a folder for each mobile phone you want to use as a client.

Let's generate public and private keys for the mobile client:




Code:


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



Create a configuration file for the mobile client:




Code:


touch clientemovil.conf



We send the private key of our mobile client, as well as the public key of our server, to the configuration file using the following commands:




Code:


cat clientemovil_private.key > clientemovil.conf





Code:


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



Now we are going to edit the configuration file using nano clientemovil.conf. Remember that the first line inside the file is the private key of the mobile client. The second line is the public key of our server. We copied them with the previous commands, and therefore they are inside. Now we leave the file like this:




Code:


[Interface].

Адрес = 10.0.0.4

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

ListenPort = 51820

[Peer]

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

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

AllowedIPs = 0.0.0.0.0/0

PersistentKeepAlive = 25



Setting up a VPN with Wireguard, adding a mobile client to the server.


Now let's move on to the server configuration file and copy the public key of the mobile client into it. Be careful to run this command correctly, as you may delete the contents of the server's configuration file:




Code:


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



Now edit the server configuration file with nano:



Code:


nano /etc/wireguard/wg0.conf



At the end of the file will be the public key of our mobile client, we leave the configuration file as follows:




Code:


[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



Restart Wireguard and check that the mobile client is allowed:




Code:


systemctl restart wg-quick@wg0



QR code generation with Qrencode.

Qrencode is a program that allows us to generate a QR code from the command line. We install it like this:




Code:


apt install qrencode



We generate our QR code to be scanned with an Android or IOS device.




Code:


qrencode -t ansiutf8 < clientemovil.conf


Recommendations

https://github.com/pirate/wireguard-docs


Moderators and forum users feel free to edit and move the topic if something is wrong or something is poorly translated.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Также обратите внимание, что правительства могут легко обнаруживать и блокировать Wireguard и Open VPN

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

Ставите докер:
sudo apt update
sudo apt install docker.io

Дальше отсюда и ставите по инструкции:

Заходите в веб интерфейс, по:

Кликаете по new client, выбираете имя, качаете конфиг
Закидываете его в папку
/etc/wireguard/ilovexss.conf

И дальше в консоли
sudo wg-quick up ilovexss


Вы охуительны, вам не нужно читать километровые пасты копируя бесконечное количество команд абсолютно низачем, при должной ловкости можно управится за 3-4 минуты
 
Пожалуйста, обратите внимание, что пользователь заблокирован
VPN скорее средство конфиденциальности, а не анонимности :) а
 
Пожалуйста, обратите внимание, что пользователь заблокирован
VPN скорее средство конфиденциальности, а не анонимности :) а
Это не так. Все зависит от целей и подходов к его настойке и использованию. Разумеется, что одним только VPN в деле обеспечения безопасности, в множество которой входит и анонимность, и конфиденциальность как составляющие ее части, никак не обойтись. Ну и конечно бездумная установка подобных решений в стиле в два клика тут совершенно неуместна. Нужно четко понимать, что, как и почему работает. И никак иначе. Удобство и комфорт в процессе работы(либо настройке чего-либо для работы) почти всегда идут вразрез с безопасностью, и не только безопасностью, но очень часто например и производительностью.
 
Последнее редактирование:
Ничего не написано про dns, в данном случае dns будет идти мимо туннеля wg. Чтобы завернуть dns-траффик в тот же тоннель нужно dns-резолвера поставить на том же сервере, а еще лучше свой dns-сервер.
Все это и еще плюс Pi-hole(блокировка рекламы) есть в комплексе wirehole: https://github.com/IAmStoxe/wirehole
Cтавится очень просто в пару команд
 
Последнее редактирование:
[Interface]. Адрес = 10.0.0.4 PrivateKey = ВАШ ПРИВАТНЫЙ КЛЮЧ МОБИЛЬНОГО КЛИЕНТА ListenPort = 51820 [Peer] Publickey = ПУБЛИЧНЫЙ КЛЮЧ ВАШЕГО СЕРВЕРА Конечная точка = ВАШ ПУБЛИЧНЫЙ IP:51820 AllowedIPs = 0.0.0.0.0/0 PersistentKeepAlive = 25
AllowedIPs здесь почему-то автор указал IP из 5 значений вместо 4 и местами русский перевод в конфиге

Можно ещё использовать обычный скрипт для установки https://github.com/hwdsl2/wireguard-install

Или решение с AdGuard, Unbound и веб-интерфейсом в Docker - https://github.com/notthebee/ansible-easy-vpn
 
Данный конфиг для нормальной анонимности вообще не подходит нужно в первую очередь скрывть свой vpn трафик под другой например ssh и обсуфицировать его а так же нужно скрывать свои DNS запросы так как провайдер будет их видеть и толку от такого vpn ноль и еще по хорошему чистить логи на самой машинке а так таких статей 1000 по всему интернету.
 
Данный конфиг для нормальной анонимности вообще не подходит нужно в первую очередь скрывть свой vpn трафик под другой например ssh и обсуфицировать его а так же нужно скрывать свои DNS запросы так как провайдер будет их видеть и толку от такого vpn ноль и еще по хорошему чистить логи на самой машинке а так таких статей 1000 по всему интернету.
Что мешает , написать свою статью , как делать всё правильно , народ думаю поблагодорит.
 
По-моему Wireguard проще собрать через Docker.



1) curl -sSL https://get.docker.com | sh
2) sudo usermod -aG docker $(whoami)
3) exit и перезайти на дэдик
4) Отредактировать и запустить также в терминале:

docker run -d \
--name=wg-easy \
-e WG_HOST=YOUR_SERVER_IP \
-e PASSWORD=YOUR_ADMIN_PASSWORD \
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
weejewel/wg-easy

Далее по адресу http://your_ip:51821 вас ждет готовый WG
 
Последнее редактирование:
на Vless идет утечка DNS IP , нужно руками прописать хотя бы гугловские в dns ipv4 своего соединения
Shadowsocks шляпа которая показывает при подключении к ssh твой ip
WG лучше всего подходил для просмотра приключений Рокко Сиффреди
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх