Ваше местоположение в сети:
Рубрика:

Локалка через интернет

Разделы сайта:

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

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

  • Возможность делиться файлами по сети;
  • Возможность запустить какую-нибудь программу типа , обращающуюся с одного компьютера на другой;
  • Возможность играть вместе в игры и многое другое.

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

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

local via internet

Итак, скачиваем дистрибутив программы с официального сайта, распаковываем его и устанавливаем всё по умолчанию. Внимание! Нужно подтвердить установку драйвера сетевого адаптера TAP-Win32 Adapter V9, когда Windows это попросит.

Openvpn сервер

Один из компьютеров будет выступать в качестве Openvpn сервера, к нему будут подключаться другие компьютеры. Желательно, чтобы на нем был выделенный (постоянный) IP адрес. Начнем с его настройки.

  1. Запустите окно командной строки Пуск – Выполнить (или Win+R) – cmd.exe
  2. Cамая сложная часть настройки – генерация сертификатов и ключей. Здесь нужно быть предельно внимательным и точно следовать инструкциям. В окне консоли вводим без кавычек «cd C:\Program Files\OpenVPN\easy-rsa» где C:\Program Files\OpenVPN\ папка с установленной программой. Окно консоли не закрываем.
  3. Вводим опять без кавычек «init-config»
  4. Реедактируем файл vars.bat и устанавливаем следующие параметры: KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, KEY_EMAIL. Эти параметры нельзя оставлять пустыми, остальные можно оставить по умолчанию. Пример:

    set KEY_COUNTRY=RU
    set KEY_PROVINCE=MO
    set KEY_CITY=Moskow
    set KEY_ORG=GazProm
    set KEY_EMAIL=root@yandex.ru
    set KEY_CN=changeme
    set KEY_NAME=changeme
    set KEY_OU=changeme
    set PKCS11_MODULE_PATH=changeme
    set PKCS11_PIN=1234

    В стандартном блокноте вам не получится отредактировать данный файл, поэтому я воспользовался программкой «Notepad++».
  5. Вводим по очереди команды «vars» «clean-all» и «build-ca». Последняя команда build-ca запросит значения параметров. Все параметры можно не менять, нажав Enter, кроме одного – Common Name. Здесь нужно ввести какое-нибудь имя, я ввёл название организации.
  6. Теперь сгенерируем сертификат и ключ для сервера, выполнив команду: «build-key-server server» Также, как и в предыдущей команде, все параметры можно принять по умолчанию, но для Common Name введите слово «server». На последние два вопроса "Sign the certificate? [y/n]" and "1 out of 1 certificate requests certified, commit? [y/n]" ответьте утвердительно, нажав "y"
  7. Теперь сгенерируем ключи для клиентов, выполнив команды:
    «build-key client1»
    «build-key client2»
    (это команды для двух филиалов, по аналогии можно сделать ключи для большего количества)
  8. Как и в прошлый раз, принимаем все параметры, кроме Common Name, для которого указываем client1 и client2 соответственно. На последние вопросы опять ответьте утвердительно. Осталось выполнить еще одну команду: «build-dh»
  9. Итак, в результате выполнения всех команд, мы получим в папке C:\Program Files\OpenVPN\easy-rs\keys ряд файлов ключей и сертификатов. Зайдите на сервере в папку C:\Program Files\OpenVPN\config и скопируйте туда содержимое папки .\easy-rs\keys. Скопируйте отдельно следующие файлы для клиентских машин: ca.crt, client1.crt, client1.key, client2.crt, client2.key в безопасное место, затем их нужно будет перенести на компьютеры подключаемых клиентов. Вот и все с сервером, можно запускать службу OpenVPN Service, можно сделать автоматический запуск службы при необходимости (через Пуск- Панель управления – Службы), но осталось сделать конфиг для сервера. Сразу хочу сделать замечание, что на Windows клиентах и серверах путь надо прописывать через ДВОЙНОЙ «\\». И так, зайдём в папку C:\Program Files\OpenVPN\config и создадим там файл «server.ovpn», его содержание должно быть примерно следующее:

    port 5194
    proto udp
    dev tun
    topology subnet
    ca C:\\Program Files\\OpenVPN\\config\\keys\\ca.crt
    cert C:\\Program Files\\OpenVPN\\config\\keys \\server.crt
    key C:\\Program Files\\OpenVPN\\config\\keys \\server.key # This file should be kept secret
    dh C:\\Program Files\\OpenVPN\\config\\keys \\dh1024.pem
    server 10.218.77.0 255.255.255.0 # vpn subnet
    ifconfig-pool-persist ipp.txt # Тут будут храниться ip адреса клиентов
    push "route 192.168.78.0 255.255.255.0"
    keepalive 10 120
    comp-lzo
    persist-key
    persist-tun
    status openvpn-status.log
    log-append openvpn.log
    verb 4
    mute 20
    client-to-client
    client-config-dir C:\\Program Files\\OpenVPN\\config\\keys

Конфиг готов, осталось создать ещё 1 файлик с именем «ipp.txt» и следующим содержанием:

client1,10.218.77.10
client2,10.218.77.11
client3,10.218.77.12

Всё, от сервера OpenVPN можно пока отстать. Переходим к настройке клиентской части для создания локалки через интернет.

Openvpn клиент

Чтобы настроить Openvpn клиент, Заходим в папку по адресу C:\Program Files\OpenVPN\config и создаём там файлик «client.ovpn» со следующим содержанием:

remote my_server 5194
client
dev tun
proto udp
topology subnet
persist-key
persist-tun
ca C:\\Program Files\\OpenVPN\\config\\keys \\ca.crt
cert C:\\Program Files\\OpenVPN\\config\\keys \\client1.crt
key C:\\Program Files\\OpenVPN\\config\\keys \\client1.key
comp-lzo
verb 4
mute 20

Тут Вам надо поменять значение «my_server» на IP адрес вашего сервера. Скопируем файлы ca.crt, client1.crt, client1.key в папку C:\Program Files\OpenVPN\config\keys для пользователя «client1» и файлы ca.crt, client2.crt, client2.key для второго клиента (если у вас планируется больше двух). На этом настройка OpenVPN клиента закончена. Пробуем подключиться.

Примечание (Сандер): Если вы все правильно настроите, то после запуска службы на сервере и сеансов на клиентах, ваши компьютеры окажутся в одной локальной сети. Технически это будет выглядеть как будто в сетевых настройках у вас появился новый сетевой адаптер, который функционирует как локалка через интернет. И еще. OpenVPN - это бесплатный продукт с открытым кодом, так что вы работаете не через черный ящик, не завязаны на чужие сервера, в общем, при помощи этой технологии вы получаете настоящую защиту от внешнего мира. Кроме того, OpenVPN прекрасно работает под Линуксом, так что вы даже сможете связать друг с другом в одну компьютеры с совершенно разными операционными системами.

Если у вас будут вопросы, пишите, мы постараемся помочь.

← Сервис напоминанийЗащита диска →
comments powered by Disqus