З ростам цэнзуравання інтэрнэту аўтарытарнымі рэжымамі, блакуюцца ўсё большая колькасць карысных інтэрнэт рэсурсаў і сайтаў. У тым ліку з тэхнічнай інфармацыяй.
Такім чынам, станавіцца немагчыма паўнавартасна карыстацца інтэрнэтам і парушаецца фундаментальнае права на свабоду слова, замацаванае ва Усеагульнай дэкларацыі правоў чалавека.
Артыкул 19
Кожны чалавек мае права на свабоду перакананняў і на свабоднае выказванне іх; гэтае права ўключае свабоду бесперашкодна прытрымлівацца сваіх перакананняў і свабоду шукаць, атрымліваць і распаўсюджваць інфармацыю і ідэі любымі сродкамі і незалежна ад дзяржаўных межаў
У дадзеным кіраўніцтве мы за 6 этапаў разгорнем свой уласны бясплатны* VPN сэрвіс на базе тэхналогіі Драцяная ахова, у хмарнай інфраструктуры Amazon Web Services (AWS), з дапамогай бясплатнага акаўнта (на 12 месяцаў), на інстансе (віртуальнай машыне) пад кіраваннем Сервер Ubuntu 18.04 LTS.
Я стараўся зрабіць гэтае пакрокавае кіраўніцтва як мага больш дружалюбным да людзей, далёкім ад ІТ. Адзінае што патрабуецца - гэта ўседлівасць у паўторы апісаных ніжэй крокаў.
Для рэгістрацыі бясплатнага акаунта AWS патрабуецца рэальны нумар тэлефона і плацежаздольная крэдытная карта Visa ці Mastercard. Рэкамендую скарыстацца віртуальнымі картамі якія бясплатна падае Яндэкс.Грошы або 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, ён нам і патрэбен, проста націскаем кнопку Next: Configure Instance Detalis
2.1.2. Настройка параметраў інстансу
У далейшым мы падключым да нашага інстансу пастаянны публічны IP, таму на гэтым этапе мы адключаем аўтапрызначэнне публічнага IP, і націскаем кнопку Next: Add Storage
2.1.3. Падключэнне сховішчы
Паказваем памер "цвёрдага дыска". Для нашых мэт дастаткова 16 гігабайт, і націскаем кнопку Next: Add Tags
2.1.4. Настройка тэгаў
Калі б мы стваралі некалькі інстансаў, то іх можна было б групаваць па тэгах, для аблягчэння адміністравання. У дадзеным выпадку гэтая фукцыянальнасць залішняя, адразу націскаем кнопку Next: Configure Security Gorup
2.1.5. Адкрыццё партоў
На гэтым этапе мы наладжваем брандмаўэр, адчыняючы патрэбныя порты. Набор адкрытых партоў называецца "Група бяспекі" (Security Group). Мы павінны стварыць новую групу бяспекі, даць ёй імя, апісанне, дадаць порт UDP (Custom UDP Rule), у поле Rort Range неабходна прызначыць нумар порта, з дыяпазону дынамічных партоў 49152-65535. У дадзеным выпадку я абраў нумар порта 54321.
Пасля запаўнення неабходных дадзеных, націскаем на кнопку Агляд і запуск
2.1.6. Агляд усіх настроек
На дадзенай старонцы ідзе агляд усіх налад нашага інстансу, правяраем ці ўсе наладкі ў парадку, і націскаем кнопку Запуск
2.1.7. Стварэнне ключоў доступу
Далей выходзіць дыялогавае акно, якое прапануе альбо стварыць, альбо дадаць існуючы SSH ключ, з дапамогай якога мы ў далейшым будзе выдалена падключацца да нашага інстансу. Мы выбіраем опцыю "Create a new key pair", каб стварыць новы ключ. Задаем яго імя, і націскаем кнопку Download Key Pair, каб спампаваць створаныя ключы. Захавайце іх у надзейнае месца на дыску лакальнага кампутара. Пасля таго як спампавалі - націскаеце кнопку Launch Instances
2.1.7.1. Захаванне ключоў доступу
Тут паказаны этап захавання створаных ключоў з папярэдняга кроку. Пасля таго, як мы націснулі кнопку Download Key Pair, ключ захоўваецца ў выглядзе файла сертыфіката з пашырэннем *.pem. У дадзеным выпадку я даў яму імя wireguard-awskey.pem
2.1.8. Агляд вынікаў стварэння інстансу
Далей мы бачым паведамленне аб паспяховым запуску толькі што створанага намі інстансу. Мы можам перайсці да спісу нашых інстансаў націснуўшы на кнопку View instances
2.2. Стварэнне знешняга IP адрасы
2.2.1. Запуск стварэння знешняга IP
Далей нам неабходна стварыць пастаянны знешні IP адрас, праз які мы і будзем падключацца да нашага VPN сервера. Для гэтага ў навігацыйнай панэлі ў левай частцы экрана неабходна абраць пункт Эластычныя IP з катэгорыі NETWORK & SECTURITY і націснуць кнопку Allocate new address
2.2.2. Настройка стварэння знешняга IP
На наступным кроку нам неабходна каб была ўключаная опцыя Amazon pool (уключана па змаўчанні), і націскаем на кнопку Вылучыць
2.2.3. Агляд вынікаў стварэння знешняга IP адраса
На наступным экране адлюструецца атрыманы намі вонкавы IP адрас. Рэкамендуецца яго запомніць, а лепш нават запісаць. ён нам яшчэ не раз спатрэбіцца падчас далейшай налады і выкарыстанні VPN сервера. У дадзеным кіраўніцтве ў якасці прыкладу я выкарыстоўваю IP адрас 4.3.2.1. Як запісалі адрас, націскаем на кнопку блізка
2.2.4. Спіс знешніх IP адрасоў
Далей нам адкрываецца спіс нашых пастаянных публічных IP адрасоў (elastics IP).
2.2.5. Прызначэнне знешняга IP інстансу
У гэтым спісе мы выбіраем атрыманы намі IP адрас, і націскаем правую кнопку мышы, каб выклікаць выпадальнае меню. У ім выбіраемы пункт Associate address, каб прызначыць яго раней створанаму намі інстансу.
2.2.6. Настройка прызначэння знешняга IP
На наступным кроку выбіраемы з выпадальнага спісу наш інстанс, і націскаем кнопку Асацыяваць
2.2.7. Агляд вынікаў прызначэння знешняга IP
Пасля гэтага, мы можам убачыць, да нашага сталага публічнага IP адрасу прывязаны наш інстанс і яго прыватны IP адрас.
Цяпер мы можам падключыцца да нашага зноў створанага інстанса з-за, са свайго кампутара па SSH.
3. Падключэнне да інстансу AWS
SSH - Гэта бяспечны пратакол выдаленага кіравання кампутарнымі прыладамі.
3.1. Падлучэнне па SSH з кампутара на Windows
Для падлучэння да кампутара з Windows, перш за неабходна спампаваць і ўсталяваць праграму Шпатлёўка.
3.1.1. Імпарт прыватнага ключа для Putty
3.1.1.1. Пасля ўстаноўкі Putty, неабходна запусціць утыліту PuTTYgen, якая ідзе з ёй у камплекце, для імпарту ключа сертыфіката ў фармаце PEM, у фармат, прыдатны для выкарыстання ў праграме Putty. Для гэтага ў верхнім меню выбіраемы пункт Conversions->Import Key
3.1.1.2. Выбар ключа AWS у фармаце PEM
Далей, выбіраемы ключ, які мы раней захавалі на этапе 2.1.7.1, у нашым выпадку яго імя wireguard-awskey.pem
3.1.1.3. Заданне параметраў імпарту ключа
На гэтым кроку нам неабходна ўказаць каментар для гэтага ключа (апісанне) і задаць для бяспекі пароль і яго пацверджанне. Ён будзе запытвацца пры кожным падключэнні. Такім чынам мы абараняем ключ паролем ад не мэтавага выкарыстання. Пароль можна не задаваць, але гэта меней бяспечна, у выпадку, калі ключ патрапіць у чужыя рукі. Пасля націскаем кнопку Захаваць прыватны ключ
3.1.1.4. Захаванне імпартаванага ключа
Адкрываецца дыялогавае акно захавання файла, і мы захоўваем наш прыватны ключ у выглядзе файла з пашырэннем .ppk, прыдатнага для выкарыстання ў праграме Шпатлёўка.
Паказваем імя ключа (у нашым выпадку wireguard-awskey.ppk) і націскаем кнопку Захаваць.
3.1.2. Стварэнне і настройка злучэння ў Putty
3.1.2.1. Стварэнне злучэння
Адкрываем праграму Putty, выбіраемы катэгорыю сесія (яна адкрыта па змаўчанні) і ў полі Імя гаспадара уводзім публічны IP адрас нашага сервера, які мы атрымалі на кроку 2.2.3. У полі Saved Session уводзім адвольную назву нашага злучэння (у маім выпадку wireguard-aws-london), і далей націскаем кнопку захаваць каб захаваць зробленыя намі змены.
3.1.2.2. Настройка аўталагіна карыстальніка
Далей у катэгорыі Сувязі, выбіраем падкатэгорыю Дата і ў полі Аўтаматычнае імя карыстальніка вадзім імя карыстальніка Ubuntu - Гэта стандартны карыстач інстанса на AWS з Ubuntu.
3.1.2.3. Выбар прыватнага ключа для злучэння па SSH
Затым пераходзім у падкатэгорыю Connection/SSH/Auth і побач з полем Файл закрытага ключа для аўтэнтыфікацыі націскаем на кнопку Агляд ... для выбару файла з сертыфікатам ключа.
3.1.2.4. Адкрыццё імпартаванага ключа
Указваем ключ, імпартаваны намі раней на этапе 3.1.1.4, у нашым выпадку гэта файл wireguard-awskey.ppk, і націскаем кнопку адкрыць.
3.1.2.5. Захаванне налад і запуск падключэння
Вярнуўшыся на старонку катэгорыі сесія націскаем яшчэ раз кнопку захаваць, для захавання зробленых раней намі зменаў на папярэдніх кроках (3.1.2.2 — 3.1.2.4). І затым націскаем кнопку адкрыты каб адкрыць створанае і наладжанае намі выдаленае падлучэнне па SSH.
3.1.2.7. Настройка даверу паміж хастамі
На наступным кроку, пры першай спробе падключыцца, нам выдаецца папярэджанне, у нас не наладжаны давер паміж двума кампутарамі, і пытаецца, ці давяраць выдаленаму кампутару. Мы націснем кнопку Так, тым самым дадаючы яго ў спіс давераных хастоў.
3.1.2.8. Увод пароля для доступу да ключа
Пасля гэтага адчыняецца акно тэрмінала, дзе запытваецца пароль да ключа, калі вы яго ўсталёўвалі раней на кроку 3.1.1.3. Пры ўводзе пароля ніякіх дзеянняў на экране не адбываецца. Калі памыліліся, можаце выкарыстоўваць клавішу вяртанне на адну пазіцыю.
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 (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 кода адлюстравацца тэкст канфігурацыйнага файла ў выпадку ручной канфігурацыі кліентаў. Як гэта зрабіць будзе сказана ніжэй.
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 тунэль. Аб паспяховым падлучэнні скажа заначек ключыка ў сістэмнай панэлі АНДРОІД
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. Захаванне лакальнага файла канфігурацыі
Захоўваем файл, з пашырэннем .канф (у дадзеным выпадку з імем 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
Ці можна проста зайсці на порнахаб, калі вы знаходзіцеся ў Казахстане.