Найти тему

Amazon как оплот добра

Доброго дня.

Работой придавило так, что света белого не видно, поэтому посты пишутся медленнее, чем я рассчитывал, но я стараюсь, тружусь на благо высшей цели и всё такое прочее.

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

Сегодня мы поговорим об Amazon Web Services как о наиболее гибком и простом инструменте, который полностью отвечает нашим целям. В качестве первого нашего VPN-сервера выбран Cloud Hosted Router от Mikrotik. Почему? Потому, что для него можно написать плюс-минус универсальный конфиг, который при минимальных правках можно просто кинуть в терминал и всё будет работать так, как задумано. С него мы начнём, но на нём не остановимся, я надеюсь. Но, повторюсь, для всех задач, связанных с обеспечением себе бесперебойного доступа к любым сервисам, это, на мой взгляд, самый гибкий и простой инструмент.

Amazon Web Services бесплатны для простейших задач в течение года. CloudHostedRouter бесплатен в течение двух месяцев без каких бы то ни было ограничений. По окончании тестового периода новый сервер накатывается так же просто. Либо можно продолжать пользоваться старым, но без обновлений и с урезанной до 1Мбит/с скоростью. Кому-то может хватить и этого.

Итак, нам понадобится личный кабинет на официальном сайте Mikrotik и личный кабинет в AWS. Я не буду подробно останавливаться на регистрации кабинетов, но, если это потребуется, напишите в комментариях и я разберу процедуру регистрации подробнее.

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

Предположим, мы молодцы, зарегистрировались в AWS и никаких проблем у нас не возникло. Теперь нам нужен маркетплейс Амазона, доступен он по ссылке: https://aws.amazon.com/marketplace/search

В строку поиска вводим CHR, жмём Enter и находим Cloud Hosted Router. Далее Continue to subscription. Платить нас ничего не заставят, это просто добавит данный продукт в ваши подписки.

После Subscribe жмите Continue to configuration и затем Continue to Launch.

В этом разделе вам нужно в выделенном выпадающем списке выбрать Launch through EC2 и нажать большую кнопку Launch.

-2

Собственно, для наших целей ничего особенного не нужно, поэтому просто проверьте, что в качестве типа выбран t2.micro с зеленой плашкой, как на скриншоте, и жмите Review and Launch. В новом окне жмёте Next, в следующем Launch.

-3

Вам предложат создать пару ключей. Для наших целей она не важна, но создать её придётся, можно заполнить всё как на скриншоте и сохранить ключи в уютном месте. Дальше запускаем наш свежий инстанс и, пока наслаждаемся торжеством гайдлайнов над сложностью амазоновской инфраструктуры, жмём кнопку View Instances.

-4

В этом окне вы видите список запущенных станций и на нём придётся остановиться подробнее.

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

Security Groups. Содержит список групп безопасности. Каждая группа безопасности содержит список портов и сервисов, доступ к которым будет разрешён из внешнего мира.

Elastic IPs. Содержит выделенные неизменные адреса, которые мы можем запросить у Амазона.

Теперь, когда мы, нисколько не разобравшись в интерфейсе, хотим закончить всё это мероприятие, нам необходимо создать группу безопасности для нашей свежей машины. Для этого идём в Security Groups, жмём Create Security Group, в открывшемся окне нажимаем Add Rule и видим следующую картину:

-5

Для наших целей подойдёт группа с разрешением всех портов потому, что виртуальная машина, созданная нами, всё равно потребует настройки фаерволла и этот механизм защиты можно опустить. Поэтому выбираем в поле Type «All Traffic», а в поле Source — «Anywhere» и нажимаем Create.

Затем в Elastic IPs, Allocate New Address, Allocate. Это создаст вам постоянный адрес, который мы сейчас привяжем к машине. Нажимаем на адрес правой кнопкой, выбираем Associate address и видим следующее окно:

-6

В поле Instance выбираем нашу виртуалку, в поле Private IP должен быть только её серый адрес, жмём Associate и возвращаемся в Instances.

По нажатию на нашу виртуалку правой кнопкой, откроется меню операций с узлом:

-7

Откроем пункт Change security groups и поставим галочку на нашей новой группе, а с созданной автоматически — снимем и нажмём Assign.

Всё. На этом создание нашего сервера закончено. К нему можно подключаться, настраивать его и использовать по любому вообразимому назначению.

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

Теперь попробуем разобраться с тем, что же было сделано. В маркетплейсе Амазона содержится преднастроенный шаблон RouterOS, точнее CHR, направленное на размещение в облаке либо на обычных компьютерах, решение. Это, как понятно из названия, операционная система, которую компания Mikrotik льёт на поставляемое оборудование. За редким исключением, все устройства этой компании так или иначе несут на борту одну из версий этой оси. Одним из преимуществ является простота переноса конфигураций, поэтому я и начал именно с такого решения, как наиболее хорошо мной изученного, легко настраиваемого и масштабируемого. Далее. Мы создали виртуальную машину из шаблона, разрешили доступ к ней из любого источника и на любой порт и назначили ей постоянный адрес, по которому и будем производить подключение.

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

В следующем посте я дам плюс-минус универсальную конфигурацию, объясню, как поправить её под ваши задачи и расскажу, как превратить имеющуюся сейчас заготовку в полноценный VPN-сервер.

В заключение, хочу задать пару вопросов:

Во-первых, как удобнее лить конфигурации? Просто текстом сюда? Или на Pastebin? Или есть какие-то дополнительные инструменты форматирования, типа ката?

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