Андрей Смирнов
Время чтения: ~13 мин.
Просмотров: 9

Windows 10 после обновления и OpenVPN

После очередного принудительного обновления от Мелкомягких перестали мои устройства на Windows 10 подключаться к моему серверу OpenVPN.

До середины июля все было шик и блеск, работало корректно и стабильно. После накатывания обновы параметры в системе не поменялись(и на том спасибо, MS), но к одному из моих серверов OpenVPN устройства подключаться перестали.

Исходные данные:

Сервер на Ubuntu, настроенный на работу по UDP. К нему подключаются и корректно работают по сей день несколько машинок на Win7, несколько на Debian и Ubuntu и одна на Win 10, где обновления отключены по-максимому(насколько это сейчас позволяет система и лайфхаки).

Конфиги приводить не буду, т.к. сервер с другими машинами функционирует корректно, а клиент-конфиги у всех одинаковые(только каждый со своими сертификатами).

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

Всякие фаерволы на винде поотрубал, ничего вроде сеть не контролирует. Левого ПО нет(ноут так вообще чистый, только Putty, OpenVPN и Chrome стоят).

По факту происходит следующее:

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

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

Может кто сталкивался и знает куда копать?

P.S. Есть также еще один OpenVPN настроенный на TCP протокол. Работает на Win 10 машинах нормально.

14VPN.jpg

Использование штатных возможностей Windows 10

Как создать защищенное соединение без стороннего софта? К счастью, в «десятке» предусмотрена такая возможность. Вот подробная инструкция:

  • Открываем «Центр управления сетями» и кликаем по самой первой ссылке «Создание нового подключения».

network.png

  • Нас интересует второй вариант (как на скрине):

vpn-add.png

  • Продолжаем в том же духе, выбрав на следующем этапе верхний пункт из списка:

vpn-internet.jpg

  • Чтобы корректно подключить ПК к сети, стоит указать данные для VPN:
  1. IP (или домен);
  2. Название соединения.
  • После ввода нажимаем «Создать»:

myvpn.png

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

vpn1.jpg

Откроется форма для ввода личных данных:

vpn-open.png

Если всё настроено правильно, то спустя мгновение Вы подключитесь к серверу.

Платные и бесплатные VPN

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

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

С уважением, Виктор

wikium-logo.jpg02.08.20169:324029Виктор ФелькИнформационный портал IT Техникit-tehnik-default2.jpg

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

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

img_5d9b8e4981a5e.png

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

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

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

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

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

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

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

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

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

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

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

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

img_5d99b78b86b87.png

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

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

img_5d99bc0952e51.png

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

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

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

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

img_5d99bde8ac94b.png

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

img_5d99bef3d143c.png

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

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

img_5d99c0436361a.png

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

img_5d99c2118dd24.png

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

img_5d99f2be48dae.png

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

img_5d99f325871bc.png

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

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 с нуля  делать эту команду необязательно.

img_5d99ffcdb2548.png

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

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

img_5d99fc99dad6f.png

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

img_5d99ff70e65b3.png

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

img_5d9a009dde5a7.png

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

img_5d9a0284df58a.png

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

img_5d9a050e5cd9d.png

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

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

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

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

img_5d9a06bdb3431.png

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

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

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

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

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

#server 10.8.0.0 255.255.255.0

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

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

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

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

ifconfig-pool-persist ipp.txt

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

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

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

# Уровень отладки

verb 3

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

max-clients 10

status openvpn-status.log

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

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

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

img_5d9b93b7e4c84.png

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

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

img_5d9b950e9f836.png

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

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

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

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

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

img_5d9a1d1badc10.png

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

img_5d9a1df7487bf.png

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

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

img_5d9b97a8ea65f.png

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

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

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

client

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

dev tap

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

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

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

img_5d9b9e119dece.png

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

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

Используемые источники:

  • https://pikabu.ru/story/windows_10_posle_obnovleniya_i_openvpn_6066061
  • https://it-tehnik.ru/software/windows-10/vpn-windows-10.html
  • https://fast-wolker.ru/kak-polzovatsya-openvpn.html

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации
Тимофей Белов
Консультант сайта
Здравствуйте. Если у вас остались вопросы, вы можете можете задать их мне.