Для чего?


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


Статья 19
Каждый человек имеет право на свободу убеждений и на свободное выражение их; это право включает свободу беспрепятственно придерживаться своих убеждений и свободу искать, получать и распространять информацию и идеи любыми средствами и независимо от государственных границ

В данном руководстве мы за 6 этапов развернем свой собственный бесплатный* VPN сервис на базе технологии Wireguard, в облачной инфраструктуре Amazon Web Services (AWS), с помощью бесплатного аккаунта (на 12 месяцев), на инстансе (виртуальной машине) под управлением Ubuntu Server 18.04 LTS.


Я старался сделать это пошаговое руководство как можно более дружественным к людям, далеким от ИТ. Единственное что требуется — это усидчивость в повторении описанных ниже шагов.


Примечание


Этапы


  1. Регистрация бесплатного аккаунта AWS
  2. Создание инстанса AWS
  3. Подключение к инстансу AWS
  4. Конфигурирование Wireguard
  5. Конфигурирование VPN клиентов
  6. Проверка корректности установки VPN

Полезные ссылки



1. Регистрация аккаунта AWS


Для регистрации бесплатного аккунта AWS требуется реальный номер телефона и платежеспособная кредитная карта Visa или Mastercard. Рекомендую воспользоваться виртуальными картами которые бесплатно предоставляет Яндекс.Деньги или Qiwi кошелек. Для проверки валидности карты, при регистрации списывается 1$ который в дальнейшем возвращается.


1.1. Открытие консоли управления AWS


Необходимо открыть браузер и перейти по адресу: https://aws.amazon.com/ru/
Нажать на кнопку "Регистрация"


Стартовая страница AWS Amazon


1.2. Заполнение персональных данных


Заполнить данные и нажать на кнопку "Продолжить"


Регистрации аккаунта AWS Amazon


1.3. Заполнение контактных данных


Заполнить контактные сведения.


Указание контактных данных при регистрации аккаунта AWS Amazon


1.4. Указание платежной информации.


Номер карты, срок окончания и имя держателя карты.


Указание платежных данных при регистрации аккаунта AWS Amazon


1.5. Подтверждение аккаунта


На этом этапе идет подтверждение номера телефона и непосредственное списание 1$ с платежной карты. На экране компьютера отображается 4х значный код, и на указанный телефон поступает звонок из Amazon. Во время звонка необходимо набрать код, указанный на экране.


Подтверждение аккаунта AWS Amazon


1.6. Выбор тарифного плана.


Выбираем — Базовый план (бесплатный)


Выбор тарифного плана AWS Amazon


1.7. Вход в консоль управления


Вход в консоль управления AWS Amazon


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


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


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


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


  • Сингапур
    Сингапур
  • Париж
    Париж
  • Франкфурт
    Франкфурт
  • Стокгольм
    Стокгольм
  • Лондон
    Лондон

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


2. Создание инстанса AWS


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


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


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


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


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


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


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


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


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


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


1


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


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


2


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


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


3


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


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


4


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


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


5


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


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


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


6


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


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


7


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


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


8


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


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


9


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


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


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


1


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


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


2


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


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


3


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


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


4


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


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


5


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


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


6


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


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


7


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


3. Подключение к инстансу AWS


SSH — это безопасный протокол удаленного управления компьютерными устройствами.


3.1. Подключение по SSH c компьютера на Windows


Для подключения к компьютера с Windows, прежде необходимо скачать и установить программу Putty.


3.1.1. Импорт приватного ключа для Putty


3.1.1.1. После установки Putty, необходимо запустить утилиту PuTTYgen идущую с ней в комплекте, для импорта ключа сертификата в формате PEM, в формат, пригодный для использования в программе Putty. Для этого в верхнем меню выбираем пункт Conversions->Import Key


1


3.1.1.2. Выбор ключа AWS в формате PEM


Далее, выбираем ключ, который мы ранее сохранили на этапе 2.1.7.1, в нашем случае его имя wireguard-awskey.pem


2


3.1.1.3. Задание параметров импорта ключа


На этом шаге нам необходимо указать комментарий для этого ключа (описание) и задать для безопасности пароль и его подтверждение. Он будет запрашиваться при каждом подключении. Таким образом мы защищаем ключ паролем от не целевого использования. Пароль можно не задавать, но это менее безопасно, в случае, если ключ попадет в чужие руки. После нажимаем кнопку Save private key


3


3.1.1.4. Сохранение импортированного ключа


Открывается диалоговое окно сохранения файла, и мы сохраняем наш приватный ключ в виде файла с расширением .ppk, пригодного для использования в программе Putty.
Указываем имя ключа (в нашем случае wireguard-awskey.ppk) и нажимаем кнопку Сохранить.


4


3.1.2. Создание и настройка соединения в Putty


3.1.2.1. Создание соединения


Открываем программу Putty, выбираем категорию Session (она открыта по умолчанию) и в поле Host Name вводим публичный IP адрес нашего сервера, который мы получили на шаге 2.2.3. В поле Saved Session вводим произвольное название нашего соединения (в моем случае wireguard-aws-london), и далее нажимаем кнопку Save чтобы сохранить сделанные нами изменения.


5


3.1.2.2. Настройка автологина пользователя


Дальше в категории Connection, выбираем подкатегорию Data и в поле Auto-login username водим имя пользователя ubuntu — это стандартный пользователь инстанса на AWS с Ubuntu.


6


3.1.2.3. Выбор приватного ключа для соединения по SSH


Затем переходим в подкатегорию Connection/SSH/Auth и рядом с полем Private key file for authentication нажимаем на кнопку Browse... для выбора файла с сертификатом ключа.


7


3.1.2.4. Открытие импортированного ключа


Указываем ключ, импортированный нами ранее на этапе 3.1.1.4, в нашем случае это файл wireguard-awskey.ppk, и нажимаем кнопку Открыть.


8


3.1.2.5. Сохранение настроек и запуск подключения


Вернувшись на страницу категории Session нажимаем еще раз кнопку Save, для сохранения сделанных ранее нами изменений на предыдущих шагах (3.1.2.2 — 3.1.2.4). И затем нажимаем кнопку Open чтобы открыть созданное и настроенное нами удаленное подключение по SSH.


10


3.1.2.7. Настройка доверия между хостами


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


11


3.1.2.8. Ввод пароля для доступа к ключу


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


12


3.1.2.9. Приветственное сообщение об успешном подключении


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


13


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


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


4.1. Установка Wireguard


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


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


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


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

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


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


cd wireguard_aws

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


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


sudo ./initial.sh

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


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


Введите внешний 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

4.1.3.2. Ввод внутреннего 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):

4.1.3.3. Указание сервера 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):

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


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


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

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


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


Enter VPN user name: Alex@mobile

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


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


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


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


sudo ./add-client.sh

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


Enter VPN user name: 

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


sudo ./add-client.sh Alex@mobile

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


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


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


sudo cat /etc/wireguard/clients/Alex@mobile/Alex@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 адрес и порт для подключения

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


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


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

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


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


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


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


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


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


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


5.2. Настройка клиента Windows


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


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


Из терминала в Linux можно проверить свой IP адрес, введя команду:


curl http://zx2c4.com/ip

Или можно просто зайти на порнохаб, если вы находитесь в Казахстане.

Комментарии (125)


  1. Igorjan
    18.04.2019 08:33

    Цитируйте полностью

    Статья 29
    1. Каждый человек имеет обязанности перед обществом, в котором только и возможно свободное и полное развитие его личности.

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

    Свобода слова не значит вседозволенность.


    1. pprometey Автор
      18.04.2019 08:46
      +8

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


      1. nicholas_k
        18.04.2019 10:04
        -7

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


        1. pprometey Автор
          18.04.2019 10:04
          +4

          Это не лозунги, а личное мнение, на которое имею полное право.


          1. nicholas_k
            19.04.2019 15:32

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


            1. pprometey Автор
              19.04.2019 17:22
              +1

              Расскажите об этом Немцову.


              1. nicholas_k
                20.04.2019 22:03

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

                Удивительная непоследовательность чекистской хунты и удивительная нетребовательность к обоснованиям у вас.


                1. pprometey Автор
                  21.04.2019 06:09

                  А ты на мост Немцова сходи, посмотри какой он забытый. Как ни стараются власти, не получается замять память об этом преступлении nemtsov-most.org


                  1. nicholas_k
                    22.04.2019 11:14

                    Ну да, только после того, как его объявили невинно убиенным мучеником его и вспомнили. Очень удобно получилось.

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


        1. erty
          18.04.2019 12:36
          +3

          Какая ещё свобода «их»? Автор запрещает кому-то из «них» выходить в интернет?
          Свобода заканчивается там, где начинается насилие над другими людьми. Укажите пожалуйста, в каком месте статьи автор насилует кого-либо?


    1. Vinchi
      18.04.2019 17:20

      А это уже конституция а не декларация.


    1. 2PAE
      19.04.2019 08:30

      Вы зря апеллируете к закону.
      Самые большие злодеяния в истории человечества, были совершенно законны.
      Я понимаю что декларация прав человека это как бы не закон, но всё одно зря.
      Что-бы человечество не написало в законах, реальный мир, от этого не изменится.


  1. constb
    18.04.2019 08:51
    +5

    добавлю насчёт амазона, что назначение elastic ip здесь несколько излишне – амазон будет брать за него деньги если машинку остановить, не освободив адрес. автоназначенные IP ничем не хуже, только амазон сразу заберёт его обратно если машинку остановить (ребут не считается остановкой) – и не будет брать денег… так что мой совет на 2.1.2 оставить настройки по умолчанию и полностью пропустить 2.2…


    второй совет – полученный айпишник сразу проверить на телеграмовском боте @rknblockbot – хоть подсети амазона и разблокировали, отдельных айпишников в блоке осталось огромное множество, и время от времени они пользователям выпадают. если айпишник был автоназначен – достаточно остановить и снова запустить машинку. если используется elastic ip – его надо release-нуть и выделить заново…


    третий совет – история показывает, что амазон могут заблокировать целиком или частично в любой момент, и особенно подвержены блокировкам как раз регионы, которые удобны для размещения VPN пользователей из России – Лондон и Франкфурт. кроме того часто влетают в блок адреса из стандартного региона – Северной Вирджинии и почему-то Огайо. я бы вообще не пользовался для VPN амазоном – для него подойдёт любой самый дешёвый KVM. можно подобрать на lowendbox.com любой в Европе с достаточно большим лимитом на трафик – и настроить его точно таким же образом…


    1. pprometey Автор
      18.04.2019 09:07
      +1

      Вот за что люблю Хабр, за то, что всегда тут дадут дельные советы. Спасибо.
      Учту ваши замечания в следующей версии скрипта и документации. Или ссылку дам на этот комментарий.


      1. begemoth3663
        18.04.2019 17:01

        лучше уже не скрипт + картинки + документация, а terraform || cloudformation || ansible || etc.


        1. pprometey Автор
          19.04.2019 06:32

          Да, следующий мануал — разворачивание Wireguard через ansible


    1. darken99
      18.04.2019 19:31

      Деньги за EIP берутся только в случае если он не прикреплен к инстансу


      1. Stas911
        19.04.2019 23:32

        aws.amazon.com/premiumsupport/knowledge-center/elastic-ip-charges если инстанс не запущен, то тоже


  1. gosdep
    18.04.2019 08:59
    +2

    Чем хуже Outline от Google? Можно также создать инстанс в AWS и развернуть Outline всего лишь одной командой.


    1. pprometey Автор
      18.04.2019 09:03

      Да думаю ничем не хуже, только регулярно надо платить, 5$ в месяц, если я не ошибаюсь. А тут на год бесплатно. Особо изворотливые могут зарегистрировать еще аккаунт по истечении года на другую виртуальную карту. Хотя это конечно противоречит соглашению об использовании сервисов AWS, и так делать нехорошо. Ну либо перенести Wireguard на Google Cloud, Azure, там схожие условия бесплатного использования на 1 год.


      1. gosdep
        18.04.2019 09:10

        Так AWS ведь предоставляет бесплатный инстанс сроком на 12 месяцев, как Вы и написали в этой статье.


    1. AlxDr
      19.04.2019 10:55

      Outline предназначен только для выхода в Интернет, т.е. работает как обычный коммерческий VPN — и всё.

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


  1. tarandro
    18.04.2019 09:01

    У wireguard'а есть одна проблема: если указать на сервере пиру в AllowedIps 0.0.0.0/0, то будет ходить мультикаст, но остальные клиенты не смогут подключиться, а если указать конкретный IP, то подключиться сможет много клиентов, но к ним не будет ходить мультикаст.

    На своем сервере пришлось создать два интерфейса: один для домашнего роутера, чтобы ospf работал, другой — для телефонов/ноутбуков.


    1. pprometey Автор
      18.04.2019 09:05

      Благодарю, полезное уточнение. Хотя надо еще «поиграться» с этим конечно. Поднять несколько тестовых конфигураций. Я лично еще не сталкивался с такими ограничениями.


      1. almuerto
        18.04.2019 09:51
        +1

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


        1. tarandro
          18.04.2019 10:54

          А BGP разве не через мультикаст ходит? Давно с этим разбирался, но вроде бы все это семейство протоколов работало очень похоже


          1. Gutt
            18.04.2019 12:14

            BGP для своих сообщений использует юникастный TCP. Главная идея в том, что пиры чаще всего не находятся в одном бородкаст-домене. А OSPF — да, мультикастит.


            1. tarandro
              18.04.2019 12:38

              Тогда да, можно пробовать и тестить
              Хотя вроде бы BGP сильно сложнее настраивать


    1. begemoth3663
      18.04.2019 16:59

      У wireguard'а есть одна проблема: если указать на сервере пиру в AllowedIps 0.0.0.0/0, то будет ходить мультикаст

      мультикаст?
      в амазоне?
      вы шутите?


      1. tarandro
        18.04.2019 18:10

        Какая разница, амазон или кто-то еще, если мы говорим про туннель?


  1. tuxi
    18.04.2019 09:28
    +2

    Спасибо за подробное толковое описание настроек.
    Будем надеяться, что нам не отключат оплату картами. Это будет один из самых действенных методов по части борьбы с VPN имхо.


  1. Evgenym
    18.04.2019 09:43
    -1

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

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

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


    1. vconst
      18.04.2019 10:25
      +2

      Если вы пишете статью, ориентированную на людей «далеких от ИТ», то было бы здорово добавить информацию о том…
      Мне кажется, это совсем отдельная тема и лучше найти мануал конкретно по ней, чем превращать эту статью в глобальный справочник по AWS.


    1. pvsur
      18.04.2019 12:02

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


      Вопрос безопасности осветить нужно обязательно, 12к$ не шутки.


    1. Vinchi
      18.04.2019 17:21

      Эта статья точно не для людей далеких от ИТ, скорее для опытных пользователей. Далеким точно не стоит свой разворачивать а просто купить или найти бесплатный.


  1. samhuawey
    18.04.2019 09:56
    -4

    > git clone github.com/pprometey/wireguard_aws.git wireguard_aws

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

    Статья написана таким языком что ясно что домохозяйка в исходниках копаться точно не будет. Если там конечно исходники, а не заобфусцированный бинарник.


    1. pprometey Автор
      18.04.2019 10:02

      Таких целей не преследую. Да и майнинг нынче дело неблагодарное. Да даже если бы и благодарное было бы. Тем и хорош opensource что всегда можно проинспектировать код. Шила в мешке не утаишь.


    1. pprometey Автор
      18.04.2019 10:05

      Кстати, спасибо что помогли найти ошибку. Тут другой репозиторий должен быть github.com/isystem-io/wireguard-aws. Забыл исправить.


  1. GritsanY
    18.04.2019 10:11

    Ни у кого не возникло проблем с оплатой? У меня Visa Virtuon, которой давно оплачиваю всё в интернете, интернет-транзакции на ней открыты. Пробные 1-долларовые снятия в Плэй маркете или Апп сторе проходят всегда. А AWS не смог снять.


  1. vconst
    18.04.2019 10:24
    +1

    Почему именно Wireguard? Чем он лучше обычного и привычного OpenVPN? Хоть в двух словах расскажите об особенностях этого сервиса.
    Не понял, зачем надо было клонировать git? На сайте проекта есть репозиторий, его можно подключить и устанавливать обычным способом, через apt-get.

    Рекомендую все до 4 пункта — убрать под спойлер, ибо там все совсем для домохозяек. Ясное дело, это тоже полезно, но на этом ресурсе, скорее не обязательно. Если кто даст ссылку на статью далекому от всего этого человеку — то подробный мануал он найдет под спойлером, а если человек в теме, он не будет скроллить простыню скринов.

    Ну или сделайте оглавление и расставьте якоря по статье.


    1. tarandro
      18.04.2019 10:56
      +4

      Я для себя решил использовать wireguard вместо openvpn, потому что нет долгого хендшейка.
      То есть при переходе с LTE на WiFi и обратно телефон просто продолжает работать.
      В случае с OpenVPN получается соединение секунд на 15.

      Да, еще значительно меньшая нагрузка на проц. После подключения wireguard телефон стал разряжаться на 10% в день больше. OpenVPN отжирал 30-40%


      1. vconst
        18.04.2019 10:59

        Странно… Я на разных виртуалках поднимал ОпенВПН, в разных странах и разных системах. 15 секунд это очень долго, проблема не в ОпенВПН, надо искать в другом месте.

        Только что проверил на смарте. К DO, в данный момент, коннектится секунды 4 и это долго по моему, к ITLDC меньше секунды и это нормально.


        1. tarandro
          18.04.2019 11:02

          Может быть настройка у меня не оптимальна, но wireguard даже секунды не дает :)
          Плюс скорость все же чуток повыше, чем через ovpn (хоть и не в разы)


          1. vconst
            18.04.2019 11:05

            Так я же написал, что коннект меньше чем за секунду — это норма для ОпенВПН. Скорость больше всего на Shadowsocks, там сервис меньше грузит процессор.

            Вопщем, выбор странный и мне, как не специалисту — непонятен. Клиент для ОпенВПН откуда угодно можно скачать, все привычно и стандартно.


            1. tarandro
              18.04.2019 11:15

              А можно клиентский конфиг ovpn? У меня вот такой

              dev tap
              tls-client
              client
              resolv-retry infinite
              redirect-gateway def1
              nobind
              ca ca.crt
              cert cert.crt
              key cert.key
              tls-auth ta.key 1
              comp-lzo
              ns-cert-type server
              verb 3
              cipher AES-128-CBC


              1. vconst
                18.04.2019 11:20

                Как-то так:

                Заголовок спойлера
                client
                dev tun
                proto udp
                sndbuf 0
                rcvbuf 0
                remote 195.***.***.*** 1194
                resolv-retry infinite
                nobind
                persist-key
                persist-tun
                remote-cert-tls server
                auth SHA512
                cipher AES-256-CBC
                comp-lzo
                setenv opt block-outside-dns
                key-direction 1
                verb 3
                -----BEGIN CERTIFICATE-----

                -----END CERTIFICATE-----

                Certificate:
                Data:
                Version: 3 (0x2)
                Serial Number:

                Signature Algorithm: sha256WithRSAEncryption
                Issuer: CN=ChangeMe
                Validity
                Not Before: Apr 20 10:02:29 2018 GMT
                Not After : Apr 17 10:02:29 2028 GMT
                Subject: CN=itlds-01
                Subject Public Key Info:
                Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:

                Exponent: 65537 (0x10001)
                X509v3 extensions:
                X509v3 Basic Constraints:
                CA:FALSE
                X509v3 Subject Key Identifier:

                X509v3 Authority Key Identifier:

                DirName:/CN=ChangeMe

                X509v3 Extended Key Usage:
                TLS Web Client Authentication
                X509v3 Key Usage:
                Digital Signature
                Signature Algorithm: sha256WithRSAEncryption

                -----BEGIN CERTIFICATE-----

                -----END CERTIFICATE-----

                -----BEGIN PRIVATE KEY-----

                -----END PRIVATE KEY-----

                <tls-auth>
                #
                # 2048 bit OpenVPN static key
                #
                -----BEGIN OpenVPN Static key V1-----

                -----END OpenVPN

                Static key V1-----
                </tls-auth>


                1. tarandro
                  18.04.2019 11:28

                  На телефоне сейчас не настроено, на ноуте подключение шло 9 секунд. Судя по логу подключения дольше всего выполняется client.up скрипт (7 секунд).


                  1. vconst
                    18.04.2019 11:31

                    А не настоящий сварщик, вот конкретно этот конфиг сгенерен одним из скриптов, которые разворачивают ОпенВПН в Докере. Образ и скрипт качал с Гитхаба. Коннектится меньше секунды, детальные логи не смотрел.


    1. Teomit
      18.04.2019 11:31
      +1

      Почему именно Wireguard? Чем он лучше обычного и привычного OpenVPN?

      Тут есть ответы: https://habr.com/en/post/432686/


      1. vconst
        18.04.2019 11:32

        О Интересно, как я это пропустил. Спасиб, сейчас почитаю )


  1. md_pitbul
    18.04.2019 10:28
    -1

    Мне кажется, что люди, далекие от ИТ, ничего не смогут сделать по этому ману, да все понятно и подробно, но слишком он большой и нифига не юзерфрендли.
    Я бы предложил, для людей далеких от ИТ, использовать protonVPN.
    Бесплатный, рекламы нет, в плане проблем с безопасностью пока не засветился, ну и для работы надо просто поставить приложение и нажать кнопку Connect.
    это действительно юзерфрендли.


    1. vconst
      18.04.2019 10:41

      Проблема в том, что подобные публичные сервисы уже кошмарят во всю. А свой собственный VPN крутится на виртуалке и никто к нему не докопается. У меня один VPN на DO еще с 12 года работает, все лишнее там закрыто, система и сервис не обновлялся уже несколько лет — но пашет без единой проблемы.


    1. caveeagle
      18.04.2019 10:49

      Ну, заблокировать proton крайне просто — он на узком диапазон ip сидит, и нигде кроме vpn и шифрованных мейлов не используется. Как только появится достаточное количество клиентов, его просто заблочат вместе с protonmail. А амазон — наоборот, заблочить не получилось — разблокировали после жалоб.


      1. md_pitbul
        18.04.2019 10:51

        полностью с вами согласен, но я говорил о том что для людей далеких от ИТ этот ман, к сожалению, ничем не поможет.


        1. dragoangel
          19.04.2019 16:28

          Далёкие люди не сидят на хабре.


          1. vconst
            19.04.2019 16:37

            Человек не с Хабра — может нагуглить этот мануал. Индексируется он только в путь и ранжируется в выдаче высоко.


            1. dragoangel
              21.04.2019 00:35
              +1

              Далекие люди не будут гуглить как поднять свой VPN, а если все таки нагуглят, то наверное это реально самый простой мануал по настройке VPN сервера.


  1. 4ekin
    18.04.2019 10:44
    +1

    В пунктах 2.2.4, 2.2.5 и 2.2.7 забыли замазать свой адрес.


    1. pprometey Автор
      18.04.2019 11:52

      Вот спасибо. Как ни старался все замазать, все равно проглядел! Придется теперь выделять другой адрес и переконфигурировать wireguard


  1. akokarev
    18.04.2019 10:59
    -3

    Как уже выше писали, заблокируют амазон и опять это вас не спасет от блокировок. Так что решение сомнительное. К тому же вы палите все свои персональные данные амазону. Где гарантия, что амазон не предоставит их по запросу правоохранительных органов РФ?


    Скорость даже до 20Мбит не дотягивает… смешно! Ну а чего вы хотели за бесплатно?


    Не те цели вы себе поставили. Хотите бороться с блокировками? — вступайте в Пиратскую Партию России (вход бесплатный), участвуйте в митингах, да хоть в спорт-лото пишите… хоть как-то проявляйте свою гражданскую позицию!


    На счет способов обхода блокировок РКН: сам по себе обход блокировки уже является противозаконным действием и за это могут привлечь (статью ищите сами, если не найдете, ожидайте что привлекут за создание и распространение вредоносного ПО, как это уже было с разработчиком хака для 1С). Так что если уж нарушать, так нарушать — качай [удалено], ломай забугорные роутеры, включай VPN на них — скорость, анонимность, бесплатно, не попадает в массовые блокировки, проще чем поднять AWS. Кстати обойтись можно и без хак-утилит, уже все взломано на 3wifi и Shodan.


    1. begemoth3663
      18.04.2019 17:05

      К тому же вы палите все свои персональные данные амазону.

      ув. кул-хацкер уверен, или просто так: абы набросить?


      1. akokarev
        18.04.2019 19:02

        Уверен. Скрин морды регистрации для ленивых:
        image
        А так же советую почитать agreement по ссылке из чекбокса, который всегда надо отмечать не читая.
        За обращение «ув.» я так и быть переведу для вас первые два подпункта гугл-переводчиком:

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

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

        Под законами может пониматься в том числе местное законодательство (обрати внимание на п.4.2). Под платежной формой понимается счет в банке, по которому вас смогут идентифицировать.
        Еще советую обратить внимание на п.7.2b(ii)C, исходя из которого можно сделать вывод, что с правительствами они сотрудничают, в отличае от Telegram.


        1. akokarev
          18.04.2019 19:07

          Для минусующих советую прочитать таки agreement хотя бы раз в жизни, чтоб иметь хотябы предсталение о чем там пишут.
          После прочтения задайте себе пару вопросов:
          1. Может ли AWS получить доступ к ключам шифрования и вскрыть весь траффик?
          2. Может ли AWS передать полученные данные по запросу правоохранительных органов?


          1. samhuawey
            19.04.2019 11:21

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


  1. hMartin
    18.04.2019 11:04

    Я где-то слышал, что AWS и GCP могут чарджнуть по факту выжранных ресурсов по самое не хочу. От их использования останавливало только это. Можно как-то залимитить, чтобы с меня не могли списать лишнего? что если я привяжу виртуалку с небольшим балансом?


    1. vconst
      18.04.2019 11:06

      Можно настроить алерты по куче параметров, я настроил на бабло, если у меня расходы на AWS превышают 5 баксов — он мне кричит в мейл.


      1. akokarev
        18.04.2019 11:12

        Если расходы превышают 5 баксов на 995 баксов алерт будет бесполезен.


        1. vconst
          18.04.2019 11:14
          -2

          И каким образом можно попасть на килобакс при работе в бесплатных лимитах ФриТир? Конечно аккаунт могут мзломать и повесить туда майнера на ГПУ, но реально то что должно произойти в ВПС?


          1. akokarev
            18.04.2019 19:17

            И каким образом можно попасть на килобакс при работе в бесплатных лимитах ФриТир?
            Вы карту привязали при регистрации? Чекбокс на agreement поставили?
            Вариант 1, на карте есть килобакс: Списание производится не сразу, а например раз в сутки. За сутки набежало траффика/нагрузки на килобакс, списали. Виртуалок на одном аккаунте может быть много.
            Вариант 2, на карте нет килобакса, но он есть на соседнем счету: Подадут в суд Люксембурга, выиграют дело, претензию передадут ваш банк, банк спишет в их пользу.


          1. lev
            18.04.2019 19:30
            +1

            В AWS платный трафик, так что даже «бесплатная» виртуалка может накачать неплохо. Ломанут, утекут ключи или ещё какая-нить беда может приключиться.


  1. pvsur
    18.04.2019 11:04

    Еще хочу сказать, что в метрошном wifi (Москва) после рекламного переподключения любой vpn кроме как через tcp 80/443 отваливается минут через 10. Да и в публичных wifi разных организаций часто блочат все порты кроме 80 и 443.


    1. vconst
      18.04.2019 11:07

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


  1. ss-nopol
    18.04.2019 12:15
    +1

    А можно ещё подробно написать, где и как можно попасть на деньги при этом подходе? Не снимут ли деньги по истечении года? Какие ещё могут быть засады?


    1. pprometey Автор
      18.04.2019 12:19

      Да, я видимо не уделил должного внимания этому вопросу. Так как сам во время использования AWS заплатил непредвиденные затраты на сумму чуть меньше доллара.
      Как уже сказали выше, зарезервировал Elastic IP для второго инстанса, а машину остановил. И за простой Elastic IP пришлось заплатить несколько центов. Плюс иногда забывал отключать на телевизионной приставке соединение (в Казахстане частенько Youtube и Facebook по вечерам блочат) и в итоге превышал к концу месяца лимит в 15 Gb, и пару центов тоже счета выставляли.


    1. pprometey Автор
      18.04.2019 12:21

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

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


      1. vconst
        18.04.2019 12:42

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


        1. pprometey Автор
          18.04.2019 13:43

          Я про клиент и имел ввиду. Инстанс останавливать нельзя, иначе пойдут счета за аренду неиспользуемого Elastic IP


          1. Bonio
            18.04.2019 15:58

            Нафиг такую халяву. Всего на год, с ограничениями, с палевом своих данных еще и с риском попасть на деньги. Проще нормальный недорогой vps найти.


            1. pprometey Автор
              19.04.2019 14:48

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


              1. vconst
                19.04.2019 15:13

                Это только кажется, что бесплатный год — долго. На самом деле пойдёт он достаточно быстро и начнётся поиск, где ближе и дешевле. Причём, Амазон не так давно снизил цены, а 5-6 при назад их самый простой инстанс стоил дороже, чем у DO.


                1. pprometey Автор
                  19.04.2019 17:59

                  Да, согласен. Год пролетит и не заметишь. Так и произошло. Вроде недавно настроил. А уже год к концу подходит. Но у меня есть еще Google Cloud и Azure. Еще 2 года в запасе.


  1. samhuawey
    18.04.2019 12:54
    -5

    Не знаю, почему минусуют, но статья очень похожа на работу современного отдела профилактики правонарушений одной из среднеазиатских стран. По сути весь трафик пользователя, который ему хотелось бы скрыть, пойдёт через софт никому не известного происхождения, выложенный на публичный хост. Что может быть проще внедрить пару зависимостей хотя бы как патч — и забирай домохозяйку прямо в фартуке готовенькую, дела шить не надо, достаточно логов и карточки.

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


    1. jryj
      18.04.2019 13:14

      типа, сделай так, и сможешь нарушать закон как угодно


      Обход блокировки не считается нарушением закона.

      А нарушать закон не стоит в любом случае. С ВПН или без него.


    1. pprometey Автор
      18.04.2019 13:44

      Wireguard написал известный профессионал в области информационной безопасности. Прочитай про это него.


  1. lyadnov
    18.04.2019 13:34

    1. Могу еще добавить, что в качестве карты лучше использовать виртуальную на которой небольшая сумма денег (100руб), и в случае ошибки больше этой суммы — не спишется.
    2. Через год финт с бесплатным vpn можно повторить. Для этого:
    — я перевыпустил виртуальную карту, чтобы номер изменился (в яндекс-деньгах это бесплатно, но аккаунт должен быть идентифицированный)
    — зарегистрировал новый аккаунт в amazon (c новой симки + новый e-mail, но не факт что новая симка необходима)
    3. Чтобы меньше зависеть от elastic-ip адреса, который меняется как минимум раз в год, можно зарегать бесплатный домен в tk-зоне (dot.tk) и раздавать друзьям\родственникам vpn\proxy по доменному имени, а не ip-адресу. Эти tk-домены бесплатны 1 год, но за 2 недели до окончания срока, можно заходить в личный кабинет и продливать еще на год бесплатно.


  1. isqwonder
    18.04.2019 13:44

    Удобный образ готового OpenVPN:
    www.turnkeylinux.org/openvpn


    1. pprometey Автор
      18.04.2019 13:48

      У меня раньше на AWS именно OpenVPN крутился. Но он менее удобен и быстр чем Wireguard. К тому же поехал в Египет — а там его детектят на раз, и блокируют. После этого и решил перейти на Wireguard.
      Можно сказать даже что OpenVPN — это устаревшая технология. Но если и использовать, то уж лучше тогда не образ, я поднимал так же автоматически с помощью скрипта github.com/redgeoff/openvpn-server-vagrant


      1. dartraiden
        18.04.2019 15:50

        Клиент Wireguard ещё очень хорош на мобильных устройствах (если ядро собрано с его поддержкой). Он меньше расходует заряд аккумулятора.


  1. jahr
    18.04.2019 16:18
    +1

    Почему не использовать streisand? Он позволяет запустить WireGuard, OpenConnect, OpenSSH, OpenVPN, Shadowsocks, sslh, Stunnel, Tor bridge на Amazon Web Services (AWS), Microsoft Azure, Digital Ocean, Google Compute Engine (GCE), Linode, Rackspace, добавлять и удалять пользователей, показывать пользователям инструкции по настройке подключения к конкретным сервисам и т.п.)


    1. vconst
      18.04.2019 16:22

      Кстати да. Отличный набор и удобно настраивается.


    1. pprometey Автор
      19.04.2019 06:22

      Ну вот спасибо. Благодаря этому посту узнал о такой классной штуке.


  1. aborouhin
    18.04.2019 17:19

    Какие-то у Вас совсем грустные пинги до Европы… Но в любом случае, из Ваших speedtest'ов я выбрал бы Франкфурт, а не Лондон, т.к. с ним latency меньше, а при увеличении latency скорость внутри тоннеля падает просто катастрофически.

    В Вашем случае, т.к. скорость до VPN-сервера сама по себе не велика, это может быть незаметно, но если условия позволяют рассчитывать хотя бы на 50-100 Мбит/с — то тут каждые 10 мс пинга очень сильно меняют картинку. Хотя Wireguard в этом случае заметно лучше OpenVPN справляется, да.


  1. roller
    18.04.2019 18:05

    Какая-то жесть. github.com/trailofbits/algo для кого сделали? Все заработает из каропки, в том числе профили IPSec для windows 10


  1. dormin
    18.04.2019 18:37

    Использование wg-quick не кошерно для информационной безопасности. И если есть постоянный IP дома, то лучше указать его при настройках открытия портов вместо 0.0.0.0/0. При наличии доступа к аккаунту AWS при необходимости это легко меняется.
    Лучше все реализовывать через Ansible, как это сделали в Streisand.
    Про ElasticIP уже написали, но не упомянули про хороший сервис AWS Instance Scheduler позволяющий настроить запуск и остановку инстанса. При этом Вы можете держать до 3 инстансов в бесплатной версии AWS, запуская их с соблюдением условия общего времени работы 750 час. в месяц. Ну и еще один плюс при выключении и включении IP адрес AWS инстанса меняется, но доменное имя остается.


  1. Amistad
    18.04.2019 19:37

    Для тех кто не понял шутки автора про Nur-Sultan:


    1. pprometey Автор
      19.04.2019 19:37

      Это конечно да, но я вот с этого упал под стол, правда чтобы это понять, надо быть казахом, или прожить жизнь в Казахстане


    1. pprometey Автор
      19.04.2019 20:00

      И с этого тоже, понятно не только казахам


  1. pop70
    18.04.2019 20:56

    А почему не softether?


    1. pprometey Автор
      18.04.2019 20:58

      А чем он лучше Wireguard?


      1. pop70
        18.04.2019 21:47

        Куча протоколов, включая свой, пробивает любой NAT (хоть сервер за NAT ставь), штатные клиенты на андроиде и винде, возможность косить под https…
        ГУёвая настройка (виндовая утилитка)…
        Ставится на любой утюг легко и просто…


        1. vconst
          19.04.2019 13:04

          На Андроиде у него есть только обычный ОпенВПН без плюшек.


          1. pop70
            19.04.2019 13:22

            l2tp/ipsec штатным андроидовским клиентом цепляется.
            Хотя, пройдёт ли он через нат на стороне сервера — не знаю — скорее всего нет.
            А… ну да. без софтового клиента «родной» протокол по 443 порту не прокатит.
            Но всёравно 2 варианта — либо openvpn, либо l2tp/ipsec
            Но вообще после openvpn, softether мне показался куда проще и приятнее и в установке, и в настройке.
            Вообще на распберри чуть ли ни первой модели, на 4г флешки крутится дома. А тут — целая бубунта и 30 г диска.


            1. vconst
              19.04.2019 13:30

              Софтэзер странно развивается, официально не поддерживается даже Убунту и установка там костыльно-велосипедная из исходников. ОпенВПН — самый обычный apt-get из репозитория, на любой системе, плюс куча готовых скриптов, много готовых предустановленных образов у облачных провайдеров, докерных контейнеров и тд тп тд тп.

              А клиент на Андроиде обычный — ОпенВПН у обоих сервисов.


        1. alexmdotru
          19.04.2019 14:51

          Подскажите, пожалуйста, как клиент и сервер будут соединяться, если оба за NATом?


          1. pprometey Автор
            19.04.2019 14:51

            Если сервер за NAT, можно настроить проброс портов.


          1. pop70
            19.04.2019 15:06

            Через «облачный релей», насколько я понял.
            Сервер и клиент коннектятся к удалённому серверу, и гонят шифрованный трафик через него.


  1. Brain_Overload
    18.04.2019 20:57

    я честно не земетил преимуществ скорости WireGuard над OpenVPN которое вроде как должно быть, но тут видимо aruba виновата) а вот установка и настройка много удобнее как по мне
    в итоге и то и то держу, ибо роутер не умеет ничего вроме OpenVPN(


    1. pprometey Автор
      18.04.2019 20:57

      OpenWRT имеет пакет Wireguard


      1. Brain_Overload
        19.04.2019 09:10

        да просто нет смысла его шить уже, менять надо (ибо только 2,4 и тд), вот перееду в скором времени, так сразу)


  1. ligor
    18.04.2019 20:58

    Уже давно не возвращают 1$ (года 2 как, хотя конечно если через год когда начнете платить то и вычтут — не доходил до этого этапа). Но все равно, 1 бакс за год использования пусть и слабеньким но ВПС — оно того стоит.


  1. darkAlert
    18.04.2019 21:43

    А как VPN поможет против DPI, который собрались вводить уже осенью?


    1. pprometey Автор
      19.04.2019 06:20

      На хабре есть пост, возможные решения. Маскировать VPN тоннель под другие разрешенные соединения.


      1. darkAlert
        19.04.2019 13:41

        надеюсь что поможет. А то у меня подписка к tunelBear скоро заканчивается, вот думаю — продлять или нет )


  1. Gribs
    19.04.2019 04:10

    Эммм, у меня есть смутное подозрение что этот конфиг не защищает от ipv6 утечки, когда провайдер вам дает еще и ipv6 адрес, и весь трафик уходит туда, а не в ipv4 туннель.


    1. pprometey Автор
      19.04.2019 17:49

      Хотел настроить, это не так сложно, AWS мне не дал настроить ipv6 на уровне бесплатного использования, хотя это может я туплю.


      1. constb
        22.04.2019 12:47

        настройка ipv6 на aws возможна, но кнопки «вкл» для этого нет :)


        во-первых, ipv6 надо добавить в виртуальную сеть (vpc), в которой размещена машинка.


        а) открываем отдельную консоль VPC (сверху services -> network and management -> vpc), потом б) идём в Your VPCs, выбираем свою сеть и нажимаем Actions -> Edit CIDRs. скорее всего там будет ipv4-сеть и для ipv6 будет 1 remaining рядом с кнопкой Add. в) жмём Add и получаем сеть /56


        в этом месте думаем о том что ipv6-адреса у машинок всегда фиксированные и всегда публичные – то есть если на машинке есть что-то чувствительное и нет фаервола – через ipv6 туда смогут ходить все желающие…


        после того как сетка выделена на сеть, её нужно раскидать на подсетки по AZ, идём в Subnets – тут можно «обработать» все subnets или только те, в которых запущены машинки (если лень :) ). так что г) выбираем subnet и жмём actions -> edit ipv6 cidrs. скорее всего там тоже будет 1 remaining. нажимаем Add – указываем числовой префикс (например 00) и получаем /64 на конкретный subnet. д) опять выбираем этот subnet и жмём actions -> modify auto-assign ip settings. там ставим галку чтобы автоматом назначать ipv6 всем новым машинкам, этот пункт опционален. теперь надо поставить ipv6 на маршрутизацию в интернет – е) выбираем слева route tables, выбираем табличку для своей vps и жмём actions -> edit routes, там жмём add route и указываем ::/0 в destination и в target копируем igw тот же что для ipv4-маршрута.


        на этом настройка vpc закончилась, но уже запущенная машинка стоит без ipv6-адреса. ж) возвращаемся в ec2-консоль, выбираем машинку и жмём actions -> networking -> manage ip addresses. там в блоке ipv6 addresses нажимаем assign new ip и в поле оставляем auto-assign. нажимаем yes, update, закрываем диалог и – квест завершён! всем спасибо за внимание :)


  1. Solocn
    19.04.2019 06:21

    Скажите пожалуйста, если отойти от рекламы где и как купить VPN, то не легче ли будет просто с помощью putty, или уже в установленном по дефолту в windows 10 pro клиенте ssh, подключиться по ssh с поднятием туннеля, и уже в туннель(в локальный порт) заворачивать свои приложения на компьютере, отдельный трафик, разве так не легче, (ведь тогда никакие дополнительные настройки VPN вообще не требуются)?


    1. DaemonGloom
      19.04.2019 09:02

      Далеко не все программы умеют работать с socks-proxy, который вы предлагаете в своём варианте. Ещё меньше таких программ заработают на телефоне/телевизоре/прочих устройствах. Особенность полноценного VPN ещё и в том, что его можно перенести на роутер и получить желаемый результат на всех устройствах в сети.


  1. mikserok
    19.04.2019 09:51

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


    1. pprometey Автор
      19.04.2019 09:51

      Вмешательство в выборы, в США, пригожинских троллей — это не подозрение а уже доказанный факт. Сам Пригожин — работает на одного мужчину с пониженной социальной ответственностью, известного под кличками «окурок\моль\][уйло»
      И таки да, заблокирует, если действительно тролль.


  1. NeverMoreLight
    19.04.2019 17:42

    А какой лимит датацентов/виртуалок в бесплатной подписке? Могу ли я запустить дополнительную виртуалку в другом датацентре? Будет ли за это взиматься допплата?


    1. pprometey Автор
      19.04.2019 17:45

      750 часов бесплатных часов в месяц/ 24 часа = 31.25 дней может работать одна виртуалка бесплатного уровня.
      Можно запускать хоть 10 виртуалок бесплатного уровня в разных датацентрах, но главное чтобы их совокупное время работы не превышало 750 часов.
      Выше говорили о планировщике AWS, можно его настроить чтобы автоматом инстансы включались и отключались, и чтобы их общее время работы не превысило 750 часов.


  1. arheops
    20.04.2019 23:27
    +1

    У амазона можно через curl интерфейс узнать внешние и внутренние адреса машинки.

    Тоесть можно это просто добавить в скрипт и не заставлять пользователя разбираться.

    Вот тут описано как
    stackoverflow.com/questions/38679346/get-public-ip-address-on-current-ec2-instance


    1. pprometey Автор
      21.04.2019 06:11

      Вот спасибо. Учту в следующей версии обязательно. Век живи, век учись.


  1. armid
    22.04.2019 12:35

    pprometey С чего можно начать дебажить если почему то не подключается не с телефона, не с компьютера?