Рецепт простого приготовления OpenVPN. Пошаговая инструкция

    image

    Приветствую, хабралюди. Не буду писать традиционное «этой мой первый топик на Хабре, не судите строго». Наоборот — обоснованная критика приветствуется, т.к. я не имею большого опыта написания статей и буду признателен за любую реакцию.

    Предупреждение номер раз. Данный пост, скорее всего, не будет интересен гуру от мира сетей. Он в первую очередь адресован тем, чьи интересы лежат в других областях мира IT, но им свойственно любопытство и интересно все новое. Поэтому для тех, кто «в теме» текст может показаться набором известных истин и банальностей. Господа, я стремлюсь не удивить вас, а помочь менее продвинутым в данной области. Все нижесказанное будет касаться исключительно компьютеров под управлением различных версий Windows.
    Предупреждение намбер ту. Я также не считаю себя гуру и могу ошибаться/допускать неточности в некоторых утверждениях и суждениях. Однако сам алгоритм действий по настройке рабочий и проверен лично.
    Предупреждение три. Много букв. Пишу намеренно подробно, как следствие – обширно.
    Если вышесказанное вас не испугало – приступим.

    Для начала с помощью wiki напомню, что такое VPN и чем, собственно, оно может быть полезно. VPN (англ. Virtual Private Network — виртуальная частная сеть) — обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например Интернет). Теперь по-русски. При необходимости можно безопасно объединить сколь угодно удаленные компьютеры так, что они будут считать себя членами одной локальной сети со всеми вытекающими отсюда выгодами и удобствами, был бы только у них доступ в интернет.

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

    Пример два: находясь вне дома, возникает необходимость получить доступ к файлам домашнего компа. При чем доступ надёжно шифрованный, ибо начинающих кулхацкеров в сети (возможно, и в вашей локальной) хватает и многие из них могут не иметь даже приблизительных понятий о спуфинге, стеке TCP/IP и прочих мудрёных «моделяхоси», но зато знают, как запускать программы типа «Cain&Abel», умеющих не только перехватывать большинство передаваемых в достижимом сегменте сети паролей, но и услужливо брутфорсить те из них, которые зашифрованы, но выбраны не очень качественно. Наряду с другими способами, VPN нам в помощь вновь – весь трафик надёжно шифруется с использованием открытых и годами проверенных алгоритмов и механизмов.

    Для организации VPN желательно, чтобы хотя бы одна сторона организовываемого канала имела «честный» IP-адрес. Можно реализовать и между двумя частными сетями с «серыми» IP-адресами за NAT-ом или прокси-сервером, придётся лишь дополнительно привлечь на помощь Hamachi, или обойтись «пробросом порта» (методом “connect” для прокси), если есть доступ к настройкам сервера/роутера. Далее я рассматриваю именно такой случай.

    Вариантов организации виртуального частного канала достаточно много, я хочу рассказать об одном из них, бесплатном и общедоступном, как и явствует из названия – OpenVPN. Еще одно преимущество данного ПО в том, что оно кросс-платформенно. Соединяемые компьютеры могут иметь разные ОС, *nix в том числе, но настройка таких машин выходит за рамки данной статьи.

    image

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

    1. Качаем софт

    2. Ставим. Сперва на стороне будущего сервера. Потом повторим на стороне клиента (это немного проще), хотя последовательность не принципиальна. Я, как существо ленивое, согласился с путями установки по умолчанию (C:\Program Files\OpenVPN\), за что поплатился первыми граблями.
    Проблема: при работе софт некорректно отрабатывает пути к конфигурационным файлам, которые содержат пробелы.
    Решение: ставить в корень диска в отдельную подпапку без пробелов в названии или же позже «экранировать» в конфигах такие пути кавычками. Я экранировал и дальнейшее описание основано на стандартном пути установки.

    3. Для установки шифрованного соединения с удаленной машиной потребуются сертификаты для каждой из сторон виртуального канала, которые будут подтверждать, что они именно те, за кого себя выдают. Их можно купить (сотни долларов в год, хотя бывают и триальные варианты до 90 дней) в одном из многочисленных центрах сертификации (CA). Плюс такого решения – ни одна операционная система или браузер не будет истерить, что сертификат выдан неизвестным поставщиком и «хозяина, одумайся, кому ты веришь?». Минус очевиден – расходы. Второй вариант – создать такие сертификаты самому, соорудив свой локальный CA для личных нужд. Способов для этого есть достаточно много, важно лишь внимательно отнестись к параметрам готовых сертификатов (а именно сличать «отпечатки» (thumbprint или хэши) сгенерированного и внедряемого), которые вы будете подсовывать OpenVPN и убедиться в том, что это именно созданные вами, а не злым хакером, который хочет утащить весь ваш архив фотографий обнаженной подружки деловой корреспонденции, узнавшем о ваших планах использовать VPN и каким-либо образом подменившем сертификат на свой. Ситуация, конечно, практически невероятная и скажем прямо – параноидальная, но безопасность – так безопасность. Это, пожалуй, самое уязвимое место в самой идее использования сертификатов и ключей — их подмена при однократной передаче по сети от СА к сторонам VPN-канала и реализация атаки «man in the middle».

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

    Для тех, кто хочет побыстрее и не боится повторять чужие ошибки: все ниже написанное про создание ключей и сертификатов кратко изложенно на английском в файле C:\Program Files\OpenVPN\easy-rsa\README.txt.
    Распишу подробнее и расскажу, на чем возникали проблемы у меня.

    Центр сертификации, ключи, сертификаты


    a. Переходим в C:\Program Files\OpenVPN\easy-rsa

    b. Открываем openssl.cnf.sample, правим по необходимости. Тут действует стандартное правило – «не уверен – не трогай». К слову, данный файл можно вообще не менять, настройка по дефолту вполне рабочая. Но если руки чешутся: например, некоторые значения переменных будут обязательны для ввода пользователем при создании сертификата, но их можно задать заранее по умолчанию и они будут отображены как вариант ответа в квадратных скобках, их можно будет применить простым нажатием Enter. Такие переменные обозначены «match». Нетребуемые параметры обозначены «optional». Обязательные для ввода и уникальные параметры, которые каждый раз нужно вводить вручную обозначены «supplied» (такие переменные крайне не рекомендуется переводить в другой статус).
    Можно настроить срок действия сертификатов (по умолчанию – 10 лет), ограничения на длину контактной информации пользователя и прочее. Сохраняем под именем openssl.cnf.

    c. Запускаем init-config.bat
    Внимание, возможны грабли! Рекомендуется этот и все последующие *.bat-файлы запускать не привычно двойным кликом, а в консоли винды. Для тех, кто ею пользуется редко напомню, что немного облегчить себе жизнь можно копипейстом путей для быстрого перехода в нужную папку. Проводник – >выделить путь к папке –> скопировать – >переход в консоль (win+r -> cmd) ->правая кнопка мыши –> вставить (Ctrl+V не прокатит!). Если нужно скопировать путь из консоли в буфер: правая кнопка мыши –> Пометить –> выделить нужный кусок текста –> Enter.
    Переходим в консоли в папку C:\Program Files\OpenVPN\easy-rsa и запускаем init-config.bat.

    d. Возвращаемся в проводнике в easy-rsa и правим файл vars.bat (советую открыть его WordPad-ом, если открывать из контекстного меню Проводника «изменить» можно получить очередные грабли — сообщение о том, что файл не найден с предложением создать новый, виной тому все тот же пробел в пути). Все параметры снабжены комментариями, разобраться, что к чему, несложно. По большому счёту там все тоже можно оставить по умолчанию, однако по патриотическим соображениям можно и поменять страну, город, вписать свой e-mail. Это ни на что влиять не будет, а просто будет отображаться как информация в сертификатах. Обратите внимание на переменную KEY_DIR=keys. Это название подпапки, которую нужно будет создать после сохранения vars.bat в easy-rsa, там будут лежать ключи и сертификаты, необходимые для шифрования. Имя можно поменять, но не забудьте это отобразить в переменной KEY_DIR.

    e. Не забываем создать папку keys или ваш вариант названия.

    f. Создаем в keys новые пустые файлы “index.txt“ и “serial”. В easy-rsa уже лежат файлы index.txt.start и serial.start, их можно просто скопировать в keys и там переименовать, убрав расширение .start. В serial будет лежать количество выданных СА сертификатов (первый – сертификат самого СА), в index.txt – информация о выданных сертификатах.

    g. Запускаем vars.bat, запускаем clean-all.bat (и снова не забываем — в консоли!)

    h. Создаем ключ центра сертификации: запускаем vars.bat, запускаем build-ca.bat отвечаем на вопросы. На все можно отвечать Enter-ом, используя предложенные варианты по умолчанию, кроме уникального ответа на вопрос «Common Name» (т.е. вашего имени или имени компьютера). Пару раз подтвердить намерения, согласиться подписать.
    Результат: файл-сертификат центра сертификации «ca.crt» и файл-закрытый ключ СА «ca.key» в папке Keys. Все закрытые ключи необходимо надежно хранить, имея их можно расшифровать все натужно и старательно зашифрованное.

    i. Создаем ключ Диффи-Хелмана (что это и зачем – можно прочесть в wiki, если лень — просто примем тот факт, что это нужно): запускаем vars.bat, запускаем build-dh.bat, немного ждем и любуемся процессом. Если запускать build-dh.bat не в консоли, а мышью, то ничего не происходит, опять таки не забываем, я на эти грабли потратил несколько часов.

    j. Создаем закрытый ключ и сертификат для сервера: запускаем vars.bat, запускаем build-key-server.bat <имя_сервера>. Имя сервера как параметр через пробел от имени батника при запуске указать весьма желательно, потому как по умолчанию мы получим файлы ключа и сертификата без имен, с одними расширениями, что при некоторых обстоятельствах может привести к перезаписыванию других сертификатов и ключей, так же созданных без имени (еще одни грабли).

    k. Создаем закрытый ключ для клиента: запускаем vars.bat, запускаем build-key.bat <имя_клиента>. Рекомендация по имени аналогично – желательно указать. В итоге получим ключ в PEM-формате. (Есть возможность создать ключ в формате PKCS N12, для этого вместо build-key.bat <имя_клиента>. нужно запустить build-key-pkcs12.bat <имя_клиента>. Разницу между форматами описывать не буду, при желании можно погуглить).

    l. Все. Не прошло и получаса, как мы создали необходимые ключи и сертификаты для клиента и сервера и сэкономили несколько сотен долларов.

    Настройка


    4. Теперь собственно настройка OpenVPN. Опять придётся править конфиг-файлы, это наследие linux-корней программы. Переходим в C:\Program Files\OpenVPN\sample-config, копируем оттуда client.ovpn и server.ovpn, кладем их в C:\Program Files\OpenVPN\config.

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

    В C:\Program Files\OpenVPN\config открываем (можно просто двойным кликом) client.ovpn, читаем комментарии к каждой переменной, меняем нужные нам. Закомментированные варианты начинаются с “;”, действующие (и рекомендуемые) – без точки с запятой в начале. С большинством рекомендованных параметров можно согласиться, как минимум обязательно нужно изменить следующие параметры:

    «ca ca.crt». Тут нужно указать полный путь к сертификату центра сертификации. Если ваш путь установки программы совпадает с моим, то он лежит в easy-rsa\keys. Внимание, грабли: в конфигах сервера и клиента в путях к файлам нужно использовать не однократные, а двойные слеши. Это особенность программы. Про еще одни грабли я упоминал ранее: пути содержат пробел, поэтому их необходимо взять в кавычки. Переменная ca будет выглядеть так:
    ca «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt»

    то же проделать с переменными клиента cert и key:
    cert «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\<имя_клиента>.crt»
    key «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\<имя_клиента>.key»

    remote: тут нужно указать IP-адрес сервера и через пробел порт, на котором он будет слушать входящие подключения (порт настраивается при конфигурации сервера).
    Небольшое отступление. Так как инициатором соединения в клиент-серверных моделях выступает клиент, то именно сервер должен обладать «честным» IP-адресом или хотя бы находится за сервером/роутером, к которым есть доступ, с таковым. Я настраивал VPN между рабочим (за NAT-ом) и домашним (аналогично) компами, домашний имеет «серый» IP-адрес, но это легко решилось «пробросом» порта (я выбрал 7000) роутера на этот комп, так как у роутера постоянный и «честный» адрес в сети.

    Остальные переменные я оставил по умолчанию, вы можете поменять нужное, они хорошо описаны.

    b. Настройка сервера.

    Переменная port – указываем UDP-порт (или TCP-порт, если вы сменили протокол в переменной proto, нужно только чтобы значение proto совпадало на сторонах клиента и сервера), который сервер будет слушать. Можно выбрать любое значение от 1025 до 65535, важно чтобы оно не конфликтовало с другим серверным софтом, если таковой имеется (или другими программами, которые могут быть привязаны к конкретному порту, например торрент-качалки).

    Аналогично клиентским, переменные ключей и сертификатов:
    ca «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt» (сертификат СА один, клиенту и серверу указывается один и тот же)

    cert «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\<имя_сервера>.crt»

    key «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\<имя_сервера>.key»

    Плюс ключ Диффи-Хелмана:
    dh «C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem»

    Переменная server. Определяет частную («серую») сеть, из диапазона которой будут выбраны IP-адреса для соединяемых компьютеров. При организации VPN средствами OpenVPN на сервере и на клиенте появляются новые виртуальные сетевые интерфейсы, которые винда, благодаря драйверам в комплекте, считает вполне полноценными реальными сетевыми картами. Их настройки и определяются этой переменной. В большинстве случаев можно оставить по умолчанию.

    Остальные переменные так же можно не менять, упомяну еще только про переменную verb. Она определяет подробность логов, которые будут вестись на стороне сервера про все события и ошибки. Значение 1 – самый минимум подробности, значение 9 вас впечатлит. Так для одной попытки неудачного коннекта я получил лог-файл весом порядка 600 кб. Разумно оставить 3, или повысить до 4-5 при необходимости тщательного анализа ошибок.

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

    Запуск.


    6. Настройка завершена, можно пытаться запустить все это. (Не забудьте открыть нужные порты и IP-адреса в файерволах!) Для этого есть два варианта:

    a. Переходим на сервере в C:\Program Files\OpenVPN\config, правая кнопка мыши на server.ovpn -> Start OpenVPN on this config file. Аналогично на стороне клиента с файлом client.ovpn. В каждом случае наблюдаем сообщения и в случае удачи на клиенте увидим в последней строке:
    «Initialization Sequence Completed»

    или
    b. Запускаем графическую оболочку C:\Program Files\OpenVPN\bin\ openvpn-gui-1.0.3.exe – Правая кнопка мыши на значке в трее – server – connect (для клиента – client – connect). В случае удачи на клиенте увидим поп-ап окошко из трея вида:
    «Assigned IP: 10.8.0.6» и значок позеленеет.

    7. Еще одни, последние грабли, с которыми мне довелось столкнуться. Если системная служба “DHCP-клиент” не запущена на клиенте (а я ее намеренно отключил сразу после установки винды, так как IP-адрес у машины постоянный), он не сможет получить IP-адрес, который ему будет пытаться выдать сервер. При чем графическая оболочка будет рапортовать, что адрес получен, но в сетевых подключениях в системной таблице маршрутизации мы этого не увидим.

    Применение


    8. Связь есть, что теперь? А теперь – только от вашей фантазии все зависит. Можно поставить дома ftp-сервер, слушающий ай-пи адрес виртуального канала (прощай, проблема открытой передачи логина и пароля по протоколу ftp), можно использовать что-то вроде R-Admin-а или его бесплатного аналога TightVNC, можно из дому ходить в интернет через удаленный шлюз (пример первый; правда, для этого нужно будет еще немного повозиться (как минимум — включить) с маршрутизацией на удаленном шлюзе и не забыть, что просто изменив шлюз по умолчанию на удаленный, можно потерять инет вместе с туннелем вообще; тут пригодиться раскомменитровать в настройках сервера переменную push «redirect-gateway def1 bypass-dhcp»). Можно настроить удаленную синхронизацию файлов. В общем, можно сделать все, что можно в локальной сети. И при этом безопасно. Так как туннель поднимается на транспортном уровне OSI – в него можно «завернуть» любое сетевое приложение.
    А если к этому еще и прикрутить Wake-On-Lan — получается весьма удобная штука для самых разных применений.

    P.S. Так сказать во избежание. Я не имею никакого отношения к проекту OpenVPN.

    P.P.S. Картинки честно сперты, ссылки присутствуют.


    UPD. Форматирование немного поправил.
    Кроме того хочу внести некоторую ясность. Я не ставил перед собой задачу «раскрыть тему Open VPN»: для этого есть соответствующий сайт с подробной документацией. Я не ставил перед собой цель описать все переменные в конфигах: они и так описаны в самих файлах конфигурации, каждая минимум абзацем. Да и при такой подробности изложения статья получилась бы совершенно нечитабельно-огромной и унылой. Я хотел описать набор действий, минимально необходимый для того, чтобы все это запустить. А дальнейший тюнинг и тонкая настройка под конкретные задачи и конфигурации сети — это уже тема отдельной статьи.

    UPD-2.Софт обновился до OpenVPN 2.1.1 (released on 2009.12.11), поэтому ссылку в статье обновил. Список изменений тут.
    Поделиться публикацией
    Комментарии 27
      +1
      Критика номер раз: весь текст до хабраката не о чем. Абсолютно не понятно о чем статья.
        0
        Я надеялся, что тема статьи понятна из заголовка и тегов.
        +2
        Хорошая была бы инструкция, если бы у пунктов были ясно читаемые заголовки и фраз вида «со всеми параметрами можно согласиться» было бы поменьше. Расписывать параметры — так расписывать, чтобы человек не оказался в облаке непонятных символов, открыв файл.
          +2
          Отчасти согласен, учту на будущее, спасибо.
          +3
          Вот это пожалуйста выделите:
          Все нижесказанное будет касаться исключительно компьютеров под управлением различных версий Windows.
          +1
          Незнаю как остальные, но мне статья понравилась.Все более менее понятно, занес в закладки.Думаю это пошаговое руководство как отправная точка для поднятия VPN.
          +5
          Про оформление
          Стоит сделать заголовки не цифрами, а именно «заголовками» <Hn> — так лучше будет видна структура документа. Пока что это просто портянка с текстом.

          Кроме того, воды чересчур много. Подробно писать — это не значит лить воду. Вы очень много написали слов, а в то же время ни одного конкретного примера полного рабочего конфигурационного файла нет. Очень долго будет ковыряться человек, если что-то пропустит — а пропустит он наверняка, ведь заголовков нет и зацепиться глазу не за что.

          По существу темы
          Про сертификаты вы пишете чуть ли не прямо противоположное тому, что написано в документации OpenVPN. Да, можно купить сертификаты, можно приготовить самому, и рекомендуется именно второе и не потому, что бесплатно, а потому, что OpenVPN рассчитан на работу с собственным самоподписанным CA.
          Если взбредёт в голову использовать купленные сертификаты — нужно иметь ввиду, что запросто можете поиметь себе геморрой. Без специальной нетривиальной настройки, любой сертификат, выданный тем же самым CA, будет подходить к вашему VPN.

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

          По поводу путей и бэкслешей: если вы ovpn-файл помещаете в той же директории, что и ключи-сертификаты (по умолчанию — C:\Program Files\OpenVPN\config), то вообще полный путь к файлам писать необязательно. Учитывая, что автоматически создаваемый сервис OpenVPN стартует все ovpn-файлы из этой директории, там всё это и надо размещать, и не париться с путями.

          Про DHCP-клиент: какой кошмар, есть ещё люди, которые до сих пор конфигурируют все адреса руками? Или вам лишние 20 килобайт ОЗУ, а точнее — свопа, жалко?
            +1
            За оформление не кидайте помидорами, я и сам вижу. Изначально текст писался в ворде и был толково структурирован отступами и нагляден, при переносе это все потерялось. Буду приспосабливаться.
            Про DHCP не согласен. У меня фирма на 15 компов. Зачем мне DHCP, лишние системные службы на каждой машине, лишний трафик в сети (пусть и небольшой), более медленное сетевое подключение при старте, лишняя роль сервера? Я один раз прошел по компам, выдал адреса и все. Вот если бы парк насчитывал многие десятки, сотни и более машин — тут я соглашусь, удобство неоспоримое.
            Прочее Вами сказанное приму к сведению, благодарю за замечания.
              0
              А, т.е. вы предпочитаете наизусть помнить все адреса машин? Хорошая у вас память.
              Ещё вы, видимо, на каждой машине обслуживаете статический файлик hosts, также, вероятно, lmhosts?

              (Пока не научился, именно так и делал. Но лень сделала своё — проще настроить DHCP-сервер, чем вбивать адреса вручную. Сейчас я даже в сеточке на три компа обычно связку настраиваю DHCP+DDNS. А в сетях, связанных VPN, вообще динамическая маршрутизация — опять же, чтобы не думать, пусть OSPF думает за меня.)

              Про лишние службы и трафик вы несомненно загнули — от DHCP насколько незначительная нагрузка по сравнению с другими, куда менее полезными, службами, что на его отключение нужно смотреть в последнюю очередь, а точнее — вообще не нужно смотреть никогда. Например, вы в курсе, сколько трафика генерирует любимое виндовское «сетевое окружение», и насколько всё лучше становится, когда в сети работает WINS? Хотя и это мизер, всё равно, NetBIOS в сотни и тысячи раз больше ресурсов потребляет, чем DHCP.
                0
                На вкус и цвет, как говорится… Меня учили, что любая лишняя запущенная служба на сервере — лишний расход ресурсов, лишний риск для стабильности и лишняя потенциальная уязвимость. Стараюсь придерживаться этой идеологии во всем. Границу между удобством и надежностью/безопасностью каждый находит для себя сам. Имхо, DHCP+DDNS на три машины — это тоже слишком:) Хотя при современных компо-мощностях и пропускных способностях сетей я Ваше мнение тоже понимаю.
                  0
                  Есть и противоположная крайность — отключение всего, и лишний риск для стабильности от отсутствия базовых компонентов (к коим и можно отнести DHCP-клиент). Трафик DHCP — пяток пакетов при старте и столько же при обновлении адреса вряд ли способен оказать хоть какое-то влияние на сеть :) Кстати, рекомендую глянуть что гуляет по сети в момент когда казалось бы должен быть тишина — там столько шума…
            0
            блин жесть, хоть бы пример конфига привел. не объяснил в чем разница между tun/tup, tcp/udp. установка ovpn на винде (как сервер) по-моему это большие грабли :) вообщем тема ovpn не раскрыта, а за картинку спасибо заюзаю ее на своем сайте :)
              0
              да ну вас, никаких граблей на винде нет, просто понимать надо, что делаешь и как это работает
                0
                Частично ответил в UPD. Конфиг не привожу, потому как мой конфиг в Вашей сети работать все равно не будет, у нас разные топологии сетей, соединяемые туннелем, разные настройки брендмауэров, маршрутизаторов и т.д.
                –3
                блять, таких статей полный интернет
                и все равно поднять, впн, настроить потом отдельную маршрутизацию ему — это надо час промудохаться.
                  0
                  Можно заплатить специалисту и все сделают за Вас. Или же купить коммерческое решение с красивой GUI, мастером и прочими рюшечками.
                    0
                    дело в другом
                    в том, что не надо никому ничего платить
                    достаточно набрать запрос в гугле и таких статей он покажет миллион и маленькую тележку, образно говоря
                      +2
                      Вас никто наручниками не приковывал и читать эту статью не заставлял, образно говоря;) И уж если полный интернет таких статей и все равно Вам «надо час промудохаться» — может, в консерватории что-то подправить? (с). Или стоит написать свою статью на эту тему, которая уж точно будет лучше?
                  +1
                  «2. Ставим. Сперва на стороне будущего сервера. Потом повторим на стороне клиента (это немного проще), хотя последовательность не принципиальна. Я, как существо ленивое, согласился с путями установки по умолчанию (C:\Program Files\OpenVPN\), за что поплатился первыми граблями.
                  Проблема: при работе софт некорректно отрабатывает пути к конфигурационным файлам, которые содержат пробелы. „

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

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

                  Причем тут топологии вообще? В общем случае при установке соединения с удаленным сервером, внутренняя топология нас не особо интересует… Да и конфиг сервера не будет сильно отличаться, а «настройки брендмауэров, маршрутизаторов» это отдельная песня не имеющая непосредственного отношения к настройке самого ОпенВПН)

                  А так получился небольшой теоретический экскурс в опенвпн.
                    0
                    >Уж не знаю где вы там нашли грабли, но у меня на куче машин восхитительно работает именно по этому пути)

                    Точно под виндой? У меня под ХР bat-файлы с пробелами в путях к ним категорически не хотят запускаться и это касается не только OpenVPN. Поэтому честно предупреждаю. Возможно, эти грабли только мои. Нет проблемы — и хорошо. Но все же избегать нелатинских символов в путях при настройке чего-либо, как мне кажется, хорошая практика.

                    >Причем тут топологии вообще? В общем случае при установке соединения с удаленным сервером, внутренняя топология нас не особо интересует… Да и конфиг сервера не будет сильно отличаться, а «настройки брендмауэров, маршрутизаторов» это отдельная песня не имеющая непосредственного отношения к настройке самого ОпенВПН)

                    Отчасти Вы правы, но все же. Имелся в виду, например, режим «мост» на уровне ethernet. Или чтобы достучаться к «серым» сетям за клиентом/сервером, нужны специфические настройки.
                      0
                      cmd /k cd «C:\program files\openvpn\easy-rsa» & init-config
                      vars
                      build-ca

                      и т.д.)

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

                      ifconfig-push?
                    0
                    Класс, спасибо за инструкцию. Прочел -> сделал -> у меня все работает, а что еще надо?
                      0
                      Рад, что пригодилось:)
                      Что еще надо? Разобраться с тонкостями, которые тут не описаны, и еще точнее подгонять под свои задачи.
                      0
                      А зачем сохранять openssl.cnf.sample в виде openssl.cnf, если init-config.bat делает это сама? (тоже самое она делает с vars.bat.sample)
                        0
                        а clean-all.bat создает папку keys, а в нем файлы index.txt и serial.

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое