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

Развертывание VPN сервера в сети предприятия является более сложной задачей, чем настройка базовых служб - NAT, DHCP и файловых серверов. Перед тем как браться за дело необходимо четко представлять структуру будущей сети и задачи которые должны решаться с ее помощью. В этой статье мы затронем основные вопросы ответы на которые вы должны твердо знать еще до того, как подойдете к серверу. Такой подход позволит избежать множества типовых проблем и бездумного копирования настроек из примера, а также позволит правильно настроить VPN именно для своих задач и потребностей.

Что такое VPN?

VPN (Virtual Private Network ) - виртуальная частная сеть, под этой аббревиатурой скрывается группа технологий и протоколов позволяющих организовать логическую (виртуальную) сеть поверх обычной сети. Широко применяется для разграничения доступа и повышения безопасности корпоративных сетей, организации безопасного доступа к ресурсам корпоративной сети извне (через интернет) и, в последнее время, провайдерами городских сетей для организации доступа в интернет.

Какие типы VPN бывают?

В зависимости от применяемого протокола VPN подразделяются на:

  • PPTP (Point-to-point tunneling protocol) -- туннельный протокол типа точка-точка, позволяет организовать защищенное соединение за счет создания специального туннеля поверх обычной сети. На сегодняшний день это наименее безопасный из всех протоколов и его не рекомендуется применять во внешних сетях для работы с информацией доступ к которой для посторонних лиц нежелателен. Для организации соединения используется две сетевых сессии: для передачи данных устанавливается PPP сессия с помощью протокола GRE, и соединение на ТСР порту 1723 для инициализации и управления соединением. В связи с этим нередко возникают сложности с установлением подобного соединения в некоторых сетях, например гостиничных или мобильных операторов.
  • L2TP (Layer 2 Tunneling Protocol ) -- протокол туннелирования второго уровня, более совершенный протокол, созданный на базе PPTP и L2F (протокол эстафетной передачи второго уровня от Cisco). К его достоинствам относится гораздо более высокая безопасность за счет шифрования средствами протокола IPSec и объединения канала данных и канала управления в одну UDP сессию.
  • SSTP (Secure Socket Tunneling Protocol) -- протокол безопасного туннелирования сокетов, основан на SSL и позволяет создавать защищенные VPN соединения посредством HTTPS. Требует для своей работы открытого порта 443, что позволяет устанавливать соединения из любого места, даже находясь за цепочкой прокси.

Для чего обычно применяют VPN?

Рассмотрим несколько наиболее часто используемые применения VPN:

  • Доступ в интернет. Чаще всего применяется провайдерами городских сетей, но также весьма распространенный способ и в сетях предприятий. Основным достоинством является более высокий уровень безопасности, так как доступ в локальную сеть и интернет осуществляется через две разные сети, что позволяет задать для них разные уровни безопасности. При классическом решении - раздача интернета в корпоративную сеть - выдержать разные уровни безопасности для локального и интернет трафика практически не представляется возможным.
  • Доступ в корпоративную сеть извне, также возможно объединение сетей филиалов в единую сеть. Это собственно то, для чего и задумывали VPN, позволяет организовать безопасную работу в единой корпоративной сети для клиентов находящихся вне предприятия. Широко используется для объединения территориально разнесенных подразделений, обеспечения доступа в сеть для сотрудников находящихся в командировке или на отдыхе, дает возможность работать из дома.
  • Объединение сегментов корпоративной сети. Зачастую сеть предприятия состоит из нескольких сегментов с различным уровнем безопасности и доверия. В этом случае для взаимодействия между сегментами можно использовать VPN, это гораздо более безопасное решение, нежели простое объединение сетей. Например, таким образом можно организовать доступ сети складов к отдельным ресурсам сети отдела продаж. Так как это отдельная логическая сеть, для нее можно задать все необходимые требования безопасности не влияя на работу отдельных сетей.

Настройка VPN соединения.

В качестве клиентов VPN сервера с большой болей вероятности будут выступать рабочие станции под управлением Windows, в то время как сервер может работать как под Windows, так и под Linux или BSD, поэтому будем рассматривать настройки соединения на примере Windows 7. Мы не будем останавливаться на базовых настройках, они просты и понятны, Остановимся на одном тонком моменте.

При подключении обычного VPN соединения основной шлюз будет указан для VPN сети, то есть интернет на клиентской машине пропадет или будет использоваться через подключение в удаленной сети. Понятно, что это как минимум неудобно, а в ряде случаев способно привести к двойной оплате трафика (один раз в удаленной сети, второй раз в сети провайдера). Для исключения этого момента на закладке Сеть в свойствах протокола TCP/IPv4 нажимаем кнопку Дополнительно и в открывшемся окне снимаем галочку Использовать основной шлюз в удаленной сети .

Мы бы не останавливались на этом вопросе столь подробно, если бы не массовое возникновение проблем и отсутствие элементарных знаний о причинах такого поведения VPN соединения у многих системных администраторов.

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

В этой статье я расскажу о том, как поднять свой VPN сервер для обхода всяких неразумных блокировок, и настроить комп (Windows) и телефон (Android) для работы через этот сервер. Приятный бонус - этот сервер будет бесплатным первые два месяца.


Что за VPN и зачем он нужен

Вообще-то VPN это технология, которая позволяет объединить устройства в сеть поверх другой сети. Например, поверх Интернета. Но не будем забивать голову терминологией, мы просто сделаем так, что вы будете лазить в Интернете через сервер в Сан-Франциско или Лондоне или Амстердаме и т.п. В общем там, где нет Ростелекома.


Зачем нужен свой VPN (или чем плохи чужие).

Разумеется, вы можете использовать чужие платные или бесплатные VPN-сервера. Тысячи их!

Я перешел по первой же ссылке, посмотрел цены - не слишком оптимистично.


Итак, недостатки чужих VPN:

1. Цена - хорошие VPN стоят хороших денег.
2. Прослушка трафика - вы не знаете, кто держит VPN, а он знает, на какие сайты вы ходите, какие пароли передаете, с кем общаетесь и т.п. Https конечно частично решает эту проблему, но еще не все сайты перешли на https, а так же остается атака Man in the middle - владелец VPN может возвращать вам свои сертификаты и центры сертификации, инициировать переход на более старую версию SSL, подсовывать вам свои сайты под видом искомых и т.п.
3. VPN может быть "грязным" - возможно, до вас или параллельно с вами этот же VPN сервер (и его ip адрес) использует для своих дел ассоциация педофилов Массачусетса - и, к тому же, этих мужчин (и этот ip адрес) уже отслеживает ФБР.
4. VPN может быть засвеченным - например, через него рассылали спам и он уже попал в черные списки - и вы не сможете войти на свой любимый сайт, потому что уже в бане.
5. Модификация трафика - если ваш трафик не зашифрован, или владелец VPN его может расшифровать, то сайты, которые вы запрашиваете, будут возвращаться с "лишними баннерами " или измененными адресами BTC и ETH для оплаты и т.п.
Вообще, в двух словах, если вы просто хотите зависать на развлекательных сайтах, то берите любой бесплатный - иногда они будут не работать, иногда будут очень медленными, но это ж бесплатно.

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


Разворачиваем свой VPN сервер

Итак, нам потребуется свой сервер в интернете. Я в данной статье рассмотриваю Digital Ocean, но подойдет любой хостинг, где можно взять VDS. Самый простой тарифный план - 5$/мес, больше нам не надо.
Если зарегистрируетесь по моей ссылке (если не работает, то попробуйте эту), то сайт предоставит вам в долг 10$, чего должно хватить на два месяца пользования VPN на халяву.
Что приятно, IP будет ваш и только ваш, и никто другой через ваш сервер ходить не будет (если вы сами не разрешите, об этом позже).
Переходите по ссылке выше, регистрируйтесь (при регистрации нужно указать номер карты, но с неё ничего не списывается), найдите сверху справа кнопку Create и выберите Droplets


Выбирайте Ubuntu и самый дешевый тарифный план за 5$


Выбирайте регион (на картинке Сан-Франциско, но НЕТ!! Берите Европу - Англию, Германию, Голландию - через океан сигнал медленный), ну и можете хостнейм прописать что б вам понятнее было - я написал vpn. Нажимайте Create


Он немного подумает, развернет вам нужный образ, и у вас появится дроплет (виртуальный сервер)


А на почту придет IP-адрес, логин и пароль.


Я их не прячу, т.к. создаю дроплет исключительно для статьи, потом он будет уничтожен.
Теперь нам нужно подключиться к своему новому серверу и настроить его. Скачиваем программу putty (ссылка), запускаем, вводим IP адрес из письма и жмем Enter


Жмем "Да"


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


Вы вошли на сервер, но пароль необходимо поменять. Для этого вас просят указать текущий пароль, а потом ввести новый (два раза)


Простые пароли он ввести не дает, поэтому нужно придумать что-то длинное - но вам это на руку, в любом случае - хакерам будет сложно вас взломать


Теперь пришло время непосредственно разворачивать VPN. Выполните команду

apt - get install pptpd

Если спросит подтверждения, нажмите Y

Теперь выполните команды (как и раньше, вы можете скопировать все отсюда, а потом нажать там правой кнопкой мыши, и они вставятся)

echo "localip 10.0.0.1" >> / etc / pptpd . conf echo "remoteip 10.0.0.100-200" >> / etc / pptpd . conf echo "ms-dns 8.8.8.8" >> / etc / ppp / pptpd - options echo "ms-dns 8.8.4.4" >> / etc / ppp / pptpd - options echo "net.ipv4.ip_forward = 1" >> / etc / sysctl . conf sysctl - p iptables - t nat - A POSTROUTING - o eth0 - j MASQUERADE && iptables - save

Теперь вам нужно придумать логины и пароли, под которыми к VPN можно будет подключаться. Например, пользователь VasyaPupkin, пароль qwerty123. Подставьте придуманные пароли в следующую команду:

echo "VasyaPupkin pptpd qwerty123 *" >> / etc / ppp / chap - secrets

И выполните её. Если хотите несколько пользователей, то для каждого выполните соответствующую команду.
Ну, и в конце, перезапускаем VPN.

service pptpd restart

Всё, настройка VPN закончена, можно пользоваться.


Подключение к VPN серверу - Windows

Я привожу пример для Windows 10, но вы всегда можете загуглить "Windows pptp" для инструкции к любой другой версии ОС.
Пуск, ищем VPN, находим "Изменение виртуальных частных сетей"

Нажимаем, добавляем VPN подключение


В качестве адреса сервера указываем IP нашего сервера (из письма), логин и пароль - те, что сами придумали


Теперь у нас появилось подключение, щелкаем на него, нажимаем подключиться


Если сделали всё правильно, статус должен смениться на "Подключено"


Проверяем:


IP сменился. Проверяем доступы к сайтам:
https://exmo.com/ - открылся


Проверяем телеграм:


Работает! Выключим ненадолго VPN (щелкните на ярлыке сетевого подключения):


Телеграм сдох:) Включу обратно, что бы всё работало.


Теперь о подключении к VPN с телефона.

Я использую Android, 6.0.1, от Самсунга, думаю, в других версиях и на iOS будет что-то похожее - должно быть, имхо).
Итак, заходим в настройки - подключения - другие настройки - VPN

Нажимаем добавить VPN, указываем IP своего сервера, тип оставляем PPTP

Нажимаем сохранить - и он появляется в списке VPN. После этого нажимаем на него, вводим логин/пароль (сохраните, если не хотите каждый раз вводить руками):

и, если все сделано правильно, вам напишут, что подключено, а в трее появится ключ, вот такой:


Поздравляю, вы подключились к своему VPN-серверу!]


Заключение

Теперь, когда у вас есть свой VPN сервер, и вы сами решаете куда ходить и чего смотреть, вы можете надуть щеки и заявить своим приятелям, что у вас есть возможность раздобыть быстрый надежный VPN всего за 5$ в месяц... И давать доступ к одному и тому же серверу десяткам людей (под разными логинами и паролями). И сделать красивый сайт с расценками, и дать на него рекламу и т.п.

И очень важный момент - сейчас вам расскажу:) Я подготовил бОльшую часть статьи в субботу, собирался выложить на сайт, но обстоятельства меня отвлекли и я не смог закончить и отвлекся. А вы же помните - я создал VPN пользователя VasyaPupkin и пароль qwerty123 - и то и другое есть в словаре каждого начинающего хакера.... В общем в понедельник мне пришло письмо от DigitalOcean о том, что им пришлось отрубить мой дроплет от сети, т.к. через шел дикий трафик и ДДОСились какие-то там сайты)) В общем, сервис с лажовым логином/паролем не провисел и двух полноценных дней, пароли подобрали и еще выложили на разные сайты со списками бесплатных VPN:) Другой сервер - там я ставил нормальные логины/пароли, живет нормально несколько недель. Так что не жалейте времени, придумывайте хорошие пароли, а то вашим VPN будете пользоваться не только вы!

Что ж, надеюсь объем статьи вас не напугал - она выглядит сложной и громоздкой, но реально там дел на 5 минут, ну может чуть больше если не имели раньше дел с линуксом и прочим. Но, даже если так, немного помучавшись, получите хорошую полезную вещь, и заодно освоите что-то новое)

Желаю, что бы у всех всё хорошо и быстро получилось, если что-то не так, пишите в комментариях, будем разбираться и чинить)

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

Платные инструменты тоже могут в любой момент исчезнуть: закон о запрете анонимайзеров и VPN давно приняли, но пока не применяли. В этой ситуации единственной гарантией свободы в интернете становится собственный VPN. Лайфхакер расскажет, как настроить его за 20 минут.

Выбираем хостинг

Для настройки VPN нужен VPS - виртуальный частный сервер. Вы можете выбрать любого хостинг-провайдера, главное, чтобы выполнялись следующие условия:

  • Сервер находится в стране, которая не подпадает под юрисдикцию российских органов власти, но находится достаточно близко к вашему реальному местоположению.
  • Оперативной памяти (RAM) должно быть не меньше 512 МБ.
  • Скорость сетевого интерфейса - 100 МБ/сек и выше.
  • Сетевой трафик - 512 ГБ и выше или неограниченный.

Количество выделенного места на жёстком диске и тип накопителя не имеет значения. Найти подходящее решение можно за 3–4 доллара в месяц.

При покупке сервера выбирайте KVM. OpenVZ и Xen тоже подойдут, если у них подключён TUN - об этом нужно спросить в технической службе хостинг-провайдера.

С KVM никаких дополнительных манипуляций производить не придётся, хотя некоторые хостинг-провайдеры и на нём могут ограничить возможность создания VPN. Уточнить это можно также в службе поддержки.

При настройке сервера в пункте «Имя хоста» можно вписать любое значение: например, test.test . Префиксы NS1 и NS2 тоже не важны: пишем ns1.test и ns2.test .

Операционная система - CentOS 7.4 64 bit или любой другой дистрибутив, принципиальных отличий в настройке нет. Сетевой трафик оставьте 512 ГБ или выберите дополнительный объём, если боитесь, что имеющегося не хватит. Локация - чем ближе, тем лучше. Нидерланды подойдут.

После оплаты на почту придёт письмо со всеми необходимыми данными для настройки VPN. Вы приобрели место на сервере другой страны, осталось перенаправить на него весь трафик.

Настраиваем VPN

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

Запустите Putty. На вкладке Session в поле Host Name введите IP-адрес, который пришёл в письме, и нажмите Open.

При появлении окна с предупреждением об опасности нажмите «Да». После этого запустится консоль, через которую вы будете отправлять команды серверу. Для начала нужно залогиниться - данные для авторизации также есть в письме от хостера. Логин будет root , его напечатайте руками. Пароль скопируйте в буфер обмена. Для вставки пароля в консоль щёлкните правой кнопкой и нажмите Enter. Пароль не отобразится в консоли, но если вы авторизовались, то увидите информацию о системе или номер сервера.


Между вводом логина и пароля не должно пройти много времени. Если появилось сообщение об ошибке, перезапустите Putty и попробуйте ещё раз.

Для настройки VPN я использовал готовый скрипт OpenVPN road warrior. Этот способ не гарантирует полную анонимность, так что при совершении противозаконных действий пользователя легко найти. Но для обхода блокировки его достаточно. Если все VPN-сервисы перестанут работать, это подключение продолжит функционировать, пока я плачу за хостинг.

Чтобы использовать скрипт, вставьте в консоль строчку wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh .

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

  1. IP-адрес должен совпадать с IP-адресом, который вы получили в письме от хостера.
  2. Протокол оставьте по умолчанию UDP.
  3. Port:1194 - согласитесь.
  4. Какой DNS использовать - выберите Google. Сотрите 1 , напишите 3 и нажмите Enter.
  5. Client name - укажите имя пользователя. Можно оставить client .
  6. Press any key - ещё раз нажмите Enter и дождитесь окончания настройки.

После завершения настройки необходимо создать файл, через который вы будете подключаться к VPN. Введите команду cat ~/client.ovpn .

В консоли появится содержимое файла. Прокрутите экран наверх к команде cat ~/client.ovpn и выделите всё, что появилось ниже, кроме последней строчки. Выделение должно закончиться на . Для копирования фрагмента нажмите Ctrl + V.

Запустите «Блокнот», вставьте скопированный фрагмент и сохраните файл на рабочем столе с именем client.ovpn .

Подключаемся к серверу

Для подключения с помощью созданного файла нужен клиент OpenVPN. Версию для компьютера можно скачать . Загрузите и установите программу, но не запускайте. Щёлкните правой кнопкой по файлу client.ovpn и выберите пункт Start OpenVPN.

Появится окно консоли с инициализацией соединения. Если подключение прошло успешно, внизу будет статус Initialization Sequence Completed . В процессе соединения может появиться окно выбора сети, нажмите на общественную сеть.

Чтобы убедиться, что подключение установлено верно, . Он должен совпадать с тем, который хостер написал в письме. Чтобы перестать направлять запросы на сервер в другой стране, закройте окно OpenVPN.

У OpenVPN есть также клиенты для мобильных устройств.

Для установки подключения перенесите в память телефона файл client.ovpn . Запустите приложение и выберите пункт OVPN Profile. Укажите путь к файлу и передвиньте ползунок в положение «Включён».


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

В сети много мануалов как поднять свой VPN-сервер на облаке Amazon AWS, но под unix-подобные системы, а вот как поднять его на Windows не рассматривается вовсе.

Поскольку мануалов я не нашел, захотелось разобраться самому и сделать связку Amazon EC2 based on Windows Server + OpenVPN + Android OpenVPN Client.

Топаем в меню Services Compute EC2 Instances . Нажимаем Launch Instance чтобы открылся Wizard . В списке доступных AMI выбираем Microsoft Windows Server 2008 R2 Base - ami-59fc7439

На втором шаге выбираем доступный вариант t2.micro (Free tier) - его возможностей нам хватит с лихвой. Не спешим нажимать Launch - нажимаем Next:Configure Instance Details (предполагаю, что у вас по дефолту настроен VPC, есть дефолтные подсети и создан KeyPairs. Если ключи не созданы, то идём сначала в Dashboard Key Pairs Create . Ключ сохраняем себе куда-нибудь. К слову, я пересобрал с нуля VPC, оставив в нем только одну сеть 10.100.11.0/24).

Настройки оставляем по-умолчанию, а вот Auto-assign Public IP ставим Enable . Затем нажимаем на Preview and Launch. Ждем несколько минут, пока инстанст создается.

В Dashboard слева выбираем раздел Network & Security Security Groups . Выбираем группу, которая ассоциирована с нашим инстансом. Снизу на вкладках Inbound,Outbound добавляем временно разрешения на пропуск всего трафика (alltraff).

На текущий момент там разрешен только RDP. Те, кто спешат, могут на обоих вкладках разрешить порт 1194 для OpenVPN и ICMP. Теперь, когда инстанс создан и работает, нам необходимо подключится к нему. Выбираем наш инстанс, нажимаем Connect .

Появляется окошко с предложением скачать RDP-файл и получить пароль. Скачиваем. Нажимаем Get Password , указываем наш файл ключа, дешифруем, получаем пароль. Первая половина дела завершена. Открываем RDP, соединяемся с хостом.

1. Скачать Google Chrome, чтобы было удобнее проверять.
2. Скачать OpenVPN.
3. Поднять сервер с дефолтной конфигурацией.
4. Поднять NAT.

С первыми двумя пунктами проблем возникнуть не должно, разве что скачивать придется через IE. OpenVPN качаем с официального сайта (MSI), ставим с дефолтными настройками, ничего не меняем.

Через Chrome заходим на ipleak.net и проверяем свой IP. Он будет где-то в регионе США/Орегон. Как сделать сертификаты сервера и клиента для OpenVPN расписывать не буду, материалов достаточно по этой теме. Обязательно создаем PAM-файл (Диффи-Хеллман), без него сервер не запустится.

Ок, всё скачали, установили. На нашем сервере открываем Server Manager , идем в раздел Services . Находим службу OpenVPN Legacy Service , открываем её свойства - указываем Startup type: Automatic и запускаем службу. Это нужно, чтобы после рестарта нашего инстанса OpenVPN-сервер запускался сам.

Теперь открываем - туда скидываем ключи CA.key, server.key,ta.key и dh2048.pem и сертификаты CA и server. Открываем C:\Program Files\OpenVPN\sample-config и оттуда копируем файл server.ovpn в C:\Program Files\OpenVPN\config .

Перезаписываем содержимое like this:

port 1194
proto udp
dev tun

Ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
# виртуальная сеть нашего VPN
server 172.10.10.0 255.255.255.0

Ifconfig-pool-persist ipp.txt
keepalive 10 120

Tls-auth ta.key 0 # This file is secret
cipher AES-256-CBC

max-clients 100

Persist-key
persist-tun

dev-node «HomeVPN»

#HomeVPN - это TAP, созданный при установке OpenVPN. Я его переименовал для удобства

#это нужно чтобы все клиенты могли маршрутизироваться без напрягов
push «route 0.0.0.0 0.0.0.0»

#указываем свои DNS, но это не обязательно
push «dhcp-option DNS 8.8.8.8»
push «dhcp-option DNS 8.8.4.4»

Verb 3
explicit-exit-notify 1


Сохраняем.

Настройка сервера завершена. Выбираем server.ovpn , открываем контекстное меню, выбираем пункт Start OpenVPN on this config file .

После этого откроется терминал и пойдет процесс загрузки. Если все сделано правильно, то увидите в конце надпись Initialization Sequence Complete .

Теперь чтобы не было проблем с подключениями клиентов нужно сделать одну вещь (на выбор), либо в Windows Firewall пишем правила для пропуска трафика OpenVPN и разрешаем порт 1194, либо просто выключаем Firewall. Я выбрал второй пункт .

Теперь нужно создать конфигурацию клиента. Предполагается что на вашем клиенте (Android) установлен OpenVPN Client и в наличии все нужные сертификаты и ключи, в том числе клиентский.

Конфигурация клиента такая:

client
dev tun
proto udp
remote ххх-хх-ххх-ххх-ххх.us-west-2.compute.amazonaws.com 1194
resolv-retry infinite
route-method exe
nobind
persist-key
persist-tun
ca ca.crt
cert client.crt
key client.key
remote-cert-tls server
tls-auth ta.key 1
cipher AES-256-CBC
auth SHA1
verb 3
route 0.0.0.0 0.0.0.0 vpn_gateway

В OpenVPN для андройд импортируем конфигурацию. На вкладке Основные ставим тип аутентификации Сертификаты , т.к. пароля у нас в принципе нет. Проверяем вкладку Список серверов , должен быть указан ваш сервер Amazon, порт 1194 и тип UDP. На вкладке IP-адрес и DNS Запрашивать параметры .

На вкладке Маршрутизация для IPv4 должна быть установлена опция Использовать маршрут по-умолчанию .

Сохраняем конфигурацию.

Пробуем подключиться к своему серверу. Если соединение не устанавливается, проверяем Network & Security Security Groups и фаерволл. Если всё ОК, то появится надпись SUCCESS и вы получите какой-либо из IP сети VPN. В моем случае это 172.10.10.6/30.

На клиенте пробуем открыть какой-нибудь сайт… Соединение вроде есть, а сайты не открываются.

В чем же дело? Дело в NAT.

В сети есть мануалы, как настроить NAT на Amazon, с созданием дополнительного AMI, Internet Gate, IP Elastic и прочим фуфлом. Ничего этого делать не нужно.

Всё гораздо проще.

Возвращаемся на наш сервер, создаем роль Network Police and Access Services . В нее входит роль Routing and Remote Access . Открываем контекстное меню, выбираем Configure and Enable .

Выбираем последний пункт, чтобы создать свою конфигурацию. На следующем шаге выбираем два последних пункта, NAT и LAN routing .

После раскрываем роль Routing and Remote Access IPv4 NAT . Создаем интерфейс: LAN1 - тот, что смотрит в интернет. В свойствах ставим Public interface и Enable NAT on this interface . Открываем вкладку Address Pool . Нажимаем Add .

Тут нам нужно добавить IP-адрес нашей машины, не своей сети, а именно машины (ipconfig /all)
Напоминаю, что моя сеть 10.100.11.0/24 , сеть VPN 172.10.10.0/24 , адрес машины 10.100.11.20 . Start address указываем 10.100.11.20 и End address указываем его же. Маска 255.255.255.0

Сохраняем.

Теперь в этом же режиме нажимаем кнопку Reserve Addresses . Нам нужно «соединить» адрес клиента VPN (он при подключении был 172.10.10.6/30) с адресом машины.
Нажимаем Add

Reserve this public IP ставим 10.100.11.20 , а графой ниже пишем 172.10.10.6
Опцию Allow incoming не ставим .

Сохраняем.

Теперь остался последний шаг - в NAT добавляем еще один интерфейс - TAP. Я его назвал у себя HomeVPN. Для него настроек нет, он Private Interface. NAT для него не ставим.

Таким образом получилась «переадресация» из VPN в LAN: 172.10.10.6 → 10.100.11.20 .

На клиенте делаем реконнект, ждем когда VPN-поднимется, открываем ipleak.net и смотрим.

IP-адрес на клиенте будет в регионе USA/Oregon, а IP-адрес WebRTC должен будет показать IP адрес нашего VPN-сервера, т.е. 172.10.10.6 .

Если всё так, значит у вас получилось. Если не так, значит на каком-то шаге вы ошиблись, либо поспешили.

В заключении, идем в Dashboard → раздел Network & Security → Security Groups. Выбираем группу, которая ассоциирована с нашим инстансом. На вкладках Inbound,Outbound убираем разрешения на пропуск всего трафика. Оставляем RDP, и кто не сделал ранее, добавляем правила для порта 1194 и разрешаем ICMP.

За сим - всё. Благодарю.

P.S. На Windows-клиентах не тестировал, но думаю, всё должно быть также, как на android.

Роскомнадзор разбушевался не на шутку. Ведомство блокирует сайты, блокирует сервисы. На днях добрался и до мессенджера Telegram. А еще в планах Роскомнадзора полная блокировка VPN-сервисов или принуждение их к сотрудничеству.

Короче, прощай анонимность? Как бы не так!

Обсуждая с главным редактором Никитой Горяиновым и моим коллегой Артемом Баусовым проблематику блокировок, задумались о создании собственного VPN. В лихих 2000-х все мы баловались шутерами по сети и свой сервер создавать приходилось еще на заре знакомства с компьютерами.

Теперь же ситуация стояла как-никогда остро. В России продолжается активная блокировка всего, что неугодно Роскомнадзору, на Украине – свое веселье. Mail.ru, Yandex и десяток весьма полезных ресурсов без лишних танцев жителям недоступны.

Ну мы же за демократию? В этом материале я постараюсь максимально просто и подробно рассказать, как сделать свой VPN-сервер за смешные 75 рублей в месяц.

Почему именно свой VPN

В App Store и Google Play десятки сервисов, позволяющих обходить блокировки. Но практически все VPN не отличаются достойным быстродействием. Скорость безбожно шейпится, от рекламы – тошнит, а практически каждые 10-15 минут приходится переподключаться.

К тому же, когда вы используете публичный VPN (да еще и бесплатный), вы абсолютно не знаете, куда уходит ваш трафик и что с ним происходит на удаленных серверах очередного сервиса-однодневки.

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

Создаем облачный сервер

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

Ну что, поехали!

ArubaCloud – наше все

В сети есть десятки вариантов облачных серверов. Но нам же нужен «дешевый и сердитый», правда? Один из таких – итальянский облачный сервер ArubaCloud .

Что в нем хорошего? Минимальная стоимость в 1 евро (75 рублей) за месяц обслуживания удаленного сервера. Что подразумевается под удаленным сервером?

Представьте себе старенький 1-ядерный компьютер с 1 ГБ оперативной памяти и 20-гигабайтным жестким диском. И вот такой компьютер всего за 75 рублей вам отдают на удаленное растерзание.

Вот характеристики той самой бюджетной машины:

Но, поверьте, для наших задач и разворачивания собственного VPN-сервера этой мощности вполне достаточно.

Приступаем

Регистрируемся на ArubaCloud

Шаг 2. Запускаем утилиту и проводим несложные настройки.

Сперва выбираете New и заполняете соответствующие поля, как расписано на скриншоте ниже.

Connection Name: тут ставите любое имя. Просто называете свое подключение.

PC Name: IP-адрес, который указан в настройках сервера сразу после его создания (шаг 4. данной инструкции).

User Name: В SSH это именно vdesktop . Указываете именно его. Пароль – тот, что задавали в пароле администратора.

Запускаете соединение и через пару секунд видите рабочий стол операционной системы Ubuntu Virtual Desktop.

Остается заключительный этап – создание собственного VPN.

Создаем свой VPN-сервер

Эта настройка сводится всего к нескольким шагам. От собственного VPN-сервера вас отделяет одна команда в терминале.

Шаг 1. В левом нижнем углу тапните по пиктограмме (а-ля меню Пуск в Windows). Выберите System Tools -> LXTerminal . В открывшемся терминале введите следующую команду (будьте внимательны):

wget https://git.io/vpnsetup -O vpnsetup.sh && sudo sh vpnsetup.sh

Примечание: в команде указано -O (анлийская буква "O", не ноль) .

Нажимайте Enter и ждите пару минут, пока окончится установка.

Шаг 2. В конце вы получите сообщение со всеми данными собственного VPN-сервера. ОБЯЗАТЕЛЬНО сохраните эти данные, запишите их и скопируйте в несколько потайных мест, чтобы потом не искать.

Все, VPN-сервер запущен. Теперь можно смело подключать его на любых устройствах.

Включаем свой VPN на iPhone

Для того, чтобы на iPhone появился пункт настроек с VPN, установите любое мобильное VPN-приложение из App Store. Оно понадобиться лишь для активации пункта меню.

После установки VPN-приложения откройте Настройки -> VPN и, создав собственный VPN, вводите следующие данные.

Имя: Любое имя для VPN какое вы решите

Тип: IPsec Xauth PSK (или IPsec)

Адрес сервера: тут IP-адрес вашего облачного сервера

Идентификатор IPSec: оставляете пустым

Общий ключ IPSec: указываете пароль IPsec PSK из терминала

Имя пользователя: Username из терминала (как правило, vpnuser )

Пароль: Password из терминала

ДОПОЛНЕНИЕ:
По не совсем понятным причинам многие пользователи сталкиваются с ситуацией, когда в VPN подключается, но интернет отказывается работать.

В таком случае в терминале выполните команду:

sudo nano /etc/ipsec.conf

Замените sha2-truncbug=yes на sha2-truncbug=no и перезагрузите Linux.

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