sonyps4.ru

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 подключение: что это такое, для чего нужен vpn туннель, и как использовать впн соединение.

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

vpn подключение что это такое?

Итак, виртуальная частная сеть vpn – это технология, обеспечивающая защищённую (закрытую от внешнего доступа) связь логической сети поверх частной или публичной при наличии высокоскоростного интернета.

Такое сетевое соединение компьютеров (географически удаленных друг от друга на солидное расстояние) использует подключение типа «точка - точка» (иными словами, «компьютер-компьютер»).

Научно, такой способ соединения называется vpn туннель (или туннельный протокол). Подключиться к такому туннелю можно при наличии компьютера с любой операционной системой, в которую интегрирован VPN-клиент, способный делать «проброс» виртуальных портов с использованием протокола TCP/IP в другую сеть.

Для чего нужен vpn?

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

На схеме наглядно представлено использование vpn сетей.

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

Принцип работы vpn

Когда происходит подключение через vpn, в заголовке сообщения передаётся информация об ip-адресе VPN-сервера и удалённом маршруте.

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

Этап VPN шифрования реализуется на стороне отправителя, а расшифровываются данные у получателя по заголовку сообщения (при наличии общего ключа шифрования).

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

Что касается информационной безопасности, то интернет является крайне незащищенной сетью, а сеть VPN с протоколами OpenVPN, L2TP /IPSec ,PPTP, PPPoE – вполне защищенным и безопасным способом передачи данных.

Для чего нужен vpn канал?

vpn туннелирование используется:

Внутри корпоративной сети;

Для объединения удалённых офисов, а также мелких отделений;

Для обслуживания цифровой телефонии с большим набором телекоммуникационных услуг;

Для доступа к внешним IT-ресурсам;

Для построения и реализации видеоконференций.

Зачем нужен vpn?

vpn соединение необходимо для:

Анонимной работы в сети интернет;

Загрузки приложений, в случае, когда ip адрес расположен в другой региональной зоне страны;

Безопасной работы в корпоративной среде с использованием коммуникаций;

Простоты и удобства настройки подключения;

Обеспечения высокой скорости соединения без обрывов;

Создания защищённого канала без хакерских атак.

Как пользоваться vpn?

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

Vpn: что это такое в телефоне?

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

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

Какой vpn выбрать для телефона?

Мобильные телефоны и смартфоны на ОС Android могут использовать приложения из Google Playmarket:

  • - vpnRoot, droidVPN,
  • - браузер tor для сёрфинга сетей,он же orbot
  • - InBrowser, orfox (firefox+tor),
  • - SuperVPN Free VPN Client
  • - OpenVPN Connect
  • - TunnelBear VPN
  • - Hideman VPN

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

Но основные задачи использования VPN в телефоне – это проверка корпоративной почты, создание видеоконференций с несколькими участниками, а также проведение совещаний за пределами организации (например, когда сотрудник в командировке).

Что такое vpn в айфоне?

Рассмотрим, какой впн выбрать и как его подключить в айфоне более подробно.

В зависимости от типа поддерживаемой сети, при первом запуске конфигурации VPN в iphone можно выбрать следующие протоколы: L2TP, PPTP и Cisco IPSec (кроме того, «сделать» vpn подключение можно при помощи сторонних приложений).

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

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

Для телефона iphone из магазина appstore стоит выбрать:

  • - бесплатное приложение Tunnelbear, с помощью которого можно подключаться к серверам VPN любой страны.
  • - OpenVPN connect – это один из лучших VPN-клиентов. Здесь для запуска приложения необходимо предварительно импортировать rsa-ключи через itunes в телефон.
  • - Cloak – это условно бесплатное приложение, поскольку некоторое время продукт можно «юзать» бесплатно, но для использования программы по истечении демо-срока ее придется купить.

Создания VPN: выбор и настройка оборудования

Для корпоративной связи в крупных организациях или объединения удалённых друг от друга офисов используют аппаратное оборудование, способное поддерживать беспрерывную, защищённую работу в сети.

Для реализации vpn-технологий в роли сетевого шлюза могут выступать: сервера Unix, сервера Windows, сетевой маршрутизатор и сетевой шлюз на котором поднят VPN.

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

Любой роутер или vpn маршрутизатор должен обеспечивать надёжную работу в сети без «зависаний». А встроенная функция впн позволяет изменять конфигурацию сети для работы дома, в организации или удалённом офисе.

Настройка vpn на роутере

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

Кроме того, для безопасности соединения потребуется указать алгоритмы кодирования, методы аутентификации, сгенерировать ключи согласования и указать сервера DNS WINS. В параметрах «Gateway» нужно указать ip-адрес шлюза (свой ip) и заполнить данные на всех сетевых адаптерах.

Если в сети несколько маршрутизаторов необходимо заполнить таблицу vpn маршрутизации для всех устройств в VPN туннеле.

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

Маршрутизаторы компании Dlink: DIR-320, DIR-620, DSR-1000 с новыми прошивками или Роутер D-Link DI808HV.

Маршрутизаторы Cisco PIX 501, Cisco 871-SEC-K9

Роутер Linksys Rv082 с поддержкой около 50 VPN-туннелей

Netgear маршрутизатор DG834G и роутеры моделей FVS318G, FVS318N, FVS336G, SRX5308

Маршрутизатор Mikrotik с функцией OpenVPN. Пример RouterBoard RB/2011L-IN Mikrotik

Vpn оборудование RVPN S-Terra или VPN Gate

Маршрутизаторы ASUS моделей RT-N66U, RT-N16 и RT N-10

ZyXel маршрутизаторы ZyWALL 5, ZyWALL P1, ZyWALL USG

Частная виртуальная сеть (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 каналов между филиалами компании имеет большое значение в работе любого 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

Инструкция

Нажмите на меню «Пуск» и выберите пункт «Панель управления». Найдите раздел «Сеть и интернет». Для организации VPN-соединения необходимо запустить оснастку «Центр управления сетями и общим доступом». Также можно нажать на значок сети в трее и выбрать аналогичную команду. Перейдите к созданию нового подключения или сети, отметив, что необходимо организовать подключение к рабочему столу. Нажмите кнопку «Далее». Появится запрос использования существующего подключения. Поставьте галочку на пункте «Нет, создать новое подключение» и перейдите к следующему этапу настроек.

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

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

Откройте вкладку «Безопасность». Установите «Тип VPN» - «Автоматически» и «Шифрование данных» - «Необязательное». Отметьте пункт «Разрешить следующие протоколы» и выберите протоколы CHAP и MS-CHAP. Перейдите на вкладку «Сеть» и оставьте галочку только возле пункта «Протокол интернета версии 4». Нажмите кнопку «Ок» и подключите VPN -соединение.

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

Вам понадобится

  • - сетевой кабель;
  • - сетевая карта.

Инструкция

Самый простым примером vpn-сети может послужить создание локальной сети между , каждый из которых будет получать доступ к интернету. Естественно, прямое соединения с сервером провайдера будет только у одного ПК. Выберите этот компьютер.

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

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

Откройте меню «Доступ» в появившемся окне. Разрешите использовать это соединение с интернетом всем компьютерам, входящим в состав определенной локальной сети. Укажите сеть , образованную вашими двумя компьютерами.



Загрузка...