С нарастващата цензура на интернет от авторитарни режими, все повече полезни интернет ресурси и сайтове се блокират. Включително техническа информация.
По този начин става невъзможно пълноценното използване на интернет и се нарушава основното право на свобода на словото, залегнало в Всеобща декларация за правата на човека.
Член 19
Всеки има право на свобода на мнение и изразяване; това право включва свободата да се придържате към мнение без намеса и да търсите, получавате и разпространявате информация и идеи чрез всякакви медии и независимо от границите
В това ръководство ще внедрим нашия собствен безплатен софтуер* в 6 стъпки. VPN услуга въз основа на технологията Тел предпазител, в облачна инфраструктура Amazon Web Services (AWS), използвайки безплатен акаунт (за 12 месеца), на инстанция (виртуална машина), управлявана от Ubuntu сървър 18.04LTS.
Опитах се да направя това ръководство възможно най-приятелско за хората, които не са ИТ специалисти. Единственото, което се изисква е постоянство в повтарянето на описаните по-долу стъпки.
Регистрирането на безплатен акаунт в AWS изисква реален телефонен номер и валидна кредитна карта Visa или Mastercard. Препоръчвам да използвате виртуални карти, които се предоставят безплатно Yandex или портфейл qiwi. За да проверите валидността на картата, по време на регистрацията се удържа 1 $, който по-късно се връща.
1.1. Отваряне на конзолата за управление на AWS
Трябва да отворите браузър и да отидете на: https://aws.amazon.com/ru/
Кликнете върху бутона "Регистрация".
1.2. Попълване на лични данни
Попълнете данните и кликнете върху бутона "Продължи".
1.3. Попълване на данни за контакт
Попълнете информация за контакт.
1.4. Посочване на информация за плащане.
Номер на картата, срок на валидност и име на картодържателя.
1.5. Подтверждение на акаунта
На този етап телефонният номер се потвърждава и 1 $ се дебитира директно от платежната карта. На екрана на компютъра се показва 4-цифрен код и посоченият телефон получава обаждане от Amazon. По време на разговор трябва да наберете кода, показан на екрана.
1.6. Избор на тарифен план.
Изберете - Основен план (безплатно)
1.7. Влезте в конзолата за управление
1.8. Избор на местоположението на центъра за данни
1.8.1. Тестване на скоростта
Преди да изберете център за данни, се препоръчва да го тествате https://speedtest.net скорост на достъп до най-близките центрове за данни, в моето местоположение следните резултати:
Сингапур
Париж
Франкфурт
Стокхолм
Лондон
Центърът за данни в Лондон показва най-добри резултати по отношение на скоростта. Затова го избрах за по-нататъшно персонализиране.
2. Създайте екземпляр на AWS
2.1 Създайте виртуална машина
2.1.1. Избор на тип инстанция
По подразбиране е избран екземплярът t2.micro, което е това, от което се нуждаем, просто натиснете бутона Следва: Конфигуриране на подробности за екземпляра
2.1.2. Задаване на опции за екземпляр
В бъдеще ще свържем постоянен публичен IP към нашия екземпляр, така че на този етап изключваме автоматичното присвояване на публичен IP и натискаме бутона Следващ: Добавяне на хранилище
2.1.3. Връзка за съхранение
Посочете размера на "твърдия диск". За нашите цели 16 гигабайта са достатъчни и натискаме бутона Следва: Добавете етикети
2.1.4. Настройване на етикети
Ако създадохме няколко екземпляра, тогава те могат да бъдат групирани по тагове, за да се улесни администрирането. В този случай тази функционалност е излишна, веднага натиснете бутона Следващ: Конфигуриране на група за сигурност
2.1.5. Отваряне на портове
В тази стъпка конфигурираме защитната стена, като отворим необходимите портове. Наборът от отворени портове се нарича група за сигурност. Трябва да създадем нова група за сигурност, да й дадем име, описание, да добавим UDP порт (Custom UDP Rule), в полето Rort Range трябва да зададете номер на порт от диапазона динамични портове 49152-65535. В този случай избрах номер на порт 54321.
След като попълните необходимите данни, щракнете върху бутона Преглед и стартиране
2.1.6. Преглед на всички настройки
На тази страница има преглед на всички настройки на нашия екземпляр, проверяваме дали всички настройки са наред и натискаме бутона Стартиране
2.1.7. Създаване на ключове за достъп
След това идва диалогов прозорец, който предлага или да създадете, или да добавите съществуващ SSH ключ, с който по-късно ще се свържем дистанционно с нашия екземпляр. Избираме опцията „Създаване на нова двойка ключове“, за да създадем нов ключ. Дайте му име и щракнете върху бутона Изтеглете двойка ключовеза изтегляне на генерираните ключове. Запазете ги на сигурно място на вашия локален компютър. След като го изтеглите, щракнете върху бутона. Стартиране на екземпляри
2.1.7.1. Запазване на ключове за достъп
Тук е показана стъпката за запазване на генерираните ключове от предишната стъпка. След като натиснахме бутона Изтеглете двойка ключове, ключът се записва като файл със сертификат с разширение *.pem. В този случай аз му дадох име wireguard-awskey.pem
2.1.8. Преглед на резултатите от създаването на екземпляр
След това виждаме съобщение за успешното стартиране на екземпляра, който току-що създадохме. Можем да отидем до списъка с нашите инстанции, като щракнете върху бутона прегледайте екземпляри
2.2. Създаване на външен IP адрес
2.2.1. Стартиране на създаването на външен IP
След това трябва да създадем постоянен външен IP адрес, чрез който ще се свържем с нашия VPN сървър. За да направите това, в навигационния панел в лявата част на екрана изберете елемента Еластични IP адреси от категория МРЕЖА И СИГУРНОСТ и натиснете бутона Определете нов адрес
2.2.2. Конфигуриране на създаването на външен IP
В следващата стъпка трябва да активираме опцията басейн на Amazon (активирано по подразбиране) и щракнете върху бутона Разпределяне
2.2.3. Преглед на резултатите от създаването на външен IP адрес
Следващият екран ще покаже външния IP адрес, който сме получили. Препоръчително е да го запомните, а по-добре дори да го запишете. това ще бъде полезно повече от веднъж в процеса на по-нататъшно настройване и използване на VPN сървъра. В това ръководство използвам IP адреса като пример. 4.3.2.1. След като въведете адреса, натиснете бутона Близо
2.2.4. Списък с външни IP адреси
След това ни се представя списък с нашите постоянни публични IP адреси (elastics IP).
2.2.5. Присвояване на външен IP адрес на инстанция
В този списък избираме получения IP адрес и натискаме десния бутон на мишката, за да изведем падащо меню. В него изберете елемента адрес на сътрудникза да го присвоите на инстанцията, която създадохме по-рано.
2.2.6. Външна настройка за присвояване на IP
В следващата стъпка изберете нашето копие от падащия списък и натиснете бутона Сътрудник
2.2.7. Преглед на резултатите от външно IP присвояване
След това можем да видим, че нашето копие и неговият частен IP адрес са обвързани с нашия постоянен публичен IP адрес.
Сега можем да се свържем с нашето новосъздадено копие отвън, от нашия компютър чрез SSH.
3. Свържете се с екземпляр на AWS
SSH е защитен протокол за дистанционно управление на компютърни устройства.
3.1. Свързване чрез SSH от компютър с Windows
За да се свържете с компютър с Windows, първо трябва да изтеглите и инсталирате програмата Putty.
3.1.1. Импортиране на частен ключ за Putty
3.1.1.1. След като инсталирате Putty, трябва да стартирате помощната програма PuTTYgen, която идва с него, за да импортирате ключа на сертификата във формат PEM във формат, подходящ за използване в Putty. За да направите това, изберете елемента в горното меню Конверсии->Импортиране на ключ
3.1.1.2. Избор на AWS ключ във формат PEM
След това изберете ключа, който преди това запазихме в стъпка 2.1.7.1, в нашия случай неговото име wireguard-awskey.pem
3.1.1.3. Задаване на ключови опции за импортиране
На тази стъпка трябва да посочим коментар за този ключ (описание) и да зададем парола и потвърждение за сигурност. Ще бъде поискано всеки път, когато се свържете. По този начин ние защитаваме ключа с парола от неподходяща употреба. Не е нужно да задавате парола, но е по-малко сигурно, ако ключът попадне в неподходящи ръце. След като натиснем бутона Запазване на частния ключ
3.1.1.4. Запазване на импортиран ключ
Отваря се диалогов прозорец за запазване на файл и запазваме личния си ключ като файл с разширение .ppkподходящ за използване в програмата Putty.
Посочете името на ключа (в нашия случай wireguard-awskey.ppk) и натиснете бутона Запазва.
3.1.2. Създаване и конфигуриране на връзка в Putty
3.1.2.1. Създайте връзка
Отворете програмата Putty, изберете категория Сесия (по подразбиране е отворен) и в полето Име на хост въведете публичния IP адрес на нашия сървър, който получихме в стъпка 2.2.3. В полето Запазена сесия въведете произволно име за нашата връзка (в моя случай wireguard-aws-london), след което натиснете бутона Save за да запазим направените от нас промени.
3.1.2.2. Настройване на автоматично влизане на потребителя
Още в категорията Връзка, изберете подкатегория Дата и на полето Потребителско име за автоматично влизане въведете потребителско име Ubuntu е стандартният потребител на екземпляра на AWS с Ubuntu.
3.1.2.3. Избор на частен ключ за свързване чрез SSH
След това отидете на подкатегорията Връзка/SSH/Auth и до терена Файл с личен ключ за удостоверяване натиснете бутона Browse ... за да изберете файл със сертификат за ключ.
3.1.2.4. Отваряне на импортиран ключ
Посочете ключа, който импортирахме по-рано на стъпка 3.1.1.4, в нашия случай това е файл wireguard-awskey.ppk, и натиснете бутона отворен.
3.1.2.5. Запазване на настройките и стартиране на връзка
Връщане към страницата с категории Сесия натиснете отново бутона Save, за да запазите промените, които направихме по-рано в предишните стъпки (3.1.2.2 - 3.1.2.4). И тогава натискаме бутона отворено за да отворите отдалечената SSH връзка, която създадохме и конфигурирахме.
3.1.2.7. Създаване на доверие между хостовете
В следващата стъпка, първия път, когато се опитаме да се свържем, получаваме предупреждение, че нямаме конфигурирано доверие между двата компютъра и пита дали да се доверим на отдалечения компютър. Ще натиснем бутона Да, като по този начин го добавя към списъка с надеждни хостове.
3.1.2.8. Въвеждане на парола за достъп до ключа
След това се отваря терминален прозорец, където се иска паролата за ключа, ако сте я задали по-рано на стъпка 3.1.1.3. При въвеждане на парола не се извършва действие на екрана. Ако направите грешка, можете да използвате ключа Backspace.
3.1.2.9. Приветствено съобщение при успешно свързване
След успешно въвеждане на паролата, в терминала ни се показва приветствен текст, който ни казва, че отдалечената система е готова да изпълни нашите команди.
4. Конфигуриране на сървъра Wireguard
Най-актуалните инструкции за инсталиране и използване на Wireguard с помощта на скриптовете, описани по-долу, могат да бъдат намерени в хранилището: https://github.com/isystem-io/wireguard-aws
4.1. Инсталиране на WireGuard
В терминала въведете следните команди (можете да копирате в клипборда и да поставите в терминала, като натиснете десния бутон на мишката):
4.1.1. Клониране на хранилище
Клонирайте хранилището с инсталационните скриптове на Wireguard
Стартирайте като администратор (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 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 (публичен DNS на Cloudflare) Примерен резултат:
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 потребителя. Факт е, че Wireguard VPN сървърът няма да може да стартира, докато не бъде добавен поне един клиент. В случая въведох името Alex@mobile Примерен резултат:
Enter VPN user name: Alex@mobile
След това на екрана трябва да се покаже QR код с конфигурацията на новодобавения клиент, който трябва да бъде прочетен с помощта на мобилния клиент Wireguard на Android или iOS, за да го конфигурирате. Освен това под QR кода ще се покаже текстът на конфигурационния файл в случай на ръчна конфигурация на клиенти. Как да направите това ще бъде обсъдено по-долу.
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
[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):
След това е необходимо да импортирате конфигурацията, като прочетете QR кода с конфигурацията на клиента (вижте параграф 4.2.2) и му дадете име:
След успешно импортиране на конфигурацията можете да активирате VPN тунела. Успешната връзка ще бъде показана чрез скривалище на ключ в системната област на Android
5.2. Настройка на Windows клиент
Първо трябва да изтеглите и инсталирате програмата TunSafe за 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.
5.2.6. Настройка на VPN връзка
Изберете този конфигурационен файл и се свържете, като щракнете върху бутона Свържете.
6. Проверка дали връзката е успешна
За да проверите успеха на връзката през VPN тунела, трябва да отворите браузър и да отидете на сайта https://2ip.ua/ru/
Показаният IP адрес трябва да съвпада с този, който получихме в стъпка 2.2.3.
Ако е така, тогава VPN тунелът работи успешно.
От терминала на Linux можете да проверите вашия IP адрес, като напишете:
curl http://zx2c4.com/ip
Или можете просто да отидете в pornhub, ако сте в Казахстан.