NexxDigital - компьютеры и операционные системы

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

Например, используя общественный Wi-Fi, все данные которые передаются через сеть могут быть «угнаны». Теоретически, это могут быть любые файлы, но обычно крадут пароли от кошельков, почты, скайпа и чего угодно. В этой статье мы настроим собственный VPN-сервер, это не сложно. Несмотря на объёмность текста, основное действие занимает малую часть, а остальное — плюшки В статье также есть видео.

В интернете есть куча и маленькая , от бесплатных до очень платных. Недостатки бесплатных VPN-сервисов:

  • ограничены в скорости
  • нестабильность (то всё хорошо, то жутко тормозит)
  • ограничения трафика (до нескольких Гигабайт в месяц)
  • ограничения периода бесплатного пользования
  • периодически нужно искать другие сервисы
  • не факт, что передаваемые данные будут в безопасности, совсем не стоит надеяться на анонимность, я бы сказал.

Недостатки платных:

  • не всегда есть нужная страна или город
  • заезженные IP-адреса (используются сотнями клиентов), относится и к бесплатным
  • бывает просто обман без возврата денег, например, трафик не безлимитный, некоторые сервера не работают или слишком медленные

Есть и преимущества VPN-сервисов – это простота использования, относительная дешевизна.

Собственный VPN-сервер на хостинге VPS/VDS

Итак, если нужна конкретная страна или город, или требуется много трафика, который не дают VPN-сервисы, гарантия безопасности — тогда есть смысл заморочиться настройкой личного VPN-сервера. Как правило, это требует глубоких знаний системного администрирования серверов. Но я постарался объяснить всё просто, чтобы разобрался даже чайник)

Недостатки у этого способа тоже есть:

  • всего один IP-адрес, на который вы можете «пересесть», но есть дополнительные за отдельную плату
  • нетривиальная настройка в первый раз
  • платно

Дочитайте до конца, и я покажу как использовать свой VPS сервер для обхода блокировок без настройки на нём VPN.

Что такое VPS/VDS сервер?

Хостинг-провайдеров в интернете бесчисленное множество. Все они позволяют размещать у них свои веб-сайты. Самая популярная услуга – это виртуальный хостинг. Более продвинутая – это выделенный виртуальный сервер – VPS (VDS — это, считай, тоже самое). На VPS можно размещать сайты, поднимать VPN-сервер, почтовый сервер, игровой сервер – да что угодно!

Вам нужно знать, что VPS-сервера бывают нескольких видов: OpenVZ, Xen и KVM. Для работы VPN-сервера нужно KVM . Тип сервера указан в тарифах хостинга. OpenVZ и Xen тоже иногда подходят, но нужно писать в техподдержку хостинга и спрашивать, подключён ли модуль “TUN”. Не вдаваясь в подробности для чего это, просто спрашиваете. Если нет, то могут ли они включить его. Не помешает также спросить, будет ли работать VPN как таковой (даже на KVM), т.к. некоторые компании прикрывают эту возможность. Ах да, операционная система сервера – Debian, Ubuntu или CentOS (в общем, Linux-подобная). Мощность сервера не имеет значения.

Настройка VPN-сервера

В моём распоряжении имеется VPS-сервер KVM . Здесь сразу всё работает, никуда писать не надо.

  • При заказе услуги можно выбрать самый простой тарифный план «Micro»
  • Все сайты открываются даже на серверах в России
  • Есть бесплатный тестовый период 7 дней
  • Техподдержка помогает
  • Для моих посетителей, при вводе промокода: itlike60 — вы получите реальную скидку 60% на первый платёж.

«Hostname» вводим любой или имя своего сайта (если в будущем будете ). «OS Template» выбираем «Ubuntu 14.04 64bit» или любую из Ubuntu, Debian, CentOS:

Операционную систему потом можно поменять, если вдруг что не получится.

После оплаты на почту приходят данные для входа в панель управления и Root-пароль для настройки сервера. А также IP-адрес сервера, и именно он будет вашим IP-адресом, когда мы поднимем VPN и подключимся к нему с компьютера

Нажимаем кнопку «Manage» и попадаем в окно администрирования:

Здесь нам ничего не нужно трогать. Единственное что может понадобится – это переустановка операционной системы – кнопка «Reinstall», об этом позже.

Теперь нам нужно подключиться к серверу чтобы посылать ему команды. Для этого будем использовать бесплатную программу Putty.

Распаковываем архив с программой и запускаем файл

putty.org.ru\PuTTY PORTABLE\ PuTTY_portable.exe

В поле «Имя хоста» вставляем IP-адрес сервера, который пришёл в письме, также его можно скопировать с панели управления:

и нажимаем «Соединиться». Если выскочило вот такое окно, то жмём «Да»:

Перед нами должно появиться чёрное окно консоли (командная строка). Именно здесь мы и будем давать команды. Но сперва нужно залогиниться. Для этого в поле «login» вводим «root»

Затем копируем из письма root-пароль и вставляем его в поле «password». Чтобы вставить сюда из буфера обмена, нужно просто кликнуть один раз правой кнопкой мышки по окну консоли. При этом пароль не печатается на экране, такое чувство что ничего не произошло. Всё нормально, жмём «Enter». Должны проскочить строчки с информацией о системе. Если же написало какую-то ошибку, то проверьте всё ещё раз. Также, консоль не будет долго ждать, пока вы ищете root-пароль. Если к тому моменту выскочит ошибка, то запускайте Putty заново.

Установка и запуск главного скрипта

Мы уже на финишной прямой в настройке собственного VPN-сервера. Существует множество инструкций в интернете как установить сервер, но все они требуют знаний системного администратора, ибо мелкие нюансы упускаются из виду. На радость всем чайникам, существует универсальный скрипт «OpenVPN road warrior», который сделает всю работу сам. Нам нужно только дать команду скачать и запустить его.

Итак, копируем эту строчку и вставляем в консольное окно правой кнопкой и жмём «Enter»:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Проскочат всякие строчки и, если скрипт успешно скачался и запустился, с нами начнётся диалог мастера настройки VPN-сервера:

Скрипт находит предполагаемое значение для каждого параметра и предлагает с ним согласиться, т.е. нажать «Enter», либо ввести своё значение.

  1. Первый параметр – это «IP address» . Скрипт должен предложить тот самый айпи VPS-сервера. Так должно быть в 99.9% случаев, но если это, почему-то, не так, то исправьте на правильный адрес.
  2. Второе — протокол UDP или TCP . Оставляем по умолчанию UDP.
  3. Идём дальше, «Port: 1194» — соглашаемся.
  4. «What DNS do you want to use with the VPN?» — выбираем «Google», т.е. вбиваем цифру «2» вместо единички, Enter. Если гугл заблокирован, то оставляем по умолчанию.
  5. «Client name» — имя пользователя. Можно создать доступ для разных пользователей. По умолчанию «client» — соглашаемся.
  6. «Press any key…» — нажать «Enter» и подождать несколько минут, пока всё установится и сконфигурируется.

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

cat ~/client.ovpn

На экран будет выведено содержимое файла «client.ovpn». Теперь его надо аккуратно скопировать в буфер обмена. Листаем вверх до ввода команды, выделяем мышкой все строчки, кроме самой последней (для новых команд), т.е. последняя выделенная строчка будет “ ”. Чтобы скопировать выделенное в буфер обмена жмём «Ctrl-V».

Теперь на компьютере в Windows 7/8/10 открываем блокнот и вставляем в него скопированный текст. Сохраняем файл на рабочем столе под именем «client.ovpn».

Если планируется давать доступ к серверу другим людям, то лучше создать для них отдельные файлы, например vasya.ovpn. Для этого просто запускаем скрипт ещё раз и выбираем теперь 1-й пункт — создание нового пользователя.

Установка клиента для Windows 7/8/10/XP и Android

Поздравляю, мы на финишной линии! Теперь только осталось установить бесплатную программу, которая будет подключаться к нашему VPN-серверу. Называется она «OpenVPN».

Скачиваем версию для Windows и устанавливаем её, запускать не надо.

Если в процессе установки будут выскакивать всякие окошки, со всем соглашаемся.

Чтобы подключиться к серверу кликаем на рабочем столе по файлу «client.ovpn» правой кнопкой и выбираем «Start OpenVPN on this config file»:

Появится чёрное окошко с процессом инициализации подключения. Если всё прошло успешно, то последняя строчка должна быть, типа:

Ещё может выпадет окно с вопросом типа новой сети, тогда выбираем «Общественная сеть».

Можно проверять, заходим на сайт 2ip.ru и смотрим свой IP, должен совпадать с IP VPS-сервера:

Окно консоли сервера теперь смело можно закрывать. А чтобы закрыть впн-соединение и вернуть старый айпи – нужно закрыть окошко от OpenVPN.

Чтобы подключиться в следующий раз, достаточно просто запустить правой кнопкой файл «client.ovpn» с рабочего стола, больше ничего делать не требуется.

С телефоном всё ещё проще, нужно установить через плеймаркет приложение OpenVPN, закачать в память файл client.ovpn, выбрать его в приложении и подключиться к нашему vpn-серверу.

Что если что-то пошло не так

Если чувствуете что из-за вашей ошибки теперь всё идёт наперекосяк, то можно переустановить операционную систему на хостинге. Для этого в панели управления кликаем «Reinstall» (см. скриншот панели) и выбираем новую операционную систему (или ту же):

Давим кнопку «Reinstall» и ждём 10 минут. Также будет выдан новый Root-пароль, не потеряйте его!

Ошибки при подключении

Большинство проблем возникает на этапе подключения к серверу в программе OpenVPN, особенно в Windows 8/10. В чёрном окошке могут быть ошибки, например:

  • FlushIpNetTable failed on interface
  • All TAP-Win32 adapters on this system are currently in use
  • CreateFile failed on TAP device
  • DNS failed..

При этом первое что надо сделать — это дать программе права администратора и, соответственно, заходить в систему с правами администратора. Идём в «C:\Program Files\OpenVPN\bin\» , кликаем правой кнопкой по файлу openvpn.exe -> свойства. На вкладке «Совместимость» ставим галку «Выполнять эту программу от имени администратора». Теперь всё должно работать.

Ещё варианты лечения:

  • удалить программу и переустановить от имени админа
  • выключить службу «Маршрутизация и удалённый доступ» (“Routing and Remote Access”) через «Панель управления -> Администрирование -> Службы»
  • попробовать переустановить из или отсюда
  • удалить все ВПН’овские программы и приблуды от других платных и бесплатных сервисов

Понять, точно ли проблема в компьютере или ноутбуке, можно, если установить через плеймаркет приложение OpenVPN на телефон или планшет, закачать на него файл client.ovpn и подключиться к нашему vpn-серверу. Если и так не получится, то нужно искать причину на сервере, написать в службу поддержки.

Если всё заработало, на сайты тупят и открываются с перебоями

Обратите внимание на сообщения в чёрном окне, нет ли там повторяющихся строчек «read from TUN/TAP … (code=234)»

а также на сообщение где-то в середине «WARNING: ‘tun-mtu’ is used inconsistently, local…»:

В этом случае открываем файл client.ovpn в блокноте и в новой самой первой строке пишем:

tun-mtu ‘значение сервера’

значение сервера — это число, указанное в конце строчки в тексте «remote=’tun-mtu 1500′». Подставляем своё значение! В итоге должно получится так:

Делается это потому, что по каким-то причинам значение MTU на компьютере и на VPS-сервере различаются. Файл.ovpn для смартфона оставляем нетронутым!

Пускаем трафик через прокси вообще без настроек

Можно использовать наш VPS/VDS сервер как Proxy Server. Для этого делаем всё как раньше до момента нажатия кнопки «Соединиться» в программе Putty. Не нужно открывать консоль и запускать скрипт. Идём на вкладку «SSH->Tunnel» , прописываем Source Port: 3128

Упс, статью дописывал позже, тут у меня Putty на английском, но суть та же.

Если пишет ошибку «You need to specify a destination address in the form host.name:port», то переключите на «Dynamic» вместо «Local».

На вкладке «Connection» в поле «Seconds between keepalives…» ставим 100 секунд, это надо чтобы коннект не разрывался из-за простоя. Теперь подключаемся — нажимаем «Open», вводим логин/пароль. Далее, идём в настройки сети в браузере и прописываем там прокси-сервер. В хроме это «Настройки->Поиск настроек->пишем ‘прокси’->Настройки прокси-сервера». Делаем всё как на скриншоте:

Теперь все сайты будут работать через наш сервер, но только в браузере и некоторых программах. Другие программы не увидят прокси, будут работать напрямую. Нужно в каждой программе в настройках подключения, если они предусмотрены, прописать адрес, порт и тип прокси: Socks4/5. Или устанавливайте OpenVPN и не используйте прокси.

Как пускать через прокси только отдельные сайты

Устанавливаем расширение для Google Chrome или Mozilla Firefox, называется . В настройках надо добавить наш прокси-сервер:

На вкладке «URL Patterns» добавляем маски сайтов, которые должны открываться через наш сервер. Маска сайта это его имя со звёздочками по бокам.

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

Ярлык для автоматическое подключения

Подключать Putty к прокси можно одним кликом. Для этого нужно перед подключением в разделе «Connection->Data» прописать логин сервера, тот, что обычно root

Теперь нужно создать ярлык на рабочем столе, в котором указать такие параметры:

«C:\Program Files\PuTTY\putty.exe» -load myvpn -pw пароль_к_серверу

где myvpn — это имя сохранённой сессии. Всё, осталась одна деталь — убрать окно Putty из панели задач в системный трей. Нужно скачать модификацию утилиты и заменить exe-файл. Теперь в настройках на вкладке Behaviour появится соответствующая галочка, но этого можно и не делать.

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.

Развертывание 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?

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

VPN – это сокращение от Virtual Private Network, или говоря русским языком – «Виртуальная частная сеть». Суть этой замечательной технологии в том, что она позволяет организовать сети/несколько сетевых подключений поверх другой сети. Под другой сетью обычно подразумевается Интернет, но обычная сеть тоже может выполнять эту роль.

Если есть сеть по которой мы и так можем соединяться с удаленными компьютером/компьютерами, то для чего тогда заморачивать себе голову с VPN? На самом деле все просто. В первую очередь это безопасность.. VPN соединения являются защищенными, т.к. весь трафик между ними шифруется. Следовательно, даже если злоумышленнику удастся перехватить твой трафик, то он ничего полезного из него он не выдернет. Итак, ключевой момент использования VPN – безопасность.

Рассмотрим еще одну жизненно-важную ситуацию. Представь, что тебе требуется из дома подключиться к своей корпоративной сети. Как это сделать? Если речь идет о подключении к одному компьютеру, то задачу можно решить банально с помощью средств удаленного администрирования, коих сейчас очень много. Ярким примером таких средств можно является уже знакомый многим – Remote Administrator или как принято говорить в народе: «Radmin». Устанавливаешь серверную часть на компьютер, с которым будешь соединяться, а клиента ставишь себе. Все гениально просто и в принципе безопасно, т.к. Radmin хорошо шифрует свой трафик, поэтому злоумышленник опять же остается не удел.

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

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

VPN туннели

Эту фразу ты мог видеть в различной литературе и особенно в журнале ][акер. В нем уже неоднократно описывались нюансы создания и нестандартного использования этой технологии. Если ты интересуешься хакингом и безопасностью, то рекомендую зайти на официальный сайт журнала и посмотреть электронную подшивку. 100%, что найдешь много всего интересного.

Вернемся к нашим кроликам. Ой! Я хотел сказать VPN туннелям. Итак, VPN туннелям принято называть канал, который образовался в результате соединения VPN клиента с VPN сервером. Ты уже знаешь, что, такое соединение является безопасным и все передаваемы по нему данные, надежно зашифрованы. Если тебе доводилось видеть различные вузовские учебники по сетям, то в них обычно используют термин «канал типа точка-точка». Понятия «VPN туннель» и «канал типа точка-точка» тождественны и ты можешь пользоваться любым. На протяжении всей статьи я буду употреблять именно «VPN туннель». Мне оно больше нравится.

Peers, но те которые в Torrents

Еще одним важным термином в области VPN считается – peers (узел). Те, кто пользуется торрент-трекерами наверняка в курсе о значении этого слова в той среде. В VPN, этот термин применяют к компьютерам, установившим VPN-соединение. Т.е. когда ты устанавливаешь со своего компьютера VPN соединение, тебя можно смело назвать пиром.

Немного о шифровании

Шифрование – это один из ключевых моментов в VPN. Тема достаточно большая и по ней можно написать не одну добротную статью. Я не буду вдаваться в подробности и скажу, лишь, что за шифрование отвечают оба пира, которые установили туннель. Например, мы имеем две сети, соединенные посредством VPN шлюзов. Схематично эту модель можно представить так:

Сеть A -> VPN Шлюз A -> ИНТЕРНЕТ -> VPN Шлюз B-> Сеть B .

При таком раскладе алгоритм будет таким. Данные из сети A передаются на VPN-шлюз A в абсолютно неизменном виде. Затем (уже на шлюзе) они шифруется, и передаются по VPN-туннелю, проброшенным, через небезопасную сеть. В моем примере, небезопасной сетью выступает ИНТЕРНЕТ. Получив зашифрованный набор данных, VPN-шлюз B, произведет их расшифровку и чистый набор отправит в Сеть B. На основании вышеперечисленного, делаем вывод, что данные остаются в шифрованном виде, лишь во время передачи их по VPN-туннелю. Как только доставка завершена, данные перестают быть зашифрованными.

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

Немного о принципах работы VPN

В общем виде, все VPN придерживаются нескольких общих правил:

1. Идентификация узлов перед созданием VPN-туннеля.

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

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

Давай, попрактикуемся

Самую необходимую теорию я до тебя донес и теперь надо бы попробовать все это дело на практике. Когда я писал первый вариант статьи, то я полностью посвятил его, настройке VPN-сервера на Kerio WinRoute. Я конечно мог так и поступить – оставить все как есть и ничего не изменять, но в самый последний день перед сдачей этого номера, я решил выделить несколько часиков времени и разнообразить информацию. Начать с наиболее простого примера, который обязательно будет полезен новичкам, а уже в следующих частях статьи рассмотреть более специфичные вещи, вроде поднятие VPN сервера с помощью OpenVPN и Kerio Winroute. Итак, начнем с самого простого примера – организации VPN-туннеля между двумя компьютерами, работающих, под управлением Windows XP. Важный момент. Никакой дополнительный софт я использовать не буду. Все будет сделано стандартными средствами.

VPN-туннель для Windows XP

Как я уже сказал, будем начинать с самого простого. Не многие знают, что в Windows XP есть встроенный VPN сервер. Чуешь, чем это пахнет? Ты можешь запросто пробросить туннель к удаленному компьютеру и воспользоваться всеми радостями VPN.

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

1. ПУСК -> Настройка -> Сетевые подключения.

2. Запусти «Мастер новых подключений».

3. В первом окне (смотри рисунок 1) выбери пункт: «Установить прямое подключение к другому компьютеру» и нажми «Далее».

4. В следующем окне (рисунок 2) сделай выбор в пользу «Принимать входящие подключения». Нажимай «Далее».

5. В следующем окне (рисунок 3), мастер создания нового подключения тебя спросит «Разрешать виртуальные частные подключения аль нет?». Мы собственно и собираемся принимать подключения, поэтому выбираем «Разрешать». После этого нажимаем «Далее». Вполне вероятно, что вид твоего окна будет отличаться от того что изображено на рисунке 3. Не обращай на это внимания, а просто нажми «Далее». Следующее окно должно быть таким, каким надо.

6. В очередном окне (рисунок 4) тебе требуется определить пользователей, которые могут подключаться. Выбирай из списка имеющихся или создавай новых. Не забудь, создаешь юзера - задай пароль. Как закончишь – кликни «Далее».

7. Наши усилия близки к завершению. На очередном шаге, от нас требуется настроить сетевые параметры. Можешь оставить все как есть. Единственное, что требуется – настроить протокол TCP/IP. Выдели этот пункт и нажми кнопку «Свойства». Перед тобой появится окно как на рисунке 5. Установи в нем флаг «Разрешать звонящим доступ к локальной сети». Отметь пункт «Указать адреса TCP/IP явным образом». После этого, пропиши диапазон «с» и «по». Я указал здесь следующий вариант: 192.168.1.40-192.168.1.50. Все клиенты, которые будут подключаться к нам, будут получать IP адреса из этого диапазона. Так, почти все, осталось лишь снять галку «Разрешить звонящему указывать свой адрес IP». Теперь точно все. Нажимай Ok, а затем «Далее».

8. Следующий шаг мастера чисто формальный и тебе остается лишь нажать на кнопку «Далее».

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

1. Запускай уже знакомый «Мастер новых подключений». После первого информационного шага выбирай «Подключиться к сети на рабочем месте» (рисунок 6). Нажми далее.

2. Теперь тебе требуется выбрать тип создаваемого подключения. Доступно два варианта:
- Подключение удаленного доступа
- Подключение к виртуальной частной сети.
Не трудно догадаться, что нас интересует второй вариант (рисунок 7).


3. Здесь нам требуется ввести название соединения. Вводи сюда любое имя. Разницы от этого никакой. Клацай опять на «Далее».

4. На этом шаге мастер попросит тебя определиться – «Требуется ли перед установкой VPN соединения выполнять подключение к публичной сети. Например, если VPN-сервер находится в инете, то сначала нужно установить соединение с Интернет, а уже после пытаться соединиться с VPN-сервером. Для себя я выбрал вариант «Не набирать номер предварительного подключения».

5. Это шаг заключительный. Здесь тебе требуется ввести IP адрес VPN-сервера. Мой VPN-сервер находится в локальной сети и имеет адрес 192.168.1.33. Все, кликай «Далее», а потом готово.

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

Connecting Complete

На сегодня это все. Проведи эксперименты с установленным соединением – попробуй найти ему практическое применение (например, организуй выход в инет, для VPN клиента), а в следующем номере, я расскажу тебе о настройке и практическом применении OpenVPN. Удачи в исследованиях.

Written by Игорь Антонов aka Spider_NET



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы