Оригинал материала: https://3dnews.ru/608198

Как попасть в Америку. Создаём VPN-сервер в Amazon EC2

Вступление. Создание Instance в Amazon EC2. Настройка DynDNS.

Напоминаем, что все действия, описанные в статье, пользователь делает на свой страх и риск. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

#Вступление

В этой статье будет достаточно подробно рассмотрено создание собственного VPN-сервера в облачной платформе Amazon Elastic Compute Cloud. Причём за очень символическую сумму. В качестве клиента будет выступать Windows 7. Зачем это всё надо? Хотя бы для того, чтобы получить доступ к веб-сервисам, которыми разрешено пользоваться только в стране победившего капитализма. С их (сервисов) точки зрения вы будете находиться на территории США. На самом деле вариантов использования такого доступа превеликое множество. Самый простой пример — можно бесплатно слушать радио в Last.fm или Pandora.

У продвинутых пользователей наверняка возникнет один резонный вопрос. Зачем нам настраивать какой-то VPN-сервер, да ещё в Amazon? Есть же прокси-сервера, зачастую бесплатные, есть Tor и прочие анонимайзеры, есть, в конце концов, провайдеры VPN-доступа с вполне приемлемыми тарифами. Предлагаемый метод в чём-то хуже, а в чём-то лучше перечисленных решений. Его основные плюсы таковы: простота работы, относительно высокая безопасность и практически полная бесплатность. Интересно? Тогда поехали.

Идея поднятия VPN-сервера в Amazon EC2, мягко говоря, не нова. Нюанс в том, что с первого ноября прошлого года каждому новому клиенту Amazon Web Services на целый год бесплатно предоставляется доступ к небольшому кусочку облака — 613 Мбайт оперативной памяти, 10 Гбайт дискового пространства, 15 Гбайт трафика, 750 часов машинного времени и так далее. Чувствуете гешефт? Конечно, что-то серьёзное на такой машине не запустишь. Но для наших целей подобной конфигурации вполне хватит, к тому же и платить за неё фактически не надо.

Итак, нам понадобятся следующие вещи: действующая банковская карта хотя бы с тремя долларами на счету, клиенты PuTTY и PuTTYgen с этого сайта, учетные записи в Amazon и DynDNS, а также немного свободного времени. Если нет аккаунта в Amazon и DynDNS, то их придётся создать. Рекомендуем предварительно внимательно почитать лицензионные соглашения и правила использования всех сервисов и программ на предмет легальности в вашей стране. Регистрация в Amazon и DynDNS ничем не отличается от аналогичного процесса на других сайтах, так что сложностей возникнуть не должно. Отметим лишь, что при регистрации в Amazon надо будет указать правильный номер телефона — он потребуется для последующей активации. Также при указании реквизитов карты в Amazon.com и AWS на счёте автоматически будет зарезервирована сумма в один доллар. Наконец, ещё одно замечание. Лучше не использовать браузеры IE и Opera. IE в самый неподходящий момент заблокировал загрузку цифрового ключа, а Opera почему-то отказывалась показывать PIN-код для активации по телефону. В Chrome, к примеру, всё прошло успешно.

#Создаём instance в Amazon EC2

Для начала входим в свой аккаунт на Amazon и переходим в консоль EC2. Жмём на кнопку Sign Up Now и приступаем к процессу регистрации в Amazon Web Services (AWS). Ничего сложного в нём тоже нет. Про нюансы с номером телефона и резервированием средств на карте уже сказано выше. В конце вам позвонят по указанному номеру, и потребуется ввести четырёхзначный PIN-код, который будет показан на экране, с клавиатуры телефона. По завершении в почтовый ящик упадёт несколько писем с подтверждением регистрации и активации аккаунта AWS.

Возвращаемся в консоль EC2. Теперь она станет выглядеть как на скриншоте ниже. Обратите внимание, что мы должны находиться на вкладке EC2 и в регионе US East. Нажимаем Launch Instance и приступаем непосредственно к его созданию.

На первом этапе нам предлагается выбрать Amazon Machine Image (AMI), этакий виртуальный образ диска с ОС. В принципе, можно остановиться на любом подходящем образе с Linux объёмом не более десяти отведённых нам гигабайт.В качестве примера будем использовать образ с Ubuntu 10.04.2 LTS. Его
можно найти, вбив в поиск ID: ami-3e02f257. Затем нажимаем Select и переходим к следующему этапу.

Выбираем в Instance Type пункт Micro (t1.micro). В Number of Instances оставляем единицу.

На следующем этапе ничего не трогаем и оставляем значения по умолчанию. Ставим галочку напротив Termination Protection.

Затем нам предлагают проставить теги для нашего виртуального сервера. Напротив Name вводим любое понравившееся имя сервера.

Наступает ответственный момент — генерация приватных ключей для доступа к серверу. Вбиваем имя для нашего ключа (любое) и жмём Create & Download your Pair Key. Браузер предложит сохранить файл с расширением .pem. Отказываться не стоит. На всякий случай неплохо бы сразу же сделать копию этого файла и сохранить в другом месте. Если по каким-то причинам ключ не загрузился, то придётся всё отменить (Cancel справа вверху) и повторить все предыдущие шаги. Без ключа дальнейшие действия теряют всякий смысл.

На этом этапе ничего не трогаем и просто жмём Continue.

Напоследок проверяем, всё ли мы правильно выбрали и настроили, затем жмём Finish. Теперь потребуется пара минут для запуска сервера.

Пришла пора дать свежесозданному серверу доступ в Сеть. Для этого в левом меню выбираем пункт Elastic IPs, жмём на кнопку Allocate New Address и соглашаемся с выделением нам нового IP-адреса. Затем кликаем по Associate Address, в списке выбираем наш сервер (он там единственный) и снова соглашаемся. В итоге должно получиться что-то вроде этого:

Теперь переходим в раздел Security Groups, а в списке выбираем default group. Переходим на вкладку Inbound. Перед нами появляется окно управления брандмауэром. Выбираем в списке Create a new rule пункт SSH (все нужные поля заполнятся сами) и жмём Add rule. Затем в том же списке выбираем Custom TCP rule. В поле Port Range вводим 1723, Source оставляем таким же (0.0.0.0/0) и опять нажимаем Add rule. Наконец, жмём Apply Rule Changes. Всё, на этом базовая настройка виртуального сервера закончена.

#Настройка DynDNS

DynDNS нужен для того, чтобы при смене выдаваемого IP-адреса не пришлось лишний раз лезть в консоль AWS. Короче, для удобства. Итак, логинимся на сайте DynDNS и попадаем в консоль управления аккаунтом. Здесь кликаем по Add Host Services.

В поле Hostname вбиваем любое подходящее доменное имя (в нашем примере это amazec2), а в списке справа выбираем любой домен. В Service Type указываем Host with IP Address и кликаем чуть ниже по ссылке Your current location’s IP Address is xx.xx.xx.xx. Внизу странички будет кнопка Add To Cart. Жмём на неё.

Затем выбираем Proceed to checkout и Activate Services.

#Настройка PuTTY

Первым делом надо переконвертировать ключ из формата pem в ppk. Для этого запускаем PuTTYgen. В меню Conversions кликаем на Import key и выбираем наш pem-ключ, который был скачан ранее. Внизу окна надо выбрать SSH-1 (RSA), нажать Save Private Key и сохранить полученный ключ в формате ppk.

Теперь потребуется вернуться в консоль AWS и выбрать в меню слева пункт Instances, а затем справа вверху нажать кнопку Refresh. Кликаем по нашему серверу и снизу в информационной панели находим пункт Public DNS. Выделяем адрес и копируем его в буфер обмена.

Запускаем PuTTY и в поле Host Name вставляем скопированный адрес. Затем переходим в меню слева в Connection → SSH → Auth и указываем в Private key file путь до нашего ключа в формате ppk. А в Window → Translation выбираем кодировку UTF-8.

Наконец, жмём заветную кнопку Open. В диалоговом окне кликаем на Yes. И вот перед нами открылась удалённая консоль нашего сервера. Вводим в качества логина ubuntu и нажимаем Enter.

Настройка ddclient, pptpd. Настройка VPN-подключения в Windows 7. Заключение.

#Настройка ddclient

Если вы никогда не имели дело с Linux-консолью, то лучше строго следовать нижеследующим инструкциям. Шаг влево, шаг вправо — расстрел (можете погубить ваш удаленный Linux). Чтобы не набирать вручную команды, можно просто копировать их отсюда — в PuTTY по нажатию правой клавиши в консоли автоматически вставляется последний скопированный текст. Для начала получим root-права. Вводим

sudo -s

и нажимаем Enter. Устанавливаем ddclient командой

apt-get install ddclient

Появится мастер конфигурирования ddclient. Выбираем www.dyndns.com.

Затем вводим логин и пароль от DynDNS.com.

Нажимаем Yes, а затем From list. Выбираем пробелом наше доменное имя (в нашем примере amazec2.dyndns-ip.com) и жмём Enter.

В принципе, уже сейчас можно пускать весь трафик через наш сервер. Для этого достаточно создать в текстовом редакторе BAT-файл следующего содержания:

c:\путь\до\putty.exe -l ubuntu -D 9999 amazec2.dyndns-ip.com -i c:\путь\до\файла.ppk

Вместо amazec2.dyndns-ip.com надо подставить свой домен DynDNS. После запуска BAT-файла в системе появится SOCKS-сервер. В настройках IE или браузера надо будет указать адрес прокси-сервера 127.0.0.1 и порт 9999. Однако такой способ не совсем удобен.

#Настройка pptpd

Устанавливаем VPN-сервер командой

apt-get install pptpd

Теперь его надо настроить. Отредактируем файл /etc/pptpd.conf командой

nano /etc/pptpd.conf

В конце есть строчки localip (адрес сервера) и remoteip (адреса клиентов), которые нужно привести примерно к такому виду:

Использовать именно подсеть 192.168.244.0 необязательно. Желательно, чтобы адресация вашей локальной сети не совпадала с адресацией, которую мы указали выше. Сохранить изменённый файл можно, нажав F2, затем Y и Enter. Также надо будет отредактировать файл /etc/ppp/pptpd-options командой

nano /etc/ppp/pptpd-options

Здесь надо будет прописать адреса DNS-серверов. Можно воспользоваться DNS вашего провайдера или использовать какой-нибудь общедоступный сервер. Находим строки с ms-dns и правим их. Например, вот так:

Для доступа к VPN-серверу надо задать логин и пароль.

echo "username pptpd password *" >> /etc/ppp/chap-secrets

Вместо username и password укажите соответственно выбранные вами логин и пароль. Можно дать доступ к VPN и другим пользователям. Для этого потребуется отредактировать файл /etc/ppp/chap-secrets, добавив в него аналогичные строки.

Перезапускаем pptpd командой

/etc/init.d/pptpd restart

и переходим к редактированию файла /etc/sysctl.conf:

nano /etc/sysctl.conf

В нём нужно будет «раскомментировать» (убрать символ # в начале строки) пункт net.ipv4.ip_forward=1.

Затем вводим ещё пару команд:

sysctl -p

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Наконец, осталось отредактировать файл /etc/rc.local, добавив в него перед строкой exit 0 последнюю команду.

nano /etc/rc.local

На этом настройка сервера закончена. Отключаемся от консоли:

exit

exit

#Настройка VPN-подключения в Windows 7

Заходим в «Панель управления» и выбираем «Центр управления сетями и общим доступом». Щёлкаем по пункту «Настройка нового подключения или сети». Выбираем «Подключение к рабочему месту» и нажимаем «Далее».

Жмём «Использовать мое подключение к Интернету».

В поле «Интернет-адрес» вводим наш домен в DynDNS (опять же, в нашем примере это amazec2.dyndns-ip.com) и как-нибудь называем наше VPN-соединение. Не забудьте поставить галочку напротив строки «Не подключаться сейчас, только выполнить установку для подключения в будущем».

Вводим наши логин и пароль для подключения к VPN-серверу (те самые, что были в команде echo "username pptpd password *" >> /etc/ppp/chap-secrets). Ставим галочку напротив пункта «Запомнить пароль». Нажимаем «Создать», а потом «Закрыть».

Теперь выбираем «Изменение параметров адаптера». Кликаем правой кнопкой по только что созданному соединению и выбираем пункт «Свойства».

В появившемся окне расставляем галочки так, как показано на скриншотах ниже, и жмём ОК.

 

Необходимо не забыть сменить шифрование на "тип шифрования: необязательно"

Всё, подключение готово. Дважды кликаем по нему и нажимаем «Подключение». После установки соединения ОС предложит выбрать размещение сети. Выберите «Общественная сеть» или «Сеть предприятия». Теперь с точки зрения внешнего мира мы находимся на территории США.

Дорогая, у меня для тебя сюрприз

#Заключение

В конце хотелось бы осветить несколько важных моментов. Учтите, что после установки VPN-соединения весь трафик будет проходить через него. Во избежание лишних трат рекомендуется отключить торрент-клиент и прочие программы, которые в фоновом режиме передают много информации. ПО, которое работает с Сетью, лучше запускать уже после включения VPN. К сожалению, по тем или иным причинам не все веб-сервисы могут корректно работать в таком режиме. Периодически наблюдаются проблемы с плеером Adobe Flash. Но в целом всё работает нормально.

Следить за объёмом потреблённого трафика можно в своём профиле. Для этого надо зайти на главную страницу AWS и в меню Account выбрать пункт Account Activity. В отчёте будет подробно расписано, сколько вы потребили из всех предоставляемых услуг на текущий момент. Счёт за услуги будет выставляться первого числа каждого месяца. Также следует отметить, что региональный трафик между дата-центрами Amazon оплачивается отдельно. Если вы превысите месячный лимит бесплатного трафика, то весь последующий объём передаваемой информации придётся оплачивать согласно стандартному прейскуранту (сейчас это 10 центов за гигабайт).

Что делать по прошествии года, когда закончится период бесплатного использования Amazon EC2? Ну, «обойти» это просто. Никто не мешает создать ещё один почтовый адрес, снова зарегистрироваться на Amazon и как «новому» клиенту воспользоваться условиями акции. (Если, конечно, к тому моменту всю эту лавочку не прикроют). С номером телефона тоже не должно возникнуть проблем. С банковской картой тоже всё просто. Можно, например, завести виртуальную карту или приобрести Visa Gift Card. Кстати, если вы переживаете, что Amazon вдруг начнёт бесконтрольно снимать деньги с вашего счёта, то можно сразу же воспользоваться предложенными методами. Тогда уж точно не будет лишних или непредвиденных затрат.

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

Важная информация для тех, кто использует AMI за номером ami-c2a255ab

Сегодня Amazon прислал письмо следующего содержания:

Hello,

It has recently come to our attention that a public AMI in the US-East region is being distributed with an included SSH public key that will allow the publisher to log in as root. Our records indicate that you have, or have had, instances launched from this AMI.

Compromised AMI: ami-c2a255ab

Your AWS Account ID: 915416862125

Your Instance ID(s): i-bxxxxxx

It is our recommendation that you consider instances based on this AMI compromised and immediately migrate your services to a new instance based on a different AMI. We are in the process of disabling the compromised AMI but it is possible that it will still be available by the time you receive this. You should not launch new instances from this AMI.

While you are migrating your services to a new instance we also recommend that you disable the offending SSH key. To do so, remove the following text from the '/root/.ssh/authorized_keys' file on each running instance:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCU8QRvONa/Rv4mXSDMVFX7EnIiJd2nuQ0mUHPTGNUCq0PjyNemjXTLztxfbA9q8+
S9T7q/
1UJG3dp49EzE1Gq8KAQm6vmSn80pPrm3hTHAmiBboIZzoqv6PSedkUvZyqqBn1NK0VZxGH7JvsagW95R2AfTd
EwdXRjorxtPzi/
MpYdoOzM41yzysyjmIZYdeOcZLliLfv9B31lTaFY2RfxpJ4TWlKh1Fo4Iy
Uyd3uyih17ucbKiSdJ2G5iYS01wL18o9Ett8cyjtrYXDewEsGtrL0taQMuPpiD66+HE37k4GWwNho6vsMSO1qbeTY431EQSaIrr/
SKn8ToqnnLBy6On guru

We're sorry for any inconvenience this may have caused.

Best regards,

The Amazon EC2 Security Team

This message was produced and distributed by Amazon Web Services LLC, 410 Terry Avenue North, Seattle, Washington 98109-5210

Вкратце суть письма заключается в том, что в образе AMI под номером ami-c2a255ab обнаружена критическая уязвимость. Именно этот образ использовался нами изначально в статье “Как попасть в Америку. Создаём VPN-сервер в Amazon EC2”. В настоящее время в тексте статьи указан другой образ. Если же вы уже успели воспользовался советами из статьи и установили ami-c2a255ab рекомендуется немедленно сделать следующие действия.

Подключитесь с помощью PuTTY к консоли удалённого сервера и введите команду

sudo nano /root/.ssh/authorized_keys

В открывшемся файле удалите строку, которая указана в письме – ssh-rsa AAAAB3N […]y6On guru. Это должна быть первая строка в файле, но на всякий случай убедитесь в этом. Если вы не создавали дополнительных ключей для авторизации, то в файле должна остаться только одна строка с ключом, который нам выдал Amazon при создании сервера. Сохраните файл (F2, Enter) и выходите (Ctrl+X). Аналогичным образом необходимо отредактировать ещё один файл:

sudo nano /home/ubuntu/.ssh/authorized_keys

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

grep Accepted /var/log/auth.log*

zcat /var/log/auth.log.?.gz | grep Accepted

Посмотрите, нет ли в выводе каждой команды авторизации с подозрительного IP-адреса (например, не принадлежащего вашему провайдеру) или под другим именем пользователя. На строчку, начинающуюся с Nov 1 03:21:52 обращать внимания не стоит.



Оригинал материала: https://3dnews.ru/608198