Создание VPN сервера на базе Amazon AWS EC2

Всем привет! В этой статье я постараюсь подробно и со скриншотами изложить процесс установки OpenVPN сервера на бесплатный сервер Amazon AWS EC2. Amazon в качестве рекламной кампании предоставляет бесплатную виртуалку EC2 в своём облаке на год. Бесплатно предоставляется 10GB диска и 1GB оперативной памяти. Этих ресурсов хватает для того, чтобы поднять свой личный VPN сервер. Личный VPN вы можете использовать для объединения своих устройств в виртуальные частные сети, а так же для обхода блокировок. Замечу, что использование одного VPN подключения практически не обеспечивает вам анонимность в сети, однако полезно для шифрования трафика.

1. Регистрация в Amazon AWS.

Первым делом вам потребуется завести аккаунт в Amazon AWS. Сделать это можно по этой ссылке. При создании аккаунта в Amazon можно указывать вымышленные личные данные, однако номер телефона придётся подтвердить, так что будьте готовы ответить на звонок от робота Амазона по указанному при регистрации номеру. Начинаем регистрацию нажав на кнопку «Создать бесплатный аккаунт».

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

Далее при регистрации у вас попросят ввести свою кредитную карту. Здесь так же придётся ввести известные вам данные карты, с которой Амазон спишет 1$. Как утверждает сама компания, этот не является сбором, а лишь гарантией возможности проведения транзакции с вашей карты. Как бы то ни было, мне на карту этот доллар не вернулся.

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

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

Учтите, что Amazon может потребоваться до 24 часов для того, чтобы активировать аккаунт. Вы получите от них соответствующее сообщение, когда попытаетесь выполнять дальнейшие шаги по инструкции. Как правило, Амазон без проблем активируют аккаунт в течении 24 часов. Если этого не произошло, обратитесь в поддержку Amazon.

2. Создание своего сервера.

Теперь, если ваш аккаунт активирован, вы готовы приступить к созданию своей собственной виртуальной машины в облаке Amazon. Выберите в меню «Products» пункт «Amazon EC2».

Вы попадёте на страницу EC2, где будет кнопка, приглашающая создать новую инстанцию (в этом контексте читай как «сервер»). Для того, чтобы создать бесплатный сервер с годовым пробным периодом, нажмите «Try Amazon EC2 for Free».

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

Теперь вам предложат выбрать операционную систему. Для простоты и унификации этой инструкции мы будем использовать Ubuntu 16.04. Обратите внимание, чтобы около логотипа ОС стояла надпись «Free tier eligible». Только с этими образами возможно использование бесплатного годового тестового срока AWS. Нажимайте «Select» напротив образа Ubuntu. Данная статья подготавливалась с образом Ubuntu 16.04, но должна быть применима и к другим версиям.

Следующим шагом нам предложат выбрать тип нашего сервера, нас интересует t2.micro с пометкой «Free tier eligible». И сразу можно нажимать «Review and Launch», так как никаких дополнительных параметров мы задавать виртуалке не будем.

На следующей странице вы можете посмотреть все параметры, заданные вашему только что созданному серверу.  Нажимайте на «Launch».

Вам предложат создать специальный файл .pem, служащий для безопасного подключения по SSH к серверу. Вы задаёте имя для ключа, например aws_ubuntu, и нажимаете кнопку «Download Key Pair». Сохраните предложенный для скачивания файл *.pem на компьютере, в дальнейшнем он вам пригодится.

 

Наконец-то, мы попадаем в консоль управления серверами AWS. Здесь мы видим свой сервер, который уже должен быть запущен. Нажимайте на кнопку «Connect» на панели сверху

3. Подключение к серверу.

После того, как вы нажали «Connect» откроется окно с практически дословной инструкцией по подключению. На выбор предоставляется два способа подключения: через SSH клиент и через Java-приложение (не рекомендуется). В обоих случаях вам нужно точно знать, где лежит только что скачанный файл .pem.

 

Расммотрим более подробно подключение по SSH через командную строку Linux или MacOS. Предположим, что я сохранил файл aws_ubuntu.pem в директорию «Загрузки» В моём домашнем каталоге. На скриншоте выше подчёркнуто красным то, что является логином и адресом вашего сервера.  В таком случае процесс подключения к серверу будет выглядеть следующим образом:

cd Загрузки/

chmod 400 aws_ubuntu.pem

ssh -i "aws_ubuntu.pem" [логин и адрес от вашего сервера]

Готово! Вы успешно подключились к своему новому AWS EC2, если приглашение ввода в терминале сменилось на что-то вроде «ubuntu@ip-172-**-**-***:~$». Вот так процедура подключения к серверу выглядит в терминале:

Если вы используете ОС Windows в качестве рабочей системы и хотите подключиться к серверу, то скачайте по этой ссылке Git For Windows. Установите его как обычную программу в Windows, затем кликните правой кнопкой мыши в любом свободном месте рабочего стола. В открывшемся меню выберите «Git Bash Here».

Откроется интерфейс командной строки, в который вы можете ввести такую же команду, как в Linux/Mac

Вводите команду примерно такого вида (где ‘C:\Users\User\ubuntu-aws.pem’ — это путь скачанного вами ранее файла .pem, а ‘ubuntu@172.**.**.***.us-west.amazon.com’ — адрес сервера для подключения, который вы получали в консоли AWS при нажатии «Connect»:

ssh -i 'C:\Users\User\ubuntu-aws.pem' ubuntu@172.**.**.***.us-west.amazon.com

Отвечайте «Yes» на заданный вопрос о принятии сертификата сервера. Готово! Вы должны быть подключены к своему AWS EC2.

4. Установка и настройка софта OpenVPN на сервер.

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

В первую очередь обновим софт на сервере:

sudo apt update && sudo apt upgrade

Скачиваем скрипт для простой и быстрой настройки OpenVPN:

git clone https://github.com/Nyr/openvpn-install.git

Заходим в директорию со скачанным скриптом:

cd openvpn-install/

Делаем исполняемым файл самого скрипта:

sudo chmod +x openvpn-install.sh

Запускаем скрипт

./openvpn-install.sh

Скрипт задаст нам несколько вопросов.

  • IP address: внутренний IP адрес сервера. Скрипт определит его автоматически, нажмите Enter.
  • Which protocol: какой протокол будем использовать? Рекомендован UDP, поэтому отвечаете 1 и жмёте Enter.
  • Port: на каком порту будет работать OpenVPN? Оставляете стандартный 1194, жмёте Enter.
  • Which DNS: какие DNS серверы использовать? Рекомендую ответить 2, то есть Google, для пущей надёжности и уверенности
  • Client name: этот ваш логин, когда вы будете подключаться к своему VPN серверу как клиент.

После того, как вы ввели все данные настройки для этого скрипта, он начнёт автоматическую конфигурацию сервера. По окончанию которой задаст ещё один вопрос, так как скрипт увидел, что наш сервер не напрямую подключен к интернету, а находится за NAT.

External IP: этот тот IP, который вы можете увидеть в консоли управления серверами AWS на нижней панели, он отмечен как «IPv4 Public IP»

Введите этот IP адрес в ответ на «External IP» скрипта.

 

Готово! На ваш сервер установлено всё необходимое ПО для работы OpenVPN. В моём случае, мы получили файл .ovpn в папке /home/ubuntu. Именно в этом файле хранится вся клиентская конфигурация для подключения к VPN серверу. Если вам потребуется ещё один клиент (ещё одно параллельное подключение к вашему VPN серверу) просто заново запустите этот скрипт и укажите другое имя в значении «Client».

Этот файл .ovpn (в моём случае — /home/ubuntu/gleb.ovpn) нужно сохранить у себя на компьютере, с которого вы собираетесь подключаться к серверу VPN. .ovpn — по сути своей обычный текстовый файл, содержащий информацию о подлкючении. Посмотреть его содержимое можно командой (не забывайте, что имя файла у вас будет отличаться и будет таким, как вы ответили установочному скрипту VPN на вопрос «Client»):

cat /home/ubuntu/*.ovpn

Результат должен быть приблизительно таким:

Вы можете полностью скопировать содержимое файла из терминала и вставить в текстовый редактор у себя на компьютере, а затем сохранить файл с расширением .ovpn и таким же именем, как было на сервере. Этого достаточно, чтобы у вас на руках оказался .ovpn файл для подключения к VPN серверу. Проверьте ещё раз содержимое файла .ovpn, который сохранили к себе на компьютер, первой строчкой должно быть слово «client», последней строчкой </tls-auth>.

5. Настройка фаерволла AWS

Теперь, когда у нас всё готово и VPN сервер запущен, осталось применить некоторые настройки фаерволла для AWS. Дело в том, что OpenVPN сервер работает на порту 1194, а AWS по-умолчанию фильтрует все входящие и исходящие соединения по нестандартным портам. Для этого нужно зайти в консоли управления сервером, на панели слева, в разделе «Network & Security» параметр «Security Groups».

По умолчанию используется группа launch-wizard-1, поэтому выбираем её, отмечая галочкой.

Затем в меню «Actions» выбираем «Edit inbound rules».

 

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

Проверим, работает ли наш сервер с этой Security Group. Для этого в боковой панели вернитесь Instances -> Instances, и выберите Actions -> Networking -> Change Security Groups.

Мы настраивали правила для группы launch-wizard-1, именно она и должна быть активна и на ней должна стоять галочка. Если это не так, то установите галочку на отредактированной группе и нажмите «Assign Security Groups».

 

 

Готово! Теперь наш VPN сервер доступен во всём интернете. Вы можете использовать любой OpenVPN клиент, поддерживающий конфигурацию файлами .ovpn (просто любой).

В Linux для подключения нужно установить пакет openvpn.

В Debian/Ubuntu:

apt install openvpn

В CentOS/RedHat/Fedora:

yum install openvpn

И затем подключиться следующей командой, находясь в директории со скачанным .ovpn файлом

sudo openvpn *.ovpn

 

Инструкция, как подключиться к OpenVPN серверу с файлом .ovpn на Windows

Добавить комментарий

Ваш e-mail не будет опубликован.