Развертывание 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-соединения одна из самых популярных тем на нашем сайте. В тоже время, как показывает читательский отклик, наибольшие затруднения вызывает правильная настройка маршрутизации, хотя мы специально уделяли внимание этому моменту. Проанализировав наиболее часто задаваемые вопросы, мы решили посвятить теме маршрутизации отдельную статью. Есть вопросы? Надеемся, что после прочтения данного материала их станет меньше.

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

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

Route print

В итоге мы увидим следующую таблицу:

Все очень просто, нас интересует секция IPv4 таблица маршрута , первые две колонки содержат адрес назначения и маску сети, затем следует шлюз - узел которому следует перенаправить пакеты для указанного назначения, интерфейс и метрика. Если в колонке Шлюз указано On-link , то это означает что адрес назначения находится в одной сети с хостом и доступен без маршрутизации. Метрика определяет приоритет правил маршрутизации, если адрес назначения имеет в таблице маршрутов несколько правил, то используется тот, что имеет меньшую метрику.

Наша рабочая станция принадлежит к сети 192.168.31.0 и, согласно таблице маршрутов, все запросы к данной сети отправляет на интерфейс 192.168.31.175, что соответствует сетевому адресу это станции. Если адрес назначения находится в одной сети с адресом источником, то доставка информации происходит без использования IP-маршрутизации (сетевой уровень L3 модели OSI), на канальном уровне (L2). В противном случае пакет отправляется узлу, указанному в соответствующему сети назначения правилу таблицы маршрутов.

Если такого правила нет, то пакет отправляется по нулевому маршруту , который содержит адрес основного шлюза сети. В нашем случае это адрес роутера 192.168.31.100. Нулевым этот маршрут называется потому, что адресом назначения для него указывается 0.0.0.0. Этот момент является очень важным для дальнейшего понимания процесса маршрутизации: все пакеты, не принадлежащие данной сети и не имеющие отдельных маршрутов, всегда отправляются основному шлюзу сети.

Что сделает маршрутизатор, получив такой пакет? Прежде всего разберемся, чем отличается маршрутизатор от обычной сетевой станции. Если говорить крайне упрощенно, то маршрутизатором (роутером) является сетевое устройство, которое настроено передавать пакеты между сетевыми интерфейсами. В Windows это достигается включением службы Маршрутизация и удаленный доступ , в Linux заданием опции ip_forward .

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

Route -n

Как видим, наш роутер содержит маршруты к известным ему сетям 192.168.31.0 и 192.168.3.0, а также нулевой маршрут к вышестоящему шлюзу 192.168.3.1.

Адрес 0.0.0.0 в колонке шлюза (Gateway) обозначает, что адрес назначения доступен без маршрутизации. Таким образом все пакеты с адресами назначения в сетях 192.168.31.0 и 192.168.3.0 будут отправлены на соответствующий интерфейс, а все остальные пакеты будут переданы дальше по нулевому маршруту.

Следующий важный момент - адреса приватных (частных) сетей, они же "серые", к ним относятся три диапазона:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16

Данные адреса могут свободно использоваться любым желающим и поэтому они не маршрутизируются . Что это значит? Любой пакет с адресом назначения принадлежащим одной из этих сетей будет отброшен маршрутизатором, если для него нет отдельной записи в таблице маршрутизации. Проще говоря, маршрут по умолчанию (нулевой) для таких пакетов маршрутизатором не применяется. Также следует понимать, что данное правило применяется только при маршрутизации, т.е. при передаче пакетов между интерфейсами, исходящий пакет с "серым" адресом будет отправлен по нулевому маршруту, даже если данный узел сам является маршрутизатором.

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

Самое время проверить, как это все работает. Попробуем с нашего узла 192.168.31.175 пропинговать узел 192.168.3.106, который находится в сети за роутером. Как видим, это нам удалось, хотя таблица маршрутов узла не содержит никаких сведений о сети 192.168.3.0.

Как это стало возможным? Так как узел-источник ничего не знает о сети назначения, то он отправит пакет на адрес шлюза. Шлюз проверит свою таблицу маршрутов, обнаружит там запись для сети 192.168.3.0 и отправит пакет на соответствующий интерфейс, в этом несложно убедиться выполнив команду трассировки, которая покажет весь путь нашего пакета:

Tracert 192.168.3.106

Теперь попробуем выполнить пинг узла 192.168.31.175 с узла 192.168.3.106, т.е. в обратном направлении. У нас ничего не вышло. Почему?

Давайте внимательно посмотрим таблицу маршрутизации. Никаких записей для сети 192.168.31.0 она не содержит, поэтому пакет будет отправлен маршрутизатору 192.168.3.1, как основному шлюзу сети, который данный пакет отбросит, так как никаких данных о сети назначения не имеет. Как быть? Очевидно, что следует отправить пакет тому узлу, который содержит нужную информацию и может передать пакет по назначению, в нашем случае это роутер 192.168.31.100, который в данной сети имеет адрес 192.168.3.108.

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

192.168.31.0 mask 255.255.255.0 192.168.3.108

В дальнейшем мы будем придерживаться такой записи маршрутов, что она значит? Все просто, пакеты для сети 192.168.31.0 с маской 255.255.255.0 следует отправлять узлу 192.168.3.108. В Windows маршрут можно добавить командой:

Route add 192.168.31.0 mask 255.255.255.0 192.168.3.108

Route add -net 192.168.31.0 netmask 255.255.255.0 gw 192.168.3.108

Попробуем.

Давайте проанализируем результат, в таблице маршрутизации появился маршрут и все пакеты к сети 192.168.31.0 теперь отправляются роутеру этой сети, что видно из ответа команды ping, но до назначения не доходят. В чем дело? Самое время вспомнить, что одной из основных задач роутера является не только маршрутизация, но и функция сетевого экрана, который явно запрещает доступ из внешней сети внутрь. Если мы временно заменим данное правило разрешающим, то все будет работать.

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

Route add 192.168.31.0 mask 255.255.255.0 192.168.3.108 -p

В Linux в /etc/network/interfaces , после описания интерфейса, следует добавить:

Post-up route add -net 192.168.31.0 netmask 255.255.255.0 gw 192.168.3.108

Кстати, это не единственный способ настроить доступ из сети 192.168.3.0 в сеть 192.168.31.0, вместо того, чтобы добавлять маршрут для каждого узла, можно "научить" правильно отправлять пакеты маршрутизатор.

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

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

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

Самый простой случай, когда VPN-сервер (клиент) и маршрутизатор сети располагаются на одном хосте. Рассмотрим схему ниже:

Так как теорию, надеемся, вы усвоили и закрепили на практике, проанализируем маршрут пакетов из сети офиса 192.168.31.0 в сеть филиала 192.168.44.0, такой пакет будет отправлен на шлюз по умолчанию, который является также VPN-сервером. Однако данный узел ничего не знает о сети назначения и должен будет откинуть данный пакет. В тоже время мы уже можем обратиться к маршрутизатору филиала по его адресу в VPN-сети 10.8.0.2, так как данная сеть доступна с маршрутизатора офиса.

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

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

Возьмем схему посложнее, когда маршрутизатор и VPN-сервер (клиент) являются разными узлами сети. Здесь возможны два варианта, передать нужный пакет непосредственно VPN-серверу (клиенту) или заставить это делать шлюз.

Сначала рассмотрим первый вариант.

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

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

192.168.44.0 mask 255.255.255.0 10.8.0.2

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

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

192.168.44.0 mask 255.255.255.0 192.168.31.101

Про задачу VPN-сервера (клиента) мы упоминали выше, он должен доставить пакеты тому узлу VPN-сети, который является частью сети назначения или имеет маршрут к ней.

192.168.44.0 mask 255.255.255.0 10.8.0.2

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

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

  • Теги:

Please enable JavaScript to view the

строим 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?

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

Можно конечно купить персональную линию между двух городов, но данное решение это будет скорее всего сверхдорогим.
Решение посредством виртуальной приватной сети (VPN - Virtual Private Network) предлагает нам эту выделенную линию организовать посредством сосздания шифрованного туннеля через интернет.Основное преимуществом VPN перед выделенными линиями связи - сохранение денег компании при полной закрытости канала.
С точки зрения потребителя, VPN - технология, с помощью которой можно организовать удаленный защищенный доступ через открытые каналы Интернета к серверам, базам данных, любым ресурсам вашей корпоративной сети. Допустим бухгалтер в городе А может легко распечатать счет-фактуру на принтере секретаря в городе Б к которому приехал клиент. Удаленные сотрудники подключившись по VPN со своих ноутбуков смогут также работать в сети, как-будто они находятся в физической сети своих офисов.

Очень часто, клиенты сталкиваясь с *тормозами* кассовых аппаратов при использовчании Удаленного рабочего стола приходят к необходимости установки VPN. Это позволят избавиться от персылки данных для кассы туда-обратно на сервер посрдством виртуального COM через интернет и позволет усановку тонкого клиента в любой точке, который общается с кассой напрямую, отправляя на сервер только необходимую информацию по закрытому каналу. Да и трансляция интерфйса RDP прямо в сеть Интернет подвергает Вашу компанию очень большим рискам.

Способы подключений

Способы организации в VPN наиболее целесообразно выделить следующие 2 основных способа:

  • (Клиент - Сеть ) Удаленный доступ отдельно взятых сотрудников к корпоративной сети организации через модем либо общедоступную сеть.
  • (Сеть - Сеть ) Объединение двух и более офисов в единую защищенную виртуальную сеть посредством интернет

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

На рисунке показаны оба варианта подключения к основному офису А.

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

Мобильным клиентам доступны все сервисы офиса А, а при нахожденнии офиса В в единой виртуальной сети и его сервисы.

При этом способ подкдючения мобильных клиентов обычно реализуется протоколом PPTP (Point-to-Point Tunneling Protocol) Протокол туннелирования точка-точка, а второй IPsec или OpenVPN

PPTP

(Point-to-Point Tunneling Protocol bumagin-lohg) – туннельный протокол «точка-точка», детище Microsoft и является расширением PPP (Point-to-Point Protocol), следовательно, использует его механизмы подлинности, сжатия и шифрования. Протокол PPTP является встроенным в клиент удаленного доступа Windows XP. При стандартном выборе данного протокола компанией Microsoft предлагается использовать метод шифрования MPPE (Microsoft Point-to-Point Encryption). Можно передавать данные без шифрования в открытом виде. Инкапсуляция данных по протоколу PPTP происходит путем добавления заголовка GRE (Generic Routing Encapsulation) и заголовка IP к данным обработанных протоколом PPP.

Из-за значительных проблем в безопасности, нет причин для выбора PPTP вместо других протоколов, кроме как из-за несовместимости устройства с другими протоколами VPN. Если ваше устройство поддерживает L2TP/IPsec или OpenVPN, то лучше выбрать какой-то из этих протоколов.

Надо отметить, что почти все устройства, в том числе и мобильные, имеют встроенного в ОС (Windows, iOS, Android) клиента позволяющему мнгновенно настроить подключение.

L2TP

(Layer Two Tunneling Protocol) – более совершенный протокол, родившийся в результате объединения протоколов PPTP (от Microsoft) и L2F (от Cisco), вобравший в себя все лучшее из этих двух протоколов. Предоставляет более защищенное соединение, нежели первый вариант, шифрование происходит средствами протокола IPSec (IP-security). L2TP является также встроенным в клиент удаленного доступа Windows XP, более того при автоматическом определении типа подключения клиент сначала пытается соединиться с сервером именно по этому протоколу, как являющимся более предпочтительным в плане безопасности.

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

OpenVPN

Продвинутое открытое VPN решение, созданное компанией "OpenVPN technologies", которое сейчас дефакто является стандартом в VPN-технологиях. Решение использует SSL/TLS протоколы шифрования. OpenVPN использует OpenSSL библиотеку для обеспечения шифрования. OpenSSL поддерживает большое количество различных криптографических алгоритмов таких как 3DES, AES, RC5, Blowfish. Как в случае IPSec, CheapVPN включает экстримально высокий уровень шифрования - AES алгоритм с ключом длиной 256 бит.
OpenVPN - Единственное решение позволяющие обойти тех провайдеров которые режут или взымают плату за открытие дополнительных протоколов, кроме WEB. Это дает возможность организовать каналы которые впринципе невозможно отследить и у нас есть такие решения

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

Пример настройки сервера OpenVPN на платформе pfSense

Создаем сервер

  • Interface: WAN (сетевой интерфейс сервера, подключенный к интернету)
  • Protocol: UDP
  • Local Port: 1194
  • Description: pfSenseOVPN (любое удобное название)
  • Tunnel Network: 10.0.1.0/24
  • Redirect Gateway: Включить (Отключите эту опцию, если Вы не хотите, чтобы весь интернет-трафик клиента перенаправлялся через VPN-сервер.)
  • Local Network: Оставляем пустым (Если Вы хотите, чтобы локальная сеть, находящаяся за сервером pfSense, была доступна для удаленных клиентов VPN, укажите здесь адресное пространство этой сети. Допустим 192.168.1.0/24 )
  • Concurrent Connections: 2 (Если Вы приобрели дополнительную лицензию OpenVPN Remote Access Server, укажите число, соответствующее количеству приобретенных лицензий)
  • Inter-Client Communications: Включить (Если Вы не хотите, чтобы VPN-клиенты видели друг друга, отключите эту опцию)
  • DNS Server 1 (2 и т.д.): указать DNS-серверы хоста pfSense. (узнать их адреса можно в разделе System > General Setup > DNS Servers )

далее создаем клиентов и для упрощения процедур конфигурации программ-клиентов, в pfSense предусмотрен дополнительный инструмент – “OpenVPN Client Export Utility” . Этот инструмент автоматически подготавливает установочные пакеты и файлы для клиентов, что позволяет избежать ручной настройки OpenVPN-клиента.

VPN соединение между офисами покрывают такие требования безопасности бизнеса как:

  • Возможность централизованного доступа к информации из офисов, так же как и из главного офиса
  • Единая корпоративная информационная система
  • Корпоративные базы данных с единой точкой входа
  • Корпоративная электронная почта с единой точкой входа
  • Конфиденциальность передаваемой между офисами информации

Если у Вас возникли трудности при настройке или Вы еще не определились с технологией VPN - звоните нам!

Организация VPN каналов между филиалами компании имеет большое значение в работе любого IT-специалиста. В данной статье рассматривается один из способов реализации этой задачи на основе программного продукта OpenVPN.

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

Топология сети.

Использованная нами сетевая топология стандартна. Имеется Сеть Центрального Офиса (назовем её СЦО) и Сеть Филиала (назовем её СФ). Стоит задача соединить офисы таким образом, чтобы конечный пользовательский компьютер (далее ПК1) офиса СЦО имел доступ к общим ресурсам пользовательского компьютера (далее ПК2) СФ.

CЦО имеет в своем составе:

  • Интернет-шлюз (назовем его ИШ1) с двумя сетевыми интерфейсами:
    • 111.111.111.111 - выдаётся провайдером, смотрит в интернет.
    • 192.168.0.1 - назначается нами, смотрит в СЦО.
  • OpenVPN Сервер (далее ОС) на котором будем поднимать OpenVPN с одним виртуальным и одним физическим интерфейсом:
    • 10.8.0.1 - адрес виртуального интерфейса (интерфейс устанавливается в процессе установки программы OpenVPN). Адрес для этого интерфейса назначается программой. Мы с вами не должны менять адрес самостоятельно из управления сетевыми адаптерами.
    • 192.168.0.2 - физический интерфейс, параметры задаются нами, смотрит в СЦО.
  • ПК1 - пользовательский компьютер 1, с сетевым интерфейсом 192.168.0.3, смотрит аналогично в СЦО.

СФ имеет в своем составе:

  • Интернет-шлюз (далее ИШ2) с двумя сетевыми интерфейсами:
    • 222.222.222.222 - выдаётся провайдером, смотрит в интернет.
    • 192.168.1.2 - назначается нами, смотрит в СФ.
  • OpenVPN Клиент (далее ОК) на котором будем поднимать OpenVPN с одним виртуальным и одним физическим интерфейсом:
    • 10.8.0.2 - адрес виртуального сетевого интерфейса (интерфейс устанавливается в процессе установки программы OpenVPN). Адрес для этого интерфейса так же назначается программой OpenVPN.
    • 192.168.1.2 - физический интерфейс, параметры задаются нами, смотрит в СФ.
  • ПК2 - пользовательский компьютер 2, с сетевым интерфейсом 192.168.1.3, смотрит в СФ.

Настраиваем OpenVPN сервер.

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

Сам процесс инсталлирования не вызовет никаких проблем. Единственное, стоит отключить антивирус на время установки, дабы избежать дополнительных проблем. На момент написания статьи, к примеру, продукты Лаборатории Касперского не блокировали установку, а лишь выводили подозрение на некоторые устанавливаемые компоненты.

В процессе установки в систему инсталлируется виртуальный сетевой адаптер TAP-Win32 Adapter V9 и, соответственно, драйвер к нему. Этому интерфейсу программа OpenVPN как раз и будет назначать ip адрес и маску виртуальной сети OpenVPN. В нашем случае ему назначен адрес 10.8.0.1 с маской 255.255.255.0 на сервере ОС и 10.8.0.2 с аналогичной маской на клиенте ОК.

По стандарту программа устанавливается в C:\ProgramFiles\OpenVPN . В этой директории следует сразу же создать дополнительно папку keys (здесь мы будем хранить ключи аутентификации) папку ccd (здесь будут находится конфиги настроек сервера для клиента).

В директории C:\ProgramFiles\OpenVPN\sample-config представлены стандартные конфиги. Конфиги, которые мы будем создавать, должны размещаться в директории C:\Program Files\OpenVPN\config .

Настройка OpenVPN начинается с генерации ключей. Генерируемые ключи делятся на:

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

Последовательность создания ключей следующая (названия файлов сертификатов и ключей указаны в скобках):

  • Генерируем основной CA (ca.crt) сертификат и CA (ca.key) ключ.
  • Генерация ключа tls-auth (ta.key) для аутентификации пакетов.

Разберем каждый пункт более подробно.

Генерируем основной сертификат СА и СА ключ:

Заходим в Пуск - Выполнить набираем cmd , жмем OK, заходим в командную строку. Пишем:

Cd C:/Program Files/OpenVPN/easy-rsa

Таким образом мы находимся в директории easy-rsa :

Во время выполнения всех пунктов генерации ключей вы должны находиться именно в ней. Выполняем команду:

Init-config

Не закрывая командную строку, зайдем в C:\ProgramFiles\OpenVpn\easy-rsa и отредактируем файл vars.bat , заполнив следующие параметры (указав, естественно, свои данные):

KEY_COUNTRY=RF
KEY_PROVINCE=MO
KEY_CITY=Malinino
KEY_ORG =Organization
[email protected]

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

Vars
clean-all
build-ca

Последняя команда как раз и выполняет генерацию СА сертификата и СА ключа. В процессе создания ключа вам будут задавать вопросы, на которые вы можете отвечать просто нажатием Enter"a (тогда значения будут браться из файла vars.bat который мы редактировали выше) или же вводить свои. Стоит обратить внимание на вопрос:

Common Name (eg, your name or your server"s hostname) : OpenVPNS

Здесь вы должны задать название для сервера - в примере мы ввели OpenVPNS.

Генерируем сертификат (server.crt) и ключ (server.key) сервера.

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

Build-key-server server

На вопросы отвечаем так же как в первом пункте. На вопрос:

Common Name *: server

Введем: server . На вопросы:

Sign the certificate?

1 out of 1 certificate requests certified, commit?

надо дать положительный ответ: Y .

Генерируем сертификат (office1.crt) и ключ (office1.key) для клиента.

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

Build-key office1

если требуется еще сертификаты и ключи, скажем для второго клиента, то вводим:

Build-key office2

В процессе ответа на вопросы не забывайте, что каждый клиент на вопрос CommonName должен получить уникальное имя, например: office1, office2 и т.д.

Генерация параметров DiffieHellman (dh1024.pem).

Вводим в командной строке, находят во все той же директории easy-rsa:

Build-dh

Генерация ключа tls-auth (ta.key) для аутентификации пакетов

В конце создаем ключ для tls-аутификации командой:

Openvpn --genkey --secret ta.key

Теперь разберемся с тем, какие файлы оставлять на сервере, а какие перенести клиенту. На сервере (OC) должны находиться в созданной нами папке keys только следующие файлы:

  • ca.crt
  • ca.key
  • dh1024.pem
  • server.crt
  • server.key
  • ta.key

На клиенте OK аналогично серверу ОС создадим так же папочку keys, там должны быть:

  • ca.crt
  • office1.crt
  • office1.key
  • ta.key

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

Далее приступим к созданию конфига для нашего сервера ОС и клиента ОК. В директории config создаем файл со следующим названием и расширением: server.ovpn Открываем его блокнотом и начинаем писать конфиг:

Выбираем протокол для передачи данных - в данном случае upd:

Proto udp

Стандартный порт для OpenVPN:

Port 1194

Режим работы программы L3-туннель. В данном режиме OpenVPN - роутер:

Режим клиент-сервер:

Tls-server

Данного топология доступна с версии 2.1 и заключается в том что каждому клиенту выдается по 1 адресу, без виртуальных портов маршрутизатора:

Topology subnet

Маршруты добавляются через.exe - это важно:

Route-method exe

Задержка при добавлении маршрута, можно уменьшить до 5:

Route-delay 10

Данная опция задает организацию сети. У нас появляется виртуальная сеть 10.8.0.0 /24. Первый адрес из этой сети, то есть 10.8.0.1 выдается серверу, последующие (10.8.0.2, 10.8.0.3 и т.д.) клиентам. DHPC сервер получает адрес 10.8.0.254:

Server 10.8.0.0 255.255.255.0

Задаем шлюз в openvpn сеть:

Route-gateway 10.8.0.1

Директория, в которой мы должны расположить файл с названием нашего клиента, то есть office1 без расширения, и в нем записать команды, которые будут выполнятся на клиенте:

Client-config-dir "C:\\Program Files\\OpenVPN\\ccd"


cert "C:\\Program Files\\OpenVPN\\keys\\server.crt"
key "C:\\Program Files\\OpenVPN\\keys\\server.key"
dh "C:\\Program Files\\OpenVPN\\keys\\dh1024.pem"
tls-auth "C:\\Program Files\\OpenVPN\\keys\\ta.key" 0

Задаем серверу ОС маршрут на всю сеть:

Route 10.8.0.0 255.255.255.0

Выбираем метод сжатия:

Cipher BF-CBC

Задаем сжатие трафика:

Comp-lzo

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

Cервер пингует противоположную сторону с интервалом в 10 секунд и если сторона не отвечает за 60 секунд, то сервер запустит пересоединение:

Keepalive 5 60

Далее переходим в директорию ccd и создаем файл, в котором будут лежать команды, посылаемые клиенту от сервера. Назвать его надо так же как мы называли самого клиента, например office1 . Файл не будет иметь расширения.

Редактируем его через блокнот. Все параметры, заданные ниже, будут автоматически переданы клиенту:

Задаем ip и маску для нашего клиента office1:

Ifconfig-push 10.8.0.2 255.255.255.0

Передаем ему маршрут на всю сеть:

Push "route 10.8.0.0 255.255.255.0"

Задаем для него шлюз:

Push "route-gateway 10.8.0.1"

Эта команда говорит серверу ОС о том, что за данным клиентом, а именно ОК (office1) находится сеть 192.168.1.0:

Iroute 192.168.1.0 255.255.255.0

Таким образом, мы закончили конфигурирование сервера на стороне ОС.

Настройка клиента.

Далее приступим к изменению параметров клиента. Зайдем на машине ОК в папку config . Создадим в ней файл office1.ovpn Приступим к его редактированию, ряд опций повторяет аналогичные на сервере, поэтому мы их пояснять не будем:

Dev tun
proto udp
port 1194

Указываем внешний адрес ИШ1:

Remote 111.111.111.111

Клиент будет в работать в режиме тлс-клиента:

Tls-client

Эта опция защищает от подмены сервера третьим лицом:

Remote-cert-tls server

Эти опции аналогичны серверу:

Route-method exe
route-delay 10

Задаем маршрут к сети 192.168.0.0:

Этой командой разрешаем прием конфигурации клиента с сервера:

Пути к ключам:

Ca "C:\\Program Files\\OpenVPN\\keys\\ca.crt"
cert "C:\\Program Files\\OpenVPN\\keys\\office1.crt"
key "C:\\Program Files\\OpenVPN\\keys\\office1.key"
tls-auth "C:\\Program Files\\OpenVPN\\keys\\ta.key" 1

Остальные опции также аналогичны серверу:

Cipher BF-CBC
comp-lzo
verb 1
keepalive 5 60

На этом настройка программы на стороне клиента ОК закончена.

Настройка брандмауэра и маршрутизация.

И так, мы имеем настроенные конфиги на ОК и на ОС. Теперь разберем очень важные моменты. Заранее оговоримся, если вы использует KIS 2011 или подобные антивирусные программы, то в настройках сетевого экрана следует разрешить прохождение ICMP пакетов. Это позволит беспрепятственно пинговать хосты в наших сетях.

Так же стоит добавить наш виртуальный интерфейс программы OpenVPN в список доверенных сетей.

На ИШ1 должны быть проделаны следующие действия:

  • Настроено перенаправление порта 1194 протокола UDP с интерфейса 111.111.111.111 на интерфейс сервер ОС 192.168.0.2
  • В файерволе должна быть разрешена передача по порту 1194 протокола UDP, иначе пинг не будет проходить даже между ОС и ОК.

На ИШ2 надо предпринять аналогичные действия:

  • Настроить перенаправление порта 1194 протокола UDP с интерфейса 222.222.222.222 на интерфейс клиента ОК 192.168.1.2
  • Проверить, открыт ли порт 1194 протокола UDP в файерволе.

В Usergate 5.2, к примеру, настройка форвардинга пакетов по порту 1194 протокола UDP выглядит так:

На этом этапе мы уже пингуем ОК и ОС по их OpenVPN адресам, то есть 10.8.0.1 и 10.8.0.2. Далее нам необходимо обеспечить правильный маршрут пакетов с клиента ОК до удаленной сети 192.168.0.0. Делаем это одним из нескольких способов:

Либо задаем постоянный маршрут до этой сети на самом клиенте ОК:

Route -p add 192.168.0.0 mask 255.255.255.0 10.8.0.1

Либо задаем этот маршрут в ccd конфиге клиента на сервер, а именно в файле office1 допишем:

Push "route 192.168.0.0 255.255.255.0"

Так же это можно сделать, добавив строку напрямую в конфиг клиента ОК:

Route 192.168.0.0 255.255.255.0

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

Добавляем команду в конфиг сервера ОС:

Route 192.168.1.0 255.255.255.0 10.8.0.2

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

Route -p add 192.168.1.0 mask 255.255.255.0 10.8.0.2

Так же необходимо на сервере ОС и клиенте ОК включить в службах службу Маршрутизации и удаленного доступа , таким образом обеспечив маршрутизацию на внутреннюю сеть (форвардинг). Без этого внутренние адреса в сетях СЦО И СФ клиента ОК и сервера ОС не будут пинговаться.

На этом этапе мы уже свободно можем пинговать внутренние адреса наших ОС и ОК, т.е. набирая на сервере ОС ping 192.168.1.2 и на клиенте ОК ping 192.168.0.2 мы получаем положительный результат в виде:

Таким образом ОК и ОС взаимно пингуются по своим OpenVPN и внутренним СЦО и СФ адресам. Дальше нам надо прописать маршрут в командной строке в сеть 10.8.0.0 на наших ПК1 и ПК2. Делается это следующими командами:

Route -p add 192.168.1.0 mask 255.255.255.0 192.168.0.2

Route -p add 192.168.0.0 mask 255.255.255.0 192.168.1.2

В результате расшаренные ресурсы в ПК1 и ПК2 будут доступны по их внутрисетевому адресу:

  • Теги:

Please enable JavaScript to view the
  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то