Организация vpn канала между офисами windows
строим VPN канал
Всем привет сегодня в статье мы подробно рассмотрим как настроить VPN канал между офисами с помощью OpenVPN с возможностью дополнительной парольной защитой. Не для кого не секрет, что OpenVPN в последнее время стал очень популярен во многих организациях, и дело тут не в том, что он полностью бесплатен, а дело в эффективности, с помощью которой можно соединить VPN-каналами удаленные офисы. Настраивать мы будет VPN туннель между офисами с дополнительной парольной защитой на платформе Windows.
Задача: Настроить VPN канал между двумя филиалами вашей компании. Сеть в первом филиале называется N_B1) и сеть во втором филиале N_B2. Установка OpenVPN в обоих офисах будет на ОС Windows 7. Приступим к выполнению поставленной задачи.
Network N_B1 содержит:
Компьютер или сервер, где устанавливается сервер OpenVPN, имеет 2 сетевых интерфейса, один как вы можете понять для wan ip адреса, а второй для внутренней сети..
Также на ней установлен proxy сервер который раздает инет в локальную сеть, тем самым являясь для всех машин в локальной сети основным шлюзом (192.168.2.100)
192.168.2.100 смотрит в локальную сеть
192.168.2.3 данный интерфейс смотрит в интернет через маршрутизатор, который имеет статический IP скажем 123.123.123.123. На нем сделан форвардинг или как его еще называют проброс порта 1190 (для примера порт 1190 проброшен на сетевом интерфейсе с ip адресом 192.168.2.3)
Пользователь в сети имеет 192.168.2.100
Network N_B2 содержит:
Компьютер или сервер, где устанавливается клиент OpenVPN, так же имеет 2 сетевых интерфейса.
Также на ней установлен proxy сервер который раздает интернет в локальную сеть, тем самым являясь для всех машин в локальной сети основным шлюзом(172.17.10.10)
172.17.10.10 смотрит в локальную сеть
192.168.2.3 смотрит в мир через маршрутизатор.
Пользователь в сети: 172.17.10.50
Задача: Человек из офиса с сетью N_B1 (192.168.2.100) должен видеть общие ресурсы на компьютере человека из сети N_B2 (172.17.10.50) и в обратном направлении.
Другими словами каждый каждого должен видеть и иметь возможность заходить в гости, вдруг кто фотки новые расшарит посмотреть своему коллеге из другого branche.
Приступаем к настройке
Загружаем OpenVPN с официального сайта , главное выберите правильную разрядность Windows, сам по себе дистрибутив очень легкий.
Запускаем установку OpenVPN, на 3-м шаге ставим птички OpenSSL Utilites и OpenVPN RSA Certificate Management Scripts.
Установка OpenVPN 2.3.8
Следующий шаг — путь для установки. Чтобы облегчить себе дальнейшую жизнь, устанавливаем в корень диска С.
Выбор места установки
Во время установки в ОС будет добавлен virtual network adapter TAP-Win32 Adapter V9, и дополнительный драйвер для него. Данному сетевому интерфейсу OpenVPN как раз и будет выдавать IP адрес и маску виртуальной сети OpenVPN. У нас назначен адрес 10.10.10.1 с маской 255.255.255.0 на сервере N_B1 и 10.10.10.2 с такой же маской на клиенте N_B2.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-05
Переименуем его в «VPN»
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-06
В директории «C:\OpenVPN» следует сразу же создать дополнительно папку ssl (здесь мы будем хранить ключи аутентификации) папку ccd (здесь будут находится конфигурация настроек сервера для клиента).
В папке easy-rsa создаем файл vars.bat, данный пакетный файл будет задавать переменные для сеанса генерации сертификатов, в той части что касается организации и расположения заполняем своими данными.
Запускаем командную строку от имени администратора.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-07
Переходим по пути C:\OpenVPN\easy-rsa, набрав для перехода в командной строке команду
Запускаем vars.bat:
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-08
Далее запускаем clean-all.bat:
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-09
Теперь запускаем build-ca.bat. Так как вся информация о сервере у нас уже заполнена, все оставляем без изменений:
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-10
после этого у нас в папке ssl появится два файла ca.crt и ca.key.
Запускаем build-dh.bat:
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-11
в результате у нас в папке ssl появится файл dh1024.pem.
Создаем серверный ключ, для этого вводим команду:
где «ServerVPN» это название нащего VPN сервера, как в моем случае,
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-12
в результате у нас в папке ssl появятся файлы ServerVPN.crt, ServerVPN.csr, ServerVPN.key.
Приступаем к формированию клиентских ключей.
где «UserVPN_1» имя нашего клиента.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-13
В результате у нас в папке ssl появятся файлы UserVPN_1.crt, UserVPN_1.csr, UserVPN_1.key.
Если у вас несколько клиентов, то повторяем формирование ключей; не забывая каждому клиенту присваивать свои имена
Генерация ключа tls-auth (ta.key) для аутентификации пакетов, для этого переходим в корневую папку OpenVPN:
и выполняем команду:
в результате в папке ssl плучим файл ta.key.
Приступаем к созданию конфига сервера. В папке config создаем файл OpenVPN.ovpn:
В папке ccd создаем файл без расширения и называем его точно, как клиента UserVPN_1, открываем его блокнотом и пишем следующее:
Создаем конфиг клиента.
Устанавливаем на клиенте OpenVPN, предаём ему ca.crt, UserVPN_1.crt, UserVPN_1.key, ta.key.
Настраиваем файрволы и антивирусы на клиенте и на сервере для беспрепятственного прохождения пакетов. Описывать не буду все зависит от установленных антивирусов и файрволов.
После всего этого запускаем наш сервер и клиент.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-14
Если все правильно сделали наш сервер получит IP 10.10.10.1 и подключится к нему клиент и получит IP 10.10.10.2 . И так подключение у нас состоялось теперь сервер и клиент пингуют друг друга по IP нашей VPN сети, то есть 10.10.10.1 и 10.10.10.2.
Для того чтобы пинг шел по внутренним адресам наших N_B1 и N_B2 нужно включить службуМаршрутизации и удаленного доступа.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-15
Hужно зайти в свойства службы, настроить ее на автоматическое включение и запустить.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-16
После этого мы сможем пинговать внутренние IP сервера и клиента (172.17.10.10 клиент и 192.168.2.100 сервер).
Но у этого способа есть маленький недостаток: после включения этой службы и подключения к нашему VPN-каналу на значке сетевого подключения повиснет красный крест до отключения VPN.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-17
При этом все сети работают в штатном режиме. Лично меня этот крест раздражает и иногда сбивает с толку.
Есть второй способ как сделать видимыми внутренние IP сетей наших сервера и клиента.
Для этого заходим в реестр, открываем ветку реестра:
Находим параметр и меняем значение: IPEnableRouter типа REG_DWORD значение 1.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-18
Не забываем перезагрузить машину, чтобы настройки вступили в силу!
Это нужно проделать и на сервере, и на клиенте.
Итак мы пингуем наши сети по внутренним IP, а так как у нас и сервер и клиент для своих сетей являются шлюзами, то и машины из сети 1 могут видеть машины из сети 2 и наоборот. то есть Пользователь N_B1 (192.168.2.100) может видеть расшаренные папки Пользователя N_B2 (172.17.10.50) и наоборот.
Если сервер и клиент не будут являться шлюзами для своих сетей, в том случае придётся прописывать маршруты руками.
Пример для N_B1:
Пример для N_B2:
в моем случае этого не понадобилось.
Для автоматического запуска сервера и клиента нам нужно включить службу OpenVPN Service
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-19
теперь при загрузке машины сервер автоматически стартует, а при включении машины клиента он также автоматически подключится к серверу.
Дополнительная защита
Как известно в OpenVPN есть возможность аутентификации по сертификатам, как описано выше, а так же по логину и паролю, но можно еще и объединить их вместе. Насколько мне известно только в Linux есть возможность штатными средствами настроить аутентификацию по логину и паролю, но в Windows это тоже можно решить. Для этого в папке config создаем файл auth.vbs и пишем в него следующее
Так же в папке config содаем файл Users.pw туда пишете логин и пароль нашего клиента
Если несколько клиентов то:
Дальше нужно в конфиге клиента прописать строку auth-user-pass, теперь когда клиент будет подключаться к серверу у него будет выплывать окно авторизации где нужно ввести логин и пароль, который вы назначили ему в Users.pw,их нужно будет сообщить клиенту.
Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-20
У меня настроено что имя пользователь(логин) соответствует имени клиента в сертификате, то естьUserVPN_1. но можно задать и другое имя отличное от имени в сертификате, для этого нужно смотреть настройки в auth.vbs.
А для того чтобы аутентификация работала и по сертификату, и по логину с паролем, но при этом не выплывало окно авторизации пользователя, так как это будет задерживать подключение клиента к серверу если, например, у вас включена автоматическая загрузка службы OpenVPN Service (как настроено у меня) или вы просто не хотите каждый раз вводить логин и пароль, в этом случае на клиенте в папке ssl создаем файл pass.txt и пишем в него наш логин и пароль вот так:
а в конфиге клиента меняем строку auth-user-pass на auth-user-pass C:\\OpenVPN\\ssl\\pass.txt.
Теперь я включаю машину где установлен OpenVPN -Server, запускается служба и сервер VPN автоматически поднимается. Клиент запускает машину и у него также проходит автоматическое подключение к моему серверу. Теперь можно заходить в общие папки или по RDP работать, например, в 1С, установленной в другой организации.