Как сделать vpn между офисами. Что делаем, когда VPN понадобится снова. Зачем это нужно

Обратите внимание, что здесь не стоит задача объяснить все досконально технически правильно, задача – объяснить «на пальцах» так, чтобы поняли даже начинающие пользователи. Надеюсь, что это получилось. Если есть вопросы – задавайте их в комментариях.

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

Что имеем? Запросы на адрес 77.88.21.11 отсылает не ваш компьютер, а VPN, соответственно, сервер 77.88.21.11 фиксирует именно IP-адрес VPN-сервера, а не вашего компьютера.

Одна из возможных причин применения VPNнеобходимость скрыть свой IP адрес .

Другое применение – необходимость изменить маршрут трафика . Возьмем пример из жизни. Автор этой статьи живет в городе Орле (Центральная Россия) и хочет подключиться к серверу yunpan.360.cn, расположенному в Пекине. Автор пользуется (точнее, пользовался на тот момент) услугами интернет-провайдера «Билайн». Как показала команда tracert yunpan.360.cn, введенная в командной строке Windows, исходящий интернет-трафик к этому китайскому серверу идет через США. Как трафик идет обратно, трассировка не показывает, но, судя по пингу, он идет примерно тем же маршрутом. Ниже скриншот из программы VisualRoute 2010.

Такая маршрутизация связана с тем, что «Билайн» не заплатил магистральным интернет-провайдерам за более прямой канал в Китай.

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

Что делать? Использовать VPN. Такой VPN-сервер, до которого у нас прямой маршрут, и от которого до yunpan.360.cn прямой маршрут. Я (автор статьи) очень долго искал приемлемое решение и в итоге его нашел. Был арендован виртуальный сервер (что это такое, речь пойдет позже) в Красноярске (сразу представляйте, где находится город Красноярск) у хостинг-провайдера . Трассировка до сервера показала, что трафик идет по России, пинг 95 мс (у меня был мобильный LTE (4G) интернет, на проводном интернете пинг будет на 5-10 мс пониже).

Пинг – это задержка интернет-сигнала. Измеряется задержка на прохождение интернет-трафика в обе стороны (туда и обратно). Измерить задержку только в одну сторону стандартными средствами невозможно, поскольку ваш компьютер отправляет запрос на пингуемый сервер и засекает время, за которое придет ответ.

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

Часто бывает так, что в разные стороны маршрут разный.

Далее была сделана трассировка с красноярского сервера до yunpan.360.cn. Пинг в районе 150 мс. Трассировка показала, что трафик от красноярского сервера до китайского идет через прямой пиринг (межсетевое взаимодействие) провайдера «Транстелеком» и «China Telecom».

Вот эта самая трассировка (сделана из-под Linux):

tracepath yunpan.360.cn
1?: pmtu 1500
1: srx.optibit.ru 0.361ms
1: srx.optibit.ru 0.381ms
2: border-r4.g-service.ru 0.392ms
3: kyk02.transtelecom.net 0.855ms asymm 5
4: 10.25.27.5 112.987ms asymm 8
5: ChinaTelecom-gw.transtelecom.net 125.707ms asymm 7
6: 202.97.58.113 119.092ms asymm 7
7: 202.97.53.161 120.842ms asymm 8
8: no reply
9: 220.181.70.138 122.342ms asymm 10
10: 223.202.72.53 116.530ms asymm 11
11: 223.202.73.86 134.029ms asymm 12
12: no reply

Что мы видим? Красноярский сервер находится на хостинге (хостинг – услуга размещения и аренды серверных мощностей) optibit.ru, подключен к интернет-провайдеру «Игра-Сервис» (g-service.ru). «Игра-Сервис», в свою очередь, трафик до yunpan.360.cn пускает через крупного российского магистрального провайдера «Транстелеком» (за что платит ему деньги). ТТК трафик направляет через свое прямое включение в сеть китайского магистрального провайдера China Telecom, об этом нам говорит домен хопа ChinaTelecom-gw.transtelecom.net.

Давайте вспомним, в чем была наша проблема. У нас трафик до того китайского сервера шел через США, скорость была низкой. Что я сделал? На этот красноярский сервер поставил VPN. И настроил свой компьютер на работу через этот VPN-сервер. Что получилось? Теперь трафик до yunpan.360.cn шел не по старому маршруту Орел-Москва-США-Китай, а вот так:

сначала до VPN-сервера – Орел-Красноярск,

затем от VPN-сервера до Пекина – Красноярск-Пекин.

Уловили суть? Мы развернули маршрут. Что это дало? Скорость исходящего соединения от меня до yunpan.360.cn возросла. Пинг был уменьшен. Результат был достигнут.

Как определить ваш маршрут? Для новичков самый простой способ это сделать – воспользоваться программой VisualRoute, которую можно найти в интернете как в лицензионном, так и взломанном видах.

Нужно запустить эту программу и выставить следующие настройки:

Получится вот так:

По этой таблице вы увидите, через какие страны проходит трафик. Еще раз обращаю внимание на то, что трассировка показывает маршрут только исходящего трафика (то есть трафика от вашего компьютера к серверу). Маршрут в обратную сторону может показать только трассировка, сделанная с сервера до вашего компьютера. У VisualRoute есть небольшой глюк: она часто показывает Australia (?) в качестве страны, когда не может определить настоящую геопозицию узла.

VPN – Virtual private network – виртуальная частная сеть – это, можно сказать, своя сеть поверх интернета, весь трафик внутри которой шифруется. Подробно изучить эту технологию можно и . Если объяснить совсем на пальцах, то:

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

VPN рекомендуется использовать при работе через бесплатный (или просто чужой) WiFi, поскольку существует возможность перехвата всего трафика, проходящего через WiFi-роутер. А при использовании VPN весь трафик будет зашифрован. Более того, если вы зайдете на yandex.ru, vk.com и google.ru без VPN, то на уровне роутера и вашего интернет-провайдера зафиксируются подключения к yandex.ru, vk.com и google.ru. При использовании VPN все подключения идут на адрес VPN сервера.

Существует множество платных сервисов VPN. К их преимуществам можно отнести разве что только простоту использования. Из недостатков следует выделить высокую стоимость, отсутствие 100% конфиденциальности (написать можно многое, а что на самом деле происходит на VPN-сервере, не перехватывается ли трафик, гарантировать невозможно). Невозможность сменить IP адрес в пару кликов также следует отнести к недостаткам платных сервисов.

Сравним стоимость нашего самостоятельно настроенного решения и платных VPN-сервисов. Последние стоят в районе 300 руб. в месяц. Наше решение будет стоить 0,007 долларов в час. Не используем VPN прямо сейчас – не платим. При использовании по 2 часа каждый день в течение 30 дней это удовольствие нам обойдется в 30-50 рублей.

Мы сделаем следующее:

  1. Арендуем сервер для VPN.
  2. Настроим на нем VPN.
  3. Будем ими пользоваться и платить только за каждый час реального использования VPN.

Шаг №1. Аренда сервера.

Нет, арендовать полноценный сервер мы не будем. Мы арендуем виртуальный сервер – VPS (virtual private server). В очень многих случаях для размещения сайтов в интернете или для других целей (в т. ч. для организации VPN) не требуется больших серверных мощностей, но необходимо «под себя» настроить операционную систему сервера. Одновременно на одном компьютере (и сервере в том числе, ведь это тот же компьютер, только обычно более мощный) сразу несколько операционных систем работать не может. Как быть? На помощь приходят виртуальные машины. Эта технология позволяет запускать операционную систему внутри операционной системы, что называется виртуализацией. В случае с серверами тоже создаются аналоги виртуальных машин – виртуальные сервера.

Существует несколько распространенных технологий виртуализации. Самые распространенные – это OpenVZ, KVM, Xen. Грубо говоря, у Xen и KVM для каждой виртуальной машины создаются своя «имитация железа», своя ОС и т.д. В случае с OpenVZ используется общее ядро ОС, в результате чего некоторые функции (например, внесение правок в ядро ОС) становятся недоступными, или их можно включать и отключать только для всех VPS сразу. VPS на Xen и KVM, как правило, более стабильны в работе, однако разница существенна только для крупных проектов, для которых критична отказоустойчивость серверов.

VPS на OpenVZ всегда дешевле, поскольку один виртуальный сервер требует меньше ресурсов. Из-за более низкой цена мы обратим свой взор именно на VPS на базе OpenVZ.

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

Для работы на сервере персонального VPN хватит минимальной конфигурации – 256 МБ ОЗУ и 0,5-1 ГГц процессора. Однако не все хостинги предоставляют VPS с 256 МБ ОЗУ: у многих минимальный тариф– 512 МБ ОЗУ. Такого VPS нам и подавно хватит.

Какие еще критерии выбора VPS существуют? Как вы уже поняли, интернет-трафик будет постоянно «ходить» от вас к VPS и обратно. Поэтому у магистральных каналов должна быть достаточная пропускная способность в обе стороны. Иначе говоря, скорость интернет-соединения между вашим компьютером и VPS должна быть достаточной для выполнения требуемых вам задач. Для повседневной комфортной работы хватит и 15 МБит/сек, а если вы собираетесь скачивать торренты через VPN, то вам могут понадобятся и все 100 Мбит/сек. Но! Если вы и VPS находитесь в сетях разных интернет-провайдеров (особенно в разных городах), вряд ли магистральные сети «вытянут» более 70 Мбит/сек внутри России (или вашей страны) и более 50 Мбит/сек с серверами в Европе.

Большинство хостингов требует помесячную оплату. Стоит сразу отметить, что разброс цен очень большой при примерно одинаковом качестве. Мы же будем пользоваться услугами с почасовой оплатой: 0,007 долларов за час работы нашего сервера. Таким образом, если мы будем пользоваться VPN по 2 часа каждый день, то в месяц мы заплатим около 30 рублей. Согласитесь, это не 350 руб/мес за платный VPN-сервис!

Первым делом нужно перейти на сайт и зарегистрироваться:

Далее откроется страница, на которой нужно указать данные своей банковской карты. Без этого система не будет работать и не даст возможности воспользоваться бонусными 10 долларами (об этом позже). Данные можно указать любые, система «съест» ненастоящие.

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

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

Однако, если вы введете в DigitalOcean данные карты Киви, то система ее «выплюнет», сославшись на то, что DigitalOcean не работает с предоплаченными и виртуальными картами. В таком случае вам нужно пополнить баланс на 5 долларов через систему PayPal, заплатив картой Киви.

После всего этого на той же странице в личном кабинете DigitalOcean вводим промо-код DROPLET10 , начисляющий нам 10 долларов, которые мы сможем полноценно использовать на сервера, не опасаясь дополнительных списаний с нашей карты.

Готово! Теперь перейдем к созданию VPS. Смотрим видео-урок:

При создании сервера выбирайте ОС Ubuntu версии 14.04, а не какой-либо более новой, в т.ч. не выбирайте 16.04.

Расположение сервера

Домен для пинга

Франкфурт, Германия

http://speedtest-fra1.digitalocean.com/

speedtest-fra1.digitalocean.com

Амстердам-1, Нидерланды

http://speedtest-ams1.digitalocean.com/

speedtest-ams1.digitalocean.com

Амстердам-2

http://speedtest-ams2.digitalocean.com/

speedtest-ams2.digitalocean.com

Нью-Йорк-1, США

http://speedtest-ny1.digitalocean.com/

speedtest-ny1.digitalocean.com

Нью-Йорк-2

http://speedtest-ny2.digitalocean.com/

speedtest-ny2.digitalocean.com

Нью-Йорк-3

http://speedtest-ny3.digitalocean.com/

speedtest-ny3.digitalocean.com

Сан-Франциско, США

http://speedtest-sfo1.digitalocean.com/

speedtest-sfo1.digitalocean.com

Лондон, Великобритания

http://speedtest-lon1.digitalocean.com/

speedtest-lon1.digitalocean.com

Сингапур

http://speedtest-sgp1.digitalocean.com/

Speedtest-sgp1.digitalocean.com

Примечание. Большинству жителей России и стран СНГ подойдет Амстердам или Франкфурт (пинг до Франкфурта в большинстве случаев будет немного меньше, чем до Амстердама). Жителям Дальнего востока России рекомендую протестировать Сингапур и сравнить показатели с европейскими серверами.

Расположение серверов за рубежом позволит с помощью VPN обходить запреты государственных органов на посещение определенных сайтов (если это актуально для вас).

У DigitalOcean в стоимость включено 1 терабайт (1024 ГБ) трафика (см. ). Большинству этого хватит с головой. У остальных хостингов трафик формально безлимитный, однако он становится нерентабельным для них при достижении порога 1-2 ТБ/мес.

Всё, мы заказали VPS. Поздравляю. Теперь пора перейти к его настройке.

Шаг №2. Настройка VPN.

Не пугайтесь, процесс настройки своего собственного VPN прост, как дважды-два!

В видео-уроке выше мы подключились к нашему серверу с помощью Putty. Теперь продолжим.

Копируем и вставляем (нажатием правой кнопки мыши, как мы делали в видео-уроке) команду:

Теперь копируем и вставляем в открывшееся окно редактирования файла следующее:

Нажимаем Ctrl+O, затем Enter.

Нажимаем Ctrl+X.

Копируем и вставляем команду:

Вводим 1 и нажимаем Enter. Ждем. Согласно запросам системы, вводим желаемый логин и нажимаем Enter. Аналогично с паролем. На вопросы “[Y]/[N]” вводим Y и нажимаем Enter. После завершения настройки будут показаны наши логин и пароль и IP адрес сервера.

Готово! VPN настроен!

Теперь открываем «Центр управления сетями и общим доступом» Windows:

Выбираем настройку нового подключения:

Выбираем «Подключение к рабочему месту»:

Ждем немного. Теперь мы работаем через VPN! Чтобы в этом удостовериться, идем на и убеждаемся в том, что показываемый нам наш IP адрес совпадает с IP адресом нашего VPS.

Теперь внимание! Через личный кабинет DigitalOcean мы можем выключить наш VPS (droplet в терминологии DigitalOcean), однако даже за сервер в выключенном состоянии идет списание денежных средств по стандартному тарифу. Поэтому мы сделаем резервную копию нашего сервера, удалим его, а когда нам снова понадобится VPN, мы его восстановим из резервной копии!

Перейдем в управление сервером (панель управления DigitalOcean находится по адресу cloud.digitalocean.com, вход в нее возможен через кнопку Sign In на главное странице digitalocean.com в правом верхнем углу).

Нам нужно создать резервную копию (снимок, snapshot) нашего VPS. Но для этого его сначала нужно выключить.

Ждем около минуты, пока сервер выключится. Затем переходим в раздел Snapshots, вводим произвольное имя снимка и создаем его:

За каждый гигабайт «веса» нашего VPS при создании снимка спишется по 2 цента. Создание резервной копии (снимка) займет несколько минут.

Теперь удаляем сервер:

Все! Больше ни за что с нас деньги не списываются.

Что делаем, когда VPN понадобится снова

Нам нужно создать новый VPS из той резервной копии, которую мы сделали до этого.

Нажимаем «создать дроплет»:

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

Чуть ниже нажимаем на название снимка, который мы сделали (был серым, а должен стать синим):

…и нажимаем большую зеленую кнопку «Create droplet».

Ждем около минуты.

Смотрим, совпадает ли IP адрес нашего сервера с прежним. Если да, то в Windows просто возобновляем уже ранее созданное подключение:

Если нет, то нажимаем правой кнопкой мыши на название нашего подключения и меняем IP адрес на новый:

Вводим новый IP и нажимаем «ОК»:

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

Это мы удалили VPS на время неиспользования VPN. Теперь его восстановим из старого снимка:

Опять проверяем, сохранился ли старый IP и продолжаем работу.

На том же самом сервере (или еще одном) можно поднять свой личный прокси, например, на базу ПО 3proxy, однако это не тема этой статьи.

Нашли опечатку? Нажмите Ctrl + Enter

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

Зачем это нужно?

Итак, исходные условия таковы: ваша организация имеет несколько филиалов, расположенных на большом удалении друг от друга в пределах одного города или даже в разных городах страны. Вам поставлена, на первый взгляд, совершенно фантастическая задача: объединить локальные сети филиалов в одну глобальную сеть; чтобы каждый компьютер мог обращаться к другому компьютеру в этой сети, вне зависимости где он находится – в соседней комнате или в тысяче километров от него. Иногда условие задачи выглядит по-другому: предоставить доступ к определенному ресурсу одного филиала с компьютеров сети других филиалов (но суть дела от этого не меняется).

И как это сделать?

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

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

На этом этапе требуется сесть и тщательно продумать, какие филиалы вашей организации войдут в сеть. Если их больше двух-трех, можно для наглядности даже нарисовать схему с табличкой, в которой указать адреса и контакты каждого филиала. Если требуется организовать распределенную сеть в пределах одного города, обычно есть выбор из нескольких вариантов подключений у различных провайдеров. В моем случае, требовалось объединить несколько сетей, расположенных в различных городах области; здесь, как говорится, без вариантов – приходится обращаться к компании-монополисту Казахтелеком , единственному глобальному поставщику данного вида связи на всей территории РК. Далее в статье я буду рассматривать подключение именно через «Казахтелеком», как наиболее универсальный способ, адаптировать рекомендации под конкретного провайдера не составит особого труда.

строим VPN канал

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

Задача: Настроить VPN канал между двумя филиалами вашей компании. Сеть в первом филиале называется N_B1) и сеть во втором филиале N_B2. Установка OpenVPN в обоих офисах будет на ОС Windows 7 . Приступим к выполнению поставленной задачи.

Network N_B1 содержит:

Компьютер или сервер, где устанавливается сервер OpenVPN, имеет 2 сетевых интерфейса, один как вы можете понять для wan ip адреса, а второй для внутренней сети..
Также на ней установлен proxy сервер который раздает инет в локальную сеть, тем самым являясь для всех машин в локальной сети основным шлюзом (192.168.2.100)
192.168.2.100 смотрит в локальную сеть
192.168.2.3 данный интерфейс смотрит в интернет через маршрутизатор, который имеет статический IP скажем 123.123.123.123. На нем сделан форвардинг или как его еще называют проброс порта 1190 (для примера порт 1190 проброшен на сетевом интерфейсе с ip адресом 192.168.2.3)
Пользователь в сети имеет 192.168.2.100

Network N_B2 содержит:

Компьютер или сервер, где устанавливается клиент OpenVPN, так же имеет 2 сетевых интерфейса.
Также на ней установлен proxy сервер который раздает интернет в локальную сеть, тем самым являясь для всех машин в локальной сети основным шлюзом(172.17.10.10)
172.17.10.10 смотрит в локальную сеть
192.168.2.3 смотрит в мир через маршрутизатор.
Пользователь в сети: 172.17.10.50

Задача: Человек из офиса с сетью N_B1 (192.168.2.100) должен видеть общие ресурсы на компьютере человека из сети N_B2 (172.17.10.50) и в обратном направлении.

Другими словами каждый каждого должен видеть и иметь возможность заходить в гости, вдруг кто фотки новые расшарит посмотреть своему коллеге из другого branche.

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

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

Создадим серверную часть

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

Для налаживания VPN-сервера доступа в центре управления сетями надо открыть апплет изменений параметров адаптеров. Если главное меню апплета не отображается, нажмите кнопочку «Alt». В верхней части апплета должно появиться главное меню, в котором следует найти пункт «Файл», а затем выбрать «Новое входящее подключение». Рассмотрим более подробнее.

В панели управления пройдем «Сеть и Интернет».

На следующем шаге откроем сетевой центр.

Создадим новое входящее соединение.

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

При добавлении нового «юзера» нужно указать имя и пароль, с которыми ему дозволено будет соединяться с VPN-сервером доступа.

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

Надо указать, что делать они это будут поверх Интернет, поэтому отметим флажком требуемую опцию.

Следующий шаг связан с налаживанием сетевых приложений, которые должны принимать входящие подключения. Среди них есть компонент «Интернет-протокол версии 4(TCP/IPv4)». Понадобится открыть его свойства и вручную ввести диапазон IP-адресов, которым дозволен доступ к серверу.

Иначе, предоставьте это дело DHCP-серверу для автоматического определения «айпишников». В нашем случае понадобилось вручную их определять.

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

В итоге, мы получим такой результат. Подключенных клиентов еще нет.

Настроим клиента

Современные сети чаще всего выстраиваются по клиент-серверной архитектуре. Она позволяет выделить главный компьютер в сетевом окружении. Клиенты инициируют запросы к серверу и делают первыми попытку подключения к серверу.

Серверную часть этой архитектуры мы уже настроили. Теперь осталось наладить работу клиентской части. В качестве клиента должен выступать другой компьютер.

В сетевом центре другого ПК (клиента) наладим новое подключение.

Нам надо подсоединяться напрямую к рабочему месту.

Опять же обратимся в сетевой центр Windows только теперь другого ПК. Выберем опцию настройки нового подсоединения. Появившийся апплет предложит несколько вариантов на выбор, однако нам понадобится опция подключения к рабочему месту. Мастер спросит, как выполнять подсоединение. Нам же надо остановить свой выбор на настройке подсоединения к Интернету (VPN).

Мастер попросит на следующем шаге указать IP-адрес VPN-сервера доступа и назначить имя местоназначения. IP-адрес сервера доступа можно узнать на первом нашем компьютере, введя в командной строке команду ipconfig. IP-адрес Ethernet-сети и будет искомым адресом.

Затем, система применит все введенные настройки.

Выполним подключение

Временем X для нашего эксперимента является выполнение подсоединения клиента к серверной части нашей сети. В сетевом центре выберем опцию «Подключиться к сети». В появившемся окошке кликнем VPN-Test (мы указали местоназначение именно с данным именем) и кликнем кнопочку подключиться.

Так, мы откроем апплет соединения с VPN-Test. В текстовых полях укажем имя и пароль «юзера» для осуществления авторизации на сервере доступа. Если все пройдет успешно и наш пользователь не только зарегистрируется в сети, но и сможет полностью подсоединиться к серверу доступа, то на противоположной стороне появится обозначение подключившегося «юзера».

Но иногда, может случиться ошибка такого рода. VPN-сервер не отвечает.

Кликнем ярлычок входящих соединений.

На отмеченной вкладке откроем свойства протокола IP.

Установим опцию указывать IP адреса явным образом и пропишем, какие «айпишники» надо обслуживать.

Когда же повторно подключимся, то увидим такую картину. Система нам показывает, что подключен один клиент и этот клиент vpn(SimpleUser).

Краткий итог

Итак, для налаживания VPN-сети между двумя ПК понадобится определиться с тем, какой из них должен стать «главным» и играть роль сервера. Остальные ПК должны подсоединяться к нему через систему авторизации. В Windows есть средства, обеспечивающие создание серверной части для нашей сети. Она настраивается через создание нового входящего соединения, указания пользователя, а также приложений, которые должны принимать соединение. Клиента настраивают через установление соединения к рабочему месту, указывая пользователя и данные сервера, к которому этот пользователь должен подключаться.

  • Сетевые технологии
  • Кому нужен VPN?

    На март 2017 г. доля вакансий о работе с удаленным доступом, размещенных на hh.ru составляла 1,5% или 13 339 вакансий. За год их число удвоилось . В 2014 г. численность удаленных сотрудников оценивалась в 600 тыс. чел или 1% от экономически-активного населения (15–69 лет). J"son & Partners Consulting прогнозирует , что к 2018 г. около 20% всех занятых россиян будут работать удаленно. Например, до конца 2017 г. Билайн планирует перевести на удаленное сотрудничество от 50% до 70% персонала.


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

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

    Мы для себя открыли потребность в VPN более 10 лет назад. Для нас мотиватором предоставления VPN доступа сотрудникам была возможность оперативного доступа в корпоративную сеть из любой точки мира и в любое время дня и ночи.

    Путь выбора идеального VPN решения

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

    VPN в роутерах

    Так называемых “китайских решений” на рынке много. Практически любой роутер имеет функциональность встроенного VPN сервера. Обычно это простое вкл/выкл функционала и добавление логинов паролей для пользователей, иногда интеграция с Radius сервером. Почему мы не стали рассматривать подобное решение? Мы прежде всего думаем о своей безопасности и непрерывности работе сервиса. Подобные же железки не могут похвастаться ни надежной защитой (прошивки выходят обычно очень редко, или не выходят в принципе), да и надежность работы оставляет желать лучшего.

    VPN Enterprise класса

    Если посмотреть на квадрат Гартнера то на VPN рынке уже давно лидирующие позиции занимают компании, которые производят сетевое оборудование. Juniper, Cisco, Check Point: все они имеют комплексные решения решения, в составе которых есть и VPN сервис.



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

    Microsoft VPN

    10 лет назад мы были компанией, ориентированной прежде всего на Windows. Microsoft предлагает бесплатное решение для тех, у кого вся инфраструктура построена на их базе. В простых случаях настройка не вызывает сложностей даже у начинающего системного администратора. В нашем случае мы хотели выжать из VPN все с точки зрения безопасности, соответственно, использование паролей было исключено. Мы естественно хотели использовать сертификаты вместо паролей и для хранения ключевой пары использовать свой продукт Рутокен ЭЦП . Для реализации проекта нам нужно было: контроллер домена, радиус сервер и правильно поднятая и настроенная инфраструктура PKI. Подробно на настройке я останавливаться не буду, в интернете есть достаточно много информации по данным вопросам, а правильная настройка PKI вообще может потянуть на десяток статей. Первым протоколом, который мы использовали у себя, был протокол PPTP. Долгое время данный вариант VPN нас устраивал, но в конечном итоге нам пришлось отказаться от него по двум причинам: PPTP работал далеко не везде и мы начинали пользоваться не только Windows, но и другими операционными системами. Поэтому мы стали искать альтернативы. Замечу, что поддержка PPTP не так давно была прекращена apple . Для начала мы решили посмотреть, что еще из протоколов может предложить на Microsoft. SSTP/L2TP. SSTP нас устраивал всем, за исключением того, что он работал только на Windows. L2TP данным недостатком не обладал, но его настройка и поддержание его в работе показались нам достаточно затратными и мы решили попробовать альтернативы. Хотелось более простого решения, как для пользователей, так и для администраторов.

    OpenVPN

    Мы в компании “Актив” искренне любим open source. Выбирая замену Microsoft VPN мы не могли обойти стороной решение OpenVPN. Основным плюсом для нас было то, что решение "из коробки" работает на всех платформах. Поднять сервер в простом случае достаточно просто. Сейчас, используя docker и, к примеру готовый образ , это можно сделать за несколько минут. Но нам хотелось большего. Нам хотелось добавить в проект интеграцию с Microsoft CA, для того, чтобы использовать выданные ранее сертификаты. Нам хотелось добавить поддержку используемых нами токенов. Как настраивать связку OpenVPN и токены описано к примеру вот в этой . Сложнее было настроить интеграцию Microsoft CA и OpenVPN, но в целом тоже вполне реализуемо. Получившимся решением мы пользовались около трех лет, но все это время продолжали искать более удобные варианты. Главной возможностью, которую мы получили, перейдя на OpenVPN, был доступ из любой ОС. Но остались еще две претензии: сотрудникам компании нужно пройти 7 кругов ада Microsoft CA для выписывания сертификата, а администраторам по-прежнему приходилось поддерживать достаточно сложную инфраструктуру VPN.

    Рутокен VPN

    У нас есть знание, как использовать токены в любых операционных системах, у нас есть понимание, как правильно готовить инфраструктуру PKI, мы умеем настраивать разные версии OpenVPN и мы имеем технологии, которые позволяют управлять всем этим удобным для пользователя образом из окна браузера. Так возникла идея нового продукта.



    Настройка Рутокен VPN

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




    На втором шаге нужно ввести название компании и подождать несколько минут, пока устройство произведет настройку встроенного центра сертификации.







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




    Четвертым шагом настройки мы создаем локальных пользователей, или добавляем их из AD




    Личный кабинет сотрудника




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




    После установки плагина/расширения нам остается лишь сгенерировать сертификат себе на Рутокен ЭЦП.







    И установить клиент под нужную операционную систему:



    Как все это работает?

    Немного об аппаратной части. Изначально мы долго думали, какую “базу” использовать для нашего решения, так как нужно было соблюдать баланс между стоимостью, удобством, производительностью. После исследований, что предлагается на рынке, мы остановились на двух вариантах реализации и дальнейшего распространения решения:

    • x86 (Enterprise) – программное решение, которое предоставляется конечному потребителю в виде образа виртуальной машины, который можно развернуть в рамках своей ит-инфраструктуры.
    • Raspberry Pi – уже достаточно известный микрокомпьютер, который обладает вполне неплохой производительностью при не самой высокой стоимости и который можно начать использовать как VPN-сервер уже через 10 минут после того, как его в прямом смысле вынули из коробки.

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


    Но изначально, нам все же нужно осуществить настройку сервисов, которые требуются для корректной работы продукта. Настройка сервисов осуществляется на текущий момент специалистами нашей компании в полуавтоматическом режиме. Это значит, что автоматизирован процесс деплоя программного обеспечения и первичных настроек, но инициализация данного процесса пока остается привилегией человека. Во время первичной настройки устанавливаются системные пакеты, python, django, OpenVPN, supervisor, OpenSSL и пр.


    А что же дальше? Далее необходимо настроить всю инфраструктуру, которая собственно и отвечает в целом за безопасность. А именно: CA (центр сертификации), PKI (инфраструктура открытых ключей), выписать необходимые ключи и сертификаты.


    Создание PKI и CA, а также формирование файла конфигурации OpenVPN-сервера, генерация ключей и выписывание сертификатов осуществляется уже после передачи продукта клиенту. Но это не значит, что для этого необходимо иметь какие-то специфические знания и прямой доступ к операционной системе. Все реализовано в бизнес-логике бэкенда системы администрирования, доступ к которой предоставляется через Web-интерфейс. От клиента требуется только ввести минимальный набор атрибутов (описано выше), после чего стартует процесс инициализации PKI и создания СА. Описывать конкретные вызовы системных команд смысла особого нет, так как уже давно все описано и разжевано до нас. Главное, что мы сделали - это автоматизировали данный процесс, избавив пользователя от необходимости обладать специфическими знаниями в администрировании.


    Для работы с ключами и сертификатами мы решили не изобретать велосипед (хотя очень хотелось и до сих пор вынашиваем мысль его изобрести исходя из наших дальнейших планов развития продукта) и используем easy-rsa.


    Самый долгий процесс при настройке инфраструктуры – это генерация файла Diffie-Hellman. Мы долго экспериментировали с параметрами и пришли к балансу “качество-производительность”. Хотя были мысли вообще избавиться от данного шага, нагенерировать таких файлов заранее, используя наши серверные мощности и просто “раздавать” их во время первичной инициализации. Тем более, что данные, содержащиеся в этом файле не являются приватными. Но пока мы оставили эти мысли для дальнейших “изысканий”.


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


    Первую задачу мы решили благодаря нашему плагину который реализует функциональность электронной подписи, шифрования и двухфакторной аутентификации для Web- и SaaS-сервисов. Для того, чтобы выписать сертификат и записать его на токен, пользователь должен установить данный плагин, перейти по ссылке чтобы попасть в личный кабинет сервиса RutokenVPN, предварительно подключив токен к компьютеру (подробнее о плагине можно прочитать на нашем ресурсе)


    При инициализации процесса выписывания сертификата, осуществляется запрос на токен для генерации ключевой пары а также запрос на выписку сертификата в CA. Приватный ключ записывается на токен, а запрос на выписку сертификата отправляется в СА, который в свою очередь осуществляет его выписывание и возвращает в ответе. После чего сертификат так же записывается на токен.


    Почти все готово для установления VPN-соединения. Не хватает клиента, который “знает”, как работать с сервером и нашими токенами.




    Наш клиент реализован на Electron. Кто не в курсе, что это за зверь, то если совсем кратко – возможность реализовать десктопное приложение, используя js, css и html. Не вдаваясь в подробности, клиент является неким “враппером” над OpenVPN-клиентом, позволяющим осуществлять его вызовы с нужными параметрами. Почему именно так? На самом деле нам было так удобней, хотя выбранное решение и накладывает определенные ограничения.


    Так как мы используем токен как носитель ключевой информации, необходимой для аутентификации при установлении VPN-сессии, то нам нужно сконфигурировать OpenVPN-клиент для работы с ним. Провайдером PKCS#11 является библиотека собственной разработки для работы с нашими токенами, путь к которой и прописывается в настройках OpenVPN клиента. Подробнее о ней можно почитать .


    При запросе на установку VPN-соединения, запрашивается PIN-код ключа, при корректном вводе извлекается сертификат для аутентификации клиента, осуществляется хэндшейк клиента с сервером и устанавливается VPN-соединение. Знающие люди могут возразить, что не все так просто, но целью данного описания не является рассказать все тонкости работы OpenVPN, а только осветить основные моменты нашей реализации.


    Немного о наших планах. Основное, над чем сейчас мы работаем - это реализация ГОСТ-шифрования. Уже пройден достаточно большой путь исследований, позволивший нам максимально приблизиться к ее реализации. В ближайшее время сможем удовлетворить интерес потенциальных клиентов в данной функциональности.

    Теги:

    • vpn
    • openvpn
    • raspberry pi
    • рутокен
    • openssl
    Добавить метки