Bootstrap

VPN сервер по протоколу wireguard

VPN сервер по протоколу wireguard

после создания VPS к вам на почту придут данные для входа на сервер по протоколу SSH. Для входа нужно будет знать пароль суперпользователя root, а также ip адрес сервера.

Итак, для примера, я имею следующие данные:

IP адрес VPS: 111.111.111.111
логин: root
пароль: 12345678

Мы будет работать с клиентского хоста, который тоже в OS GNU/Linux, допустим пусть это будет дистрибутив. И у нас уже должен быть настроен доступ к серверу по SSH. (Подробнее про настройку подключения по SSH).

Заходим на сервер.

ssh root@111.111.111.111


Внимание если у вас успешно настроен вход по ssh, то далее идут команды запускаемые уже на сервере. Так, как мы сразу логинемся под супер-пользователем root, приставка sudo в командах нам не потребуется.

Обновляем сервер:




apt update && apt upgrade -y

Устанавливаем пакет wireguard:




apt install -y  wireguard

Генерируем свои ключи WireGuard сервера, с помощью следующих команд в одной строке через пайп | вот так:




wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey  

Проставляем права на приватный ключ, доступ только для владельца т.е. пользователя root сервера:




chmod 600 /etc/wireguard/privatekey

Проверим, как у вас называется сетевой интерфейс:




ip a

Скорее всего у вас на сервере будет сетевой интерфейс eth0, но возможно и другой, например, ens3 или как-то иначе. Это название интерфейса будет использоваться далее в конфиге /etc/wireguard/wg0.conf, файл которого мы сейчас создадим следующей командой:




vim /etc/wireguard/wg0.conf

Terminal:


root@111.111.111.111#
vim /etc/wireguard/wg0.conf 

[Interface] PrivateKey = privatekey Address = 10.0.0.1/24 ListenPort = 51830 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Если не знаете текстовый редактор vim — откройте файл с nano, он для новичков понятнее в работе.

Обратите внимание — в строках PostUp и PostDown использован как раз сетевой интерфейс eth0. Если у вас другой — замените eth0 на ваш.

Вставляем вместо privatekey содержимое файла /etc/wireguard/privatekey

Настраиваем IP форвардинг:




echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf



sysctl -p 

Включаем systemd демон с wireguard, на сревере с Ubuntu на борту, SystemD работает по умолчанию:




systemctl enable  wg-quick@wg0.service



systemctl start  wg-quick@wg0.service



systemctl status  wg-quick@wg0.service

Теперь создаём ключи для клиента, сначала здесь же на самом сервере:




wg genkey | tee /etc/wireguard/ramanzes_privatekey | wg pubkey | tee  /etc/wireguard/ramanzes_publickey

Скопируйте в буфер содержимое файла публичного ключа клиента.




cat /etc/wireguard/ramanzes_publickey

Добавляем в уже созданный конфиг сервера, данные этого клиента, в конце файла сразу после строк конфигураций самого сервера:




vim /etc/wireguard/wg0.conf

Terminal:


[Interface]
PrivateKey = privatekey
Address = 10.0.0.1/24
ListenPort = 51830
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE    

[Peer]
PublicKey = ramanzes_publickey
AllowedIPs = 10.0.0.2/32

Вместо ramanzes_publickey — заменяем на содержимое файла /etc/wireguard/ramanzes_publickey
А AllowedIPs назначаем IP адрес, следующий свободный за адресом сервера. Эту нашу будущую VPN сеть мы установили сами в этом файле выше, назначив адрес серверу.

Перезагружаем systemd сервис с wireguard:




systemctl restart wg-quick@wg0



systemctl status wg-quick@wg0

Выводим на экран содержимое файлов которое нам пригодится на следующем шаге.




cat /etc/wireguard/ramanzes_privatekey



cat /etc/wireguard/publickey

ВНИМАНИЕ! открываем во второй вкладке терминала, консоль ЛОКАЛЬНОЙ машины, хоста из которого мы сейчас работаем с сервером (например, на ноутбуке).

Создаём на своём хосте текстовый файл с конфигом клиента, по образу и подобию файла настроек сервера... Запомните расположение файла, или пусть он будет просто в корне домашнего каталога пользователя:


vim ramanzes_wb.conf

Добаваляем следующее содержимое:

Terminal:


ramanzes@mx:~
$ vim ramanzes_wb.conf                                  
[Interface]
PrivateKey = CLIENT-PRIVATE-KEY
Address = 10.0.0.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = SERVER-PUBKEY
Endpoint = SERVER-IP:51830
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20


Здесь CLIENT-PRIVATE-KEY заменяем на приватный ключ клиента, то есть содержимое файла /etc/wireguard/ramanzes_privatekey на сервере, из вкладки консоли сервера. А SERVER-PUBKEY заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey тоже копируем из вкладки терминала на сервере. Ну и SERVER-IP заменяем на IP сервера у меня это 111.111.111.111 как вы помните, у вас свой IP... Сохраняем файл.

Теперь этот файл нужно добвать в клиентский пакет ПО в Wireguard (клиентские пакеты тоже есть для всех операционных систем, в том числе мобильных) — и жмём в клиенте кнопку подключения.

клиент на MX Linux устанавливаем так:

Сначала вам нужно обновить OS и установить необходимые пакеты.

Пожалуйста, выполните следующие команды одну за другой и подтвердите обновление и установку новых пакетов, нажав «Y» при появлении запроса:


sudo apt-get update
sudo apt install  wireguard git dh-autoreconf libglib2.0-dev intltool build-essential libgtk-3-dev libnma-dev libsecret-1-dev network-manager-dev resolvconf

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

git clone https://github.com/max-moser/network-manager-wireguard

cd network-manager-wireguard
./autogen.sh --without-libnm-glib

./configure --without-libnm-glib --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib/x86_64-linux-gnu --libexecdir=/usr/lib/NetworkManager --localstatedir=/var
make
sudo make install

Теперь открываем настройки сети, зависит от с графической оболочки у меня например это Plasma KDE.

Найдите раздел VPN и нажмите кнопку «+», чтобы начать создавать новую конфигурацию VPN. Нажмите на кнопку "Импорт из файла...". Загрузите конфигурационный файл WireGuard (файл ramanzes_wb.conf) Нажмите переключатель рядом с именем VPN-соединения, чтобы начать подключение.

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

в консоле сервера выполняем команду

wg show $WG_IFACE

получим примерно вот такой вывод:

Terminal:


root@111.111.111.111:~
$ wg show $WG_IFACE                                  

interface: wg0
public key: dsfasdfDFDSAFSDfasdfasdFASDFDFasdfSDF+wAA=
private key: (hidden)
listening port: 51830

peer: UjTwjdsSDFASDFDdsfasdfasdfsdfdDD/MjsRtFfic=
endpoint: 234.174.234.19:6026
allowed ips: 10.0.0.2/32
latest handshake: 28 seconds ago



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

Для этого на хосте-клиенте, скопируем созданный на предыдущих шагах конфигурацию из домашнего каталога файл у меня он назывался ramanzes_wb.conf, в каталог /etc/wireguard. Все пакеты которые были установлены выше, для работы запуска службы через сетевой менеджер, должны быть установлены, на случай если вы сразу перешли к этому разделу без попытки с GUI... Однако если вы здесь после неудачной попытки запустить клиента, в linux через графический интерфейс, то сперва удалите в этом графическом интерфейсе созданную настройку, чтобы они не конфликтовали. И после этого от root пользователя выполняем:


    
    
    mv  ~/ramanzes_wb.conf /etc/wireguard

На этом собственно всё. Для запуска соединения введите следующую команду, в качестве аргумента указывая имя файлы конфигурации без расширения..., например в моём случае это было ramanzes_wb:


    
    
    wg-quick up ramanzes_wb

Чтобы узнать статус соединения, выполните следующую команду:


    
    
    wg show

Чтобы разорвать соединение с сервером VPN, делается по аналогии с запуском только указываем down вместо up:


    
    
    sudo wg-quick down ramanzes_wb

Копирование материалов разрешается только с указанием автора Roman Sakhno и индексируемой прямой ссылкой на сайт (http://itdid.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/sahroman.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/sahroman.

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как настроить свой компьютер

  2. Текстовая ссылка:

    Она выглядит вот так: Как настроить свой компьютер

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (0):

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

крипто-донат, на развитие сайта itdid.ru:

В новом окне с терминалом itdid.ru, введите любую сумму: