Друзья, приветствую на fast-wolker.ru! Сегодняшний материал  жизненно необходим тем, кто задумывает организовать бесплатный и безопасный доступ к своей локальной сети из интернета для  удаленной работы из любого места. Существует  достаточно  решений – одни  сложные, требующие денежных вложений.

Другие бесплатны и вполне по силам для самостоятельного и бесплатного внедрения в любой организации. Сегодня мы и решим такую практическую задачу – организуем доступ сотрудников  к  обычной сети для удаленной работы с помощью программы Open VPN.

Имеется сеть с выделенным IP адресом от провайдера (это обязательное условие для решения нашей задачи!) и нам  нужно:

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

Обе наших компьютерных сети не  используют домены,  Open VPN поэтому  – одно из подходящих решений. Мы самостоятельно “поднимем” сначала в нашей сети Openvpn сервер, затем сгенерируем сертификаты пользователей, которые будут подключаться к нему. Настроим наш сервер в соответствии с задачей.

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

Как настроить сервер openvpn на windows 10?

Что за программа – Open VPN и зачем она нужна? Данный продукт – бесплатное программное решение в течение многих лет предлагаемое разработчиками для организации бесплатных виртуальных частных сетей. Внутри вашего канала Интернет создается безопасный туннель  (в том числе и для решения нашей задачи).

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

Замечательной особенностью open vpn является то что генерация сертификатов производится через собственный  “авторизованный центр”, и платить за выдачу и продление не нужно. Срок действия сертификата определяется самостоятельно. Изначально программа была разработана для Linux. Но для пользователей Windows так же есть решения на сайте разработчика.

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

Программа OPEN VPN не имеет обычного  механизма  автоматического обновления. Новые версии нужно  сначала скачивать с сайта разработчика, тестировать.  При установке новой версии “поверх” существующей сервер сломается и перестанет работать.

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

Забегая вперед скажу – лучше иметь в сети два таких  open vpn сервера – основной и резервный. И издеваться над резервным, а придет время- по образу и подобию обновить основной. Итак, для решения нашей задачи следует  сначала подготовить наш будущий сервер к работе. Скачиваем программу с сайта разработчика и устанавливаем на нужный компьютер.

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

После окончания установки идем в “Центр управления сетями и общим доступом” – “изменение параметров адаптера”. Обнаруживаем, что установился виртуальный сетевой адаптер (через него будет идти соединение) под именем “Ethernet“.

Если название получилось на русском языке (зависит от версии) – переименовываем на английском . Это важно!  Имя адаптера придумываем любое – покороче.

Как настроить сетевой мост между двумя сетями для Open VPN сервера?

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

В нашем случае  это наш сетевой адаптер, который “смотрит” в интернет и только что созданный адаптер TAP. Настройки IP обнуляем. Выделяем оба адаптера мышкой и объединяем в “мост”:

После установки устройства “Сетевой мост” нужно сделать ему настройки через “свойства” IP адреса, шлюза, маски а так же адреса DNS -серверов (выданные провайдером) . Если IP не было – назначить постоянный, внутренний. Это важно, без этого наш сервер не заработает!

Настройки IP адаптеров включенных в мост не изменяем и ничего не трогаем!

Отключаем брандмауэр windows.  Дополнительно, там же идем в “Разрешение обмена данными с приложениями в брандмауэре  Windows,  добавляем наш установленный open vpn в список (C:\Program Files\OpenVPV\Bin\OpenVPNgui,exe).

Сняли возможную блокировку соединения. Идем далее! Предварительная подготовка почти закончена. Теперь займемся непосредственно сервером. Идем в папку C:\Program Files\OpenVPV\easy-rsa

В ней находятся программы  с которыми мы сейчас будем взаимодействовать. Открываем командную строку от имени Администратора. Переходим в папку easy-rsa, для чего в командную строку скопируем команду  cd C:\Program Files\OpenVPN\easy-rsa

Все операции далее совершаем через командную строку. Для создания конфигурации сервера запустим файл init-config.bat

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

 

rem down TLS negotiation performance
rem as well as the one-time DH parms
rem generation process.
set DH_KEY_SIZE=2048

rem Private key size
set KEY_SIZE=4096

rem These are the default values for fields
rem which will be placed in the certificate.
rem Change these to reflect your site.
rem Don’t leave any of these parms blank.

set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=OpenVPN
set KEY_EMAIL=mail@host.domain
set KEY_CN=server
set KEY_NAME=server
set KEY_OU=OU
set PKCS11_MODULE_PATH=changeme
set PKCS11_PIN=1234

 

Значения “server”  не изменяем. Все значения (страна, регион, город, организация, почтовый адрес) проставляем произвольно английским шрифтом. Сохраняем файл. Переходим в командную строку снова. Набираем  первой команду Vars.bat  

Если OpenVPN устанавливался ранее -набираем команду clean-all.bat  Она удалит созданную до этого  папку с ключами (keys) со всем содержимым . При установе сервера  OpenVPN с нуля  делать эту команду необязательно.

Если у вас так как на фото, нормально. Идем далее

Теперь с помощью проводника перейдем в каталог C:\Program Files\OpenVPN\bin и скопируем файлы библиотек (*.dll) , файл openssl.exe в каталог, где лежат наши исполняемы файлы и который открыт сейчас   в командной строке (C:\Program Files\OpenVPN\easy-rsa):

Библиотеки нужны в этом каталоге, чтобы не возникало ошибок при создании сертификатов центра авторизации и файла  Диффи-Хеллмана. Начнем с последнего. Файл Диффи-Хеллмана  препятствует расшифровке информации (если файлы ключей были похищены), а так же отвечает за шифрование. Создадим его для нашего сервера в командной строке набрав команду build-dh.bat

Ждем, пока файл генерируется на основании информации указанной в vars.bat Далее, сгенерируем сертификат нашего удостоверяющего центра. Он будет необходим для  дальнейшей выдачи серверного и клиентских сертификатов. Наберем в командной строке команду build-ca.bat Последовательно и не спеша нажимаем клавишу Enter…

…после появления очередной строчки; данные в сертификате будут скопированы по значениям указанным в файле vars.bat Следующий этап –  создадим сертификат нашего сервера. В командной строке набираем команду build-key-server.bat server (server -имя серверного сертификата):

Так же последовательно и не спеша нажимаем Enter пока не дойдем до строчки Common Name(eg, your name or your servers hostname Здесь нужно обязательно указать имя сервера ( можно имя компьютера) и нажать Enter.

Далее будут оставшиеся поля и запрос на создание пароля от сертификата. Просто нажимаем Enter. На вопросы записи сертификата и добавления его в базу данных  нажимаем Y и Enter

Срок действия сертификата – 10 лет.

Если нужно поменять сроки действия открываем файл openssl 1.00.cnf и в строке default_days редактируем сроки действия серверного и клиентских сертификатов.

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

В папке sample-config лежит пример файла server.ovpn, находим его, открываем блокнотом( от имени администратора!):

Openvpn клиенты не видят друг друга, как настроить файл конфигурации сервера?

Очищаем  содержимое server.ovpn и вставляем текст:

 

# Поднимаем L4-туннель
dev tap
#dev tune
# Имя устройства (указывается имя адаптера openvpn):
dev-node Ethernet

# Протокол, который использую:tcp
#proto udp
proto tcp

# Порт который “слушает” впн (должен быть открыт, не из списка “известных”)
port 13359

#server 10.8.0.0 255.255.255.0

# Данная машина является
#tls-server

#Укажем пулл незанятых  разрешенных адресов из нашей локальной сети; укажем IP “моста”, его маску а так же диапазон адресов

# Пул разрешенных адресов
server-bridge 192.168.0.1 255.255.255.0 192.168.0.111 192.168.0.121

# Включаю сжатие
comp-lzo

# Разрешаю клиентам видеть друг друга
client-to-client

#назначаю каждому клиенту свой постоянный IP

ifconfig-pool-persist ipp.txt

# Указал ключи и сертификаты (должны находитьcя в папке с конфигом)
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem

# Грубо говоря экономим адреса
topology subnet

# Метод шифрования
cipher AES-256-CBC

#при перезагрузке сервера не перечитываем ключи и настройки туннелирования прежние(у меня tap поэтому отключил):
persist-key
#persist-tun

#Максимальный размер блока данных:
tun-mtu 1500
tun-mtu-extra 32

# Немного улучшит пинг
mssfix 1450

# Время жизни клиентов, если не откликнулся — отключает
keepalive 10 120

# Уровень отладки и логирования (подробный лог)

verb 5

# максимальное количество клиентов

max-clients 10

status openvpn-status.log

 

Жирным выделил то, что можно менять. Ненужные строки можно закомментировать знаком #. Сохраняем файл под именем server.ovpn в  папке C:\Program  Files\OpenVPN\config  Если не получается сохранить –  запускаем блокнот (или программу NotePad++) от имени администратора, редактируем и сохраняем файл куда нужно.

Из папки Key скопируем сгенерированные нами файлы ключей и  сертификатов,  файл dh2048.pem в папку Config  – там же уже должен лежать наш файл server.ovpn

Операции с сервером можно считать почти законченными. Давайте стартуем и проверим наш сервер. На рабочем столе запустим ярлык OpenVPNgui в виде оранжевой замочной скважины (от имени Администратора!) На панели задач рядом с основным значком появиться еще один значок подключения. Кликнув по нему мышкой  обнаруживаем, что устанавливается соединение. Если сервер стартовал успешно –  значок подключения станет зеленым

Как сделать автоматический старт OpenVPN соединения при запуске Windows? 

Каждый раз запускать вручную соединение  неудобно. В ярлыке OpenVPNgui  (свойствах объекта) дописываем аргумент –connect server.ovpn, Ярлык помещаем в “автозагрузку”. Я настраивал автозапуск быстро с помощью glary utilites

Вот так это выглядит Команда –connect дает соединение, а настройки его берутся из файла  нашего server.ovpn

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

С сервером закончили. Не забываем открыть порт (указанный в конфиге сервера) на роутере, чтобы предоставить доступ к  нашему серверу извне.

Как настроить openvpn клиент на Windows10

Теперь нужно закончить с клиентскими машинами. Для начала сгенерируем клиентские сертификаты. Командная строка еще не закрыта? Набираем команду build-key client (сlient – имя сертификата клиента, можно использовать фамилию, инициалы)

Генерация сертификата происходит как обычно. Доходим до строки Common Name(eg, your name or your servers hostname) и вводим имя сертификата клиента. Оно должно совпадать с введеным ранее! После заполняем строки по умолчанию даем согласие на запись сертификата и добавление его в базу данных.

База данных на сервере обновлена . Таким же образом изготавливаем необходимое количество сертификатов.

Устанавливаем программу Open VPN на компьютере клиента.

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

Можно редактировать конфигурацию нажав на значок подключения через меню “Редактировать конфигурацию”

Скопируем туда следующий текст:

client

#имя сетевого адаптера ovpn

 

dev tap

#протокол соединения
proto tcp
#IP Адрес и порт сервера
remote ВАШ IP  ВАШ порт
# Ключи должны лежать в папке с конфигом
ca ca.crt
cert client.crt
key client.key
cipher AES-256-CBC
nobind
comp-lzo
persist-key
#persist-tun

keepalive 10 60
mute 20
verb 5

 

Сохраняем файл в папку с программой по пути C:\Program Files\OpenVPN\config  cертификат центра авторизации (ca.crt), сертификат и закрытый ключ (client.key,client.crt) мы копируем с сервера и помещаем в папку с файлом client.ovpn.

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

Если сотрудник уволился – удаляем файлы  его сертификата и ключа с сервера. Программа позволяет генерить список отзыва недействительных сертификатов –  простая но полноценная программа. Запускаем соединение на клиенте аналогично – через замочную скважину.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.