0

WireGuard на AWS

Выбор расположения дата-центра

Консоль управления AWS Amazon

Тестирование скорости

Прежде чем выбирать датацентр, рекомендуется протестировать через https://speedtest.net скорость доступа к ближайшим датацентрам, в моей локации такие результаты:

Создание виртуальной машины (инстанса)

Переход на страницу запуска инстанса

Запуск пошагового мастера создания инстанса

Запуск пошагового мастера создания инстанса

Выбор типа операционной стистемы инстанса

Выбор типа операционной стистемы

Выбор типа инстанса

По умолчанию выбран инстанс t2.micro, он нам и нужен, просто нажимаем кнопку Next: Configure Instance Detalis

Выбор типа инстанса

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

В дальнейшем мы подключим к нашему инстансу постоянный публичный IP, поэтому на этом этапе мы отключаем автоназначение публичного IP, и нажимаем кнопку Next: Add Storage

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

Подключение хранилища

Указываем размер “жесткого диска”. Для наших целей достаточно 16 гигабайт, и нажимаем кнопку Next: Add Tags

Подключение хранилища

Настройка тегов

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

Настройка тегов

Открытие портов

На этом этапе мы настраиваем брандмауэр, открывая нужные порты. Набор открытых портов называется “Группа безопасности” (Security Group). Мы должны создать новую группу безопасности, дать ей имя, описание, добавить порт UDP (Custom UDP Rule), в поле Rort Range необходимо назначить номер порта, из диапазона динамических портов 49152—65535. В данном случае я выбрал номер порта 54321.

Открытие портов

После заполнения необходимых данных, нажимаем на кнопку Review and Launch

Обзор всех настроек инстанса

На данной странице идет обзор всех настроек нашего инстанса, проверяем все ли настройки в порядке, и нажимаем кнопку Launch

Обзор всех настроек инстанса

Создание ключей доступа

Дальше выходит диалоговое окно, предлагающее либо создать, либо добавить существующий SSH ключ, с помощью которого мы в дальнейшем будет удаленно подключатся к нашему инстансу. Мы выбираем опцию “Create a new key pair” чтобы создать новый ключ. Задаем его имя, и нажимаем кнопку Download Key Pair, чтобы скачать созданные ключи. Сохраните их в надежное место на диске локального компьютера. После того как скачали — нажимаете кнопку Launch Instances

Создание ключей доступа

Сохранение ключей доступа

Здесь показан, этап сохранения созданных ключей из предыдущего шага. После того, как мы нажали кнопку Download Key Pair, ключ сохраняется в виде файла сертификата с расширением *.pem. В данном случае я дал ему имя wireguard-awskey.pem

Сохранение ключей доступа

Обзор результатов создания инстанса

Далее мы видим сообщение об успешном запуске только что созданного нами инстанса. Мы можем перейти к списку наших инстансов нажав на кнопку View instances

Обзор результатов создания инстанса

Создание внешнего IP адреса

Дальше нам необходимо создать постоянный внешний IP адрес, через который мы и будем подключатся к нашему VPN серверу. Для этого в навигационной панели в левой части экрана необходимо выбрать пункт Elastic IPs из категории NETWORK & SECTURITY и нажать кнопку Allocate new address

Запуск создания внешнего IP

Настройка создания внешнего IP

На следующем шаге нам необходима чтобы была включена опция Amazon pool (включена по умолчанию), и нажимаем на кнопку Allocate

Настройка создания внешнего IP

Обзор результатов создания внешнего IP адреса

На следующем экране отобразится полученный нами внешний IP адрес. Рекомендуется его запомнить, а лучше даже записать. он нам еще не раз пригодиться в процессе дальнейшей настройки и использования VPN сервера. В данном руководстве в качестве примера я использую IP адрес 4.3.2.1. Как записали адрес, нажимаем на кнопку Close

Обзор результатов создания внешнего IP адреса

Список внешних IP адресов

Далее нам открывается список наших постоянных публичных IP адресов (elastics IP).

Список внешних IP адресов

Назначение внешнего IP инстансу

В этом списке мы выбираем полученный нами IP адрес, и нажимаем правую кнопку мыши, чтобы вызвать выпадающее меню. В нем выбираем пункт Associate address, чтобы назначить его ранее созданному нами инстансу.

Назначение внешнего IP инстансу

Настройка назначения внешнего IP

На следующем шаге выбираем из выпадающего списка наш инстанс, и нажимаем кнопку Associate

Настройка назначения внешнего IP

Обзор результатов назначения внешнего IP

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

Обзор результатов назначения внешнего IP

Теперь мы можем подключиться к нашему вновь созданному инстансу из вне, со своего компьютера по SSH.

Конфигурирование сервера Wireguard

Наиболее актуальную инструкцию по установке и использованию Wireguard с помощью описанных ниже скриптов можно посмотреть в репозитории: https://github.com/Tailerusin/wireguard_aws

Установка Wireguard

В терминале вводим следующие команды (можно копировать в буфер обмена, и вставлять в терминале нажатием правой клавиши мыши):

Клонирование репозитория

Клонируем репозиторий со скриптами установки Wireguard

git clone https://github.com/Tailerusin/wireguard_aws.git wireguard_aws

Переход в каталог со скриптами

Переходим в каталог с клонированным репозиторем

cd wireguard_aws

Запуск скрипта инициализации

Запускаем от имени администратора (root пользователя) скрипт установки Wireguard

sudo ./initial.sh

В процессе установки будут запрошены определенные данные, необходимые для настройки Wireguard

Ввод точки подключения

Введите внешний IP адрес и открытый порт Wireguard сервера. Внешний IP адрес сервера мы получили на шаге 2.2.3, а порт открыли на шаге 2.1.5. Указываем их слитно, разделяя двоеточием, например 4.3.2.1:54321, и после этого нажимает клавишу Enter
Пример вывода:

Enter the endpoint (external ip and port) in format [ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321

Ввод внутреннего IP адреса

Введите IP адрес сервера Wireguard в защищенной VPN подсети, если не знаете что это такое, просто нажмите клавишу Enter для установки значения по умолчанию (10.50.0.1)
Пример вывода:

Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):

Указание сервера DNS

Введите IP адрес DNS сервера, или просто нажмите клавишу Enter для установки значения по умолчанию 1.1.1.1 (Cloudflare public DNS)
Пример вывода:

Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):

Указание WAN интерфейса

Дальше требуется ввести имя внешнего сетевого интерфейса, который будет прослушивать внутренний сетевой интерфейс VPN. Просто нажмите Enter, чтобы установить значение по умолчанию для AWS (eth0)
Пример вывода:

Enter the name of the WAN network interface ([ENTER] set to default: eth0):

Указание имени клиента

Введите имя VPN пользователя. Дело в том, что VPN сервер Wireguard не сможет запуститься, пока не добавлен хотя бы один клиент. В данном случае я ввел имя Alex@mobile
Пример вывода:

Enter VPN user name: Alex@mobile

После этого на экране должен отобразится QR код с конфигурацией только что добавленного клиента, который надо считать с помощью мобильного клиента Wireguard на Android либо iOS, для его настройки. А также ниже QR кода отобразится текст конфигурационного файла в случае ручной конфигурации клиентов. Как это сделать будет сказано ниже.

Завершение установки Wireguard

Добавление нового VPN пользователя

Чтобы добавить нового пользователя, необходимо в терминале выполнить скрипт add-client.sh

sudo ./add-client.sh

Скрипт запрашивает имя пользователя:
Пример вывода:

Enter VPN user name: 

Также, имя пользователям можно передать в качестве параметра скрипта (в данном случае client@mobile):

sudo ./add-client.sh client@mobile

В результате выполнения скрипта, в каталоге с именем клиента по пути /etc/wireguard/clients/{ИмяКлиента} будет создан файл с конфигурацией клиента /etc/wireguard/clients/{ИмяКлиента}/{ИмяКлиента}.conf, а на экране терминала отобразится QR код для настройки мобильных клиентов и содержимое файла конфигурации.

Файл пользовательской конфигурации

Показать на экране содержимое файла .conf, для ручной настройки клиента, можно с помощью команды cat

sudo cat /etc/wireguard/clients/client@mobile/client@mobile.conf

результат выполнения:

[Interface]
PrivateKey = oDMWr0toPVCvgKt5oncLLRfHRit+jbzT5cshNUi8zlM=
Address = 10.50.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = mLnd+mul15U0EP6jCH5MRhIAjsfKYuIU/j5ml8Z2SEk=
PresharedKey = wjXdcf8CG29Scmnl5D97N46PhVn1jecioaXjdvrEkAc=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = 4.3.2.1:54321

Описание файла конфигурации клиента:

[Interface]
PrivateKey = Приватный ключ клиента
Address = IP адрес клиента
DNS = ДНС используемый клиентом

[Peer]
PublicKey = Публичный ключ сервера
PresharedKey = Общи ключ сервера и клиента
AllowedIPs = Разрешенные адреса для подключения (все -  0.0.0.0/0, ::/0)
Endpoint = IP адрес и порт для подключения

QR код конфигурации клиента

Показать на экране терминала QR код конфигурации для ранее созданного клиента можно с помощью команды qrencode -t ansiutf8 (в данном примере используется клиент с именем client@mobile):

sudo cat /etc/wireguard/clients/client@mobile/client@mobile.conf | qrencode -t ansiutf8

Конфигурирование VPN клиентов

Настройка мобильного клиента Андроид

Официальный клиент Wireguard для Андроид можно установить из официального магазина GooglePlay

После чего, необходимо импортировать конфигурацию, считав QR код с конфигурацией клиента (см. пункт 4.2.2) и дать ему имя:

Настройка Андроид клиента Wireguard

После успешного импорта конфигурации, можно включить VPN тоннель. Об успешном подключении скажет заначок ключика в системной панели Андроид

Работающий Андроид клиент Wireguard
Настройка клиента Windows

Первоначально необходимо скачать и установить программу TunSafe for Windows — это клиент Wireguard для Windows.

Создание файла конфигурации для импорта

Правой кнопкой мышки создаем текстовый файл на рабочем столе.

Создание текстового файла

Копирование содержимого файла конфигурации с сервера

Дальше возвращаемся к терминалу Putty и отображаем содержимое конфигурационного файла нужного пользователя, как это описано на шаге 4.2.1.
Далее выделяем правой кнопкой мыши текст конфигурации в терминале Putty, по окончании выделения он автоматически скопируется в буфер обмена.

Копирование текста с конфигурацией

Копирование конфигурации в локальный файл конфигурации

Поле этого возвращаемся к созданному нами ранее на рабочем столе текстовому файлу, и вставляем в него из буфера обмена текст конфигурации.

Копирование текста с конфигурацией

Сохранение локального файла конфигурации

Сохраняем файл, с расширением .conf (в данном случае с именем london.conf)

Сохранения файла с конфигурацией

Импорт локального файла конфигурации

Далее необходимо импортировать файл конфигурации в программу TunSafe.

Импорт файла конфигурации в TunSafe

Установка VPN соединения

Выбрать этот файл конфигурации и подключиться, нажав кнопку Connect.
Подключение к серверу VPN через TunSafe

Проверка успешности подключения

Чтобы проверить успешность подключения через VPN тоннель, необходимо открыть браузер и перейти на сайт https://2ip.ua/ru/

Подключение к серверу VPN через TunSafe

Отображаемый IP адрес должен совпадать с тем, который мы получили на этапе 2.2.3.
Если это так, значит VPN тоннель работает успешно.

Облачная платформа

Свежие комментарии

Подписка

Лучшие статьи

WordPress › Ошибка

На сайте возникла критическая ошибка.

Узнайте больше про решение проблем с WordPress.