Как организовать vpn канал через интернет
Перейти к содержимому

Как организовать vpn канал через интернет

  • автор:

Как предоставить доступ для всех устройств из локальной сети к VPN

Наверное, ни для кого уже не секрет, что использование технологии Virtual Private Network (VPN) становится повседневной необходимостью. На рынке присутствует много решений – платных и бесплатных.

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

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

Установка приложения на компьютер, смартфон или браузер имеет ряд недостатков.

  1. На некоторые устройства, например телевизор со Smart TV, или какое-то нестандартное устройство, требующее доступа к интернету, установка приложения может быть невозможна.
  2. На разные виды устройств ставятся разные приложения. Для Android оно будут одни, для Windows — другие.
  3. Приложение может содержать вирус или какую-нибудь уязвимость. Чем больше различных устройств с этим приложением вы используете, тем больше вероятность, что оно их содержит.

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

То, что скорее всего, моя идея осуществима, меня вдохновило, и я принялся воплощать ее в жизнь. Процесс этот был методом проб и ошибок, я его не документировал, да и, наверное, это было бы утомительно приводить его в этой статье. Результатом стало то, что из множества протоколов VPN (PPTP, L2TP/IPSec, OpenVPN и WireGuard) я выбрал WireGuard, а из различных кастомных прошивок (DD-WRT, FreshTomato, OpenWRT) я выбрал OpenWRT. Также из-за того, что я хотел иметь постоянный доступ в интернет и проводить различные эксперименты, я установил кастомную прошивку на один роутер и подключил его WAN порт к одному из LAN портов другого, имеющего доступ в интернет.

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

Установка кастомной прошивки на роутер

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

Вам понадобится одна из самых последних версий этой прошивки. На момент написания статьи это OpenWrt 22.03.0.

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

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

Так как у меня был роутер ASUS RT-56U V1, то здесь приведу, как я устанавливал прошивку на свой роутер. Подробно процесс описан по следующей ссылке https://www.asus.com/ru/support/FAQ/1000814/.

  1. Загружаем свежую прошивку для ASUS RT-N56U от OpenWRT.
  2. Загружаем приложение для прошивки роутера ASUS(Firmware Restoration).
  3. Отключаем в Windows все сетевые карты на компьютере, кроме той, к которой при помощи кабеля будем подключать роутер.
  4. Заходим в настройки TCP/IP для сетевой карты и вводим адрес 192.168.1.10 и маску 255.255.255.0.
  5. Запускаем приложение для прошивки.
  6. Выбираем файл с нужной прошивкой.
  7. Подключаем роутер по сетевому кабелю к компьютеру. Зажимаем кнопку Reset и включаем роутер. Ждем пока он перейдет в режим обновления (мигающий светодиод питания, я подождал на всякий случай секунд 15).
  8. Нажимаем кнопку Upload в приложении.
  9. Ждем пока роутер прошьется и перезагрузится.
  10. Заходим в настройки TCP/IP для сетевой карты и устанавливаем переключатель на «Получать IP адрес автоматически».

Настройка WiFi на роутере

Так как в прошивке OpenWRТ по умолчанию отключен WiFi, его нужно включить в настройках.

  1. Заходим в браузере по адресу https://192.168.1.1 и выполняем базовую настройку роутера (устанавливаем пароли и доступ к роутеру через SSH, включаем и настраиваем WiFi.)
  2. Подключаем роутер к интернету.
  3. Перезагружаем роутер.
  4. Подключаемся к роутеру через WiFi.

Я использовал еще один роутер, у которого было настроено подключение к интернету, поэтому мне достаточно было WAN порт роутера с кастомной прошивкой соединить при помощи кабеля с LAN портом роутера с интернетом. Вам же, если, вы хотите обойтись одним роутером, в зависимости от вида доступа в интернет вашего провайдера придётся больше покопаться в настройках роутера (например, если доступ предоставляется по технологии PPPoE).

Установка WireGuard клиента на роутер

Если вы через роутер с прошивкой от OpenWRT можете заходить в Internet, то можно приступать к установке WireGuard клиента. Во многих видео и статьях это делается из командной строки. На мой взгляд, это проще это сделать из графического интерфейса роутера.

  1. Обновляем список пакетов: System -> Software -> Update Lists…
  2. Заходим в раздел System -> Software и устанавливаем пакет luci-i18n-wireguard-en.
  3. Перегружаем роутер.

Роутер у нас предварительно настроен, теперь можно приступить к настройке VPN сервера WireGuard.

Выбор и создание VPS сервера

Для начала нужно выбрать провайдера VPS сервера. Есть несколько вариантов, у каждого есть свои достоинства и недостатки. Все зависит от ваших потребностей. Вам необходимо выбрать следующие параметры:

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

Выбор провайдера VPS сервера оставляют за вами, для проверки решения можно использовать, например, DigitalOcean.

Выбор операционной системы на VPS серверe

Обычно на VPS сервер при создании можно установить какую-либо операционную из списка. Все зависит от ваших предпочтений и знаний, но по опыту хочу сказать, что Ubuntu 20.04 будет самым оптимальным решением для начала.

Установка VPN сервера

Следующий шаг, это установка VPN сервера. Для установки сервера WireGuard существует множество статей и видео в Internet. Если вы хотите лучше понимать технологию или улучшить свои знания по Linux, можно настраивать по ним. Но к счастью, на данный момент существует решение, которое позволяет установить и настроить сервер без труда человеку, имеющему минимальные знания по Linux. Утилита располагается на GitHub по адресу: https://github.com/angristan/wireguard-install

Нужно зайти в консоль ОС, установленной на VPS и выполнить следующие команды:

# curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh # chmod +x wireguard-install.sh # ./wireguard-install.sh

Если вы боитесь выполнять этот скрипт вслепую, что логично, просмотрите его содержимое с помощью следующей команды перед установкой.

# cat wireguard-install.sh

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

После выполнения скрипт сообщит, где находится файл с настройками для клиента. Этот файл нам необходимо скачать к себе на компьютер при помощи команды scp, утилиты WinSCP, так как он понадобится нам для настройки WireGuard клиента. Но можно просто вывести его содержимое, используя команду cat в SSH консоли и копировать данные, которые нам понадобятся.

Настройка WireGuard клиента на роутере

1. Добавляем интерфейс WireGuard. Network -> Interfaces -> Add new interface…

Создание интерфейса WireGuard

2. Заполняем вкладку General Settings настройками из файла конфигурации WireGuard клиента (Private Key, Public Key, IP Addresses). Для получения Public Key в SSH консоли необходимо ввести:

# echo | wg pubkey

Содержимое файла конфигурации клиентаВкладка General Settings

3. Добавляем параметры WireGuard сервера (Description, Public Key, Preshared Key, Allowed IPs, Route Allowed IPs, End Point Host, End Point Port, Persistent Keep Alive). Большинство параметров располагается в файле /etc/wireguard/wg0.conf на сервере. Peers -> Add Peer

Содержимое файла конфигурации сервера WireGuardПараметры WireGuard сервера

4. Удостоверяемся, что VPN поднялся. Network -> Interfaces. Если он работает, то зачения RX и TX будут ненулевые.

Работающий WireGuard VPN

5. Настраиваем файервол для Fireguard. Network -> Firewall -> Add.

Параметры файервола для WireGuard

6. Добавляем маршрут в таблицу маршрутизации. В поле Target, вам необходимо ввести реальный IP адрес вашего сервера в нотации CIDR (/32) Network -> Routing -> Add.

7. Настраиваем DNS. Network -> Interfaces -> WAN -> Edit -> Advanced Settings.

Выводы

На мой взгляд, такой вариант организации VPN отличается простотой в использовании самого VPN. При использовании VPN достаточно просто подключить WAN порт роутера к порту, имеющему доступ в интернет. Настроенный таким образом роутер можно взять с собой в командировку и подключить к роутеру, который будет там, и получить точно такой же интернет за тысячи километров от дома. Решение немного напоминает рецепт борща, так как можно экспериментировать с различными VPS провайдерами, роутерами, прошивками, VPN протоколами, VPN серверами и их настройками, операционными системами. Я привел только тот вариант, который у меня получился и устроил. Например, я пробовал использовать OpenVPN, но хочу сразу сказать, меня не устроила скорость получаемого интернета, она была в 2-3 раза ниже, чем при использовании WireGuard.

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

Как сделать свой VPN дешево и быстро

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

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

  1. Создание собственного VPN
  2. Подключение к коммерческому VPN-сервису
  3. Подключение к бесплатным VPN-сервисам

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

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

Фото: Unsplash

Стоит ли упоминать про бесплатные VPN, с которыми дела обстоят еще хуже? Главное, что необходимо понимать о работе бесплатных VPN сервисов: если вы не платите за VPN, значит, за него платит кто-то еще. Естественно, взамен этот «кто-то» должен получать что-то ценное, например, ваши конфиденциальные данные.

С собственным VPN сервером вы забудете про любые ограничения. Вы сможете раздать интернет своим друзьям и вместе наслаждаться свободным интернетом, так как даже самый дешевый сервер за 3$ в месяц справится с такой нагрузкой, а ваше соединение всегда будет оставаться под надежной защитой.

Итак, думаю выбор очевиден. Нам нужен собственный VPN-сервер. Многие пользователи полагают, что создание собственного VPN — это непосильная задача, для реализации которой необходимы навыки программирования или, как минимум, базовые знания управления консолью Linux и многочасовые манипуляции с компьютером.

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

Вот несколько этапов, которые потребуются для создания собственного VPN-сервера:

  1. Выбор хостинг-провайдера.
  2. Аренда виртуального сервера.
  3. Удаленное подключение к серверу.
  4. Развертывание VPN сервера с помощью терминала командной строки.
  5. Подключение и настройка интернет-соединения.

Поиск и выбор хостинг-провайдера

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

Критерии при выборе очень просты:

  • Арендуемый сервер не должен находиться в России.
  • Услуги провайдера можно оплатить без «танцев с бубнами».

Но если найти провайдера с широкой географией расположения серверов сегодня не представляет особого труда, то со вторым пунктом действительно могут возникнуть проблемы — в связи с последними событиями на политической арене многие популярные зарубежные провайдеры просто позакрывали свои «двери» для клиентов из России. Остальные же теперь физически не могут принимать оплату по картам Visa и Mastercard, что делает ситуацию тупиковой.

Выход один — искать провайдера среди российских компаний с дата-центрами за границей. Среди них мы нашли несколько: RuVDS, PQHosting и FirstByte. У каждого из этих провайдеров имеются серверы в ряде европейских стран и большой выбор методов оплаты.

Мы остановили свой выбор на провайдере FirstByte, но вы можете выбрать любой из вышеперечисленных или какой-то свой. Все действия по развертыванию VPN у любого хостинг-провайдера будут аналогичными.

Арендуем сервер

После того, как мы определились с выбором провайдера, необходимо зарегистрироваться на сервисе. Здесь все просто, поэтому расписывать все шаги не имеет смысла. Главное, указать свой действующий адрес e-mail и телефон, так как они могут понадобиться для активации аккаунта.

После регистрации переходим к процедуре аренды виртуального сервера. Для этого идем в раздел «Товары/услуги»→ Виртуальные серверы и жмем «Заказать».

На странице заказа меняем локацию дата-центра с России на любую другую страну в списке. Расстояние может косвенно повлиять на будущую скорость интернет-соединения, поэтому лучше отдать свое предпочтение ближайшим к России европейским странам. И, само собой, ориентируемся на стоимость, которая прежде всего зависит от производительности сервера. Для наших задач подойдет машина с минимальными требованиями и каналом в 100 MB/s. Аренда такого сервера обойдется в 222 рубля в месяц.

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

В строке «Операционная система» выбираем последнюю версию Ubuntu и добавляем товар в корзину.

После этого оплачиваем услугу любым удобным способом и ждем пока сервер зарегистрируют. Эта процедура может занять от нескольких минут до 1 часа.

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

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

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

VPN-сервер на роутере. Автоподключение VPN в Windows с блокировкой доступа к интернету кроме VPN-соединения

Полный и подробный туториал как поднять VPN-сервер на роутере, реализовать автоподключение к нему в системе Windows и разрешить выход в интернет только через VPN.

Статья написана достаточно подробно, с расчетом даже на тех людей, кто впервые зашел в раздел Windows «Сетевые подключения».

Для чего это может пригодиться:

  • Вы фрилансер на сайтах вроде freelancer.com, upwork.com и т.д. И вы часто путешествуете. Есть большая вероятность, что вас забанят при заходе в аккаунт с другого IP. В этой статье описано одно из решений данной проблемы.
  • Иная необходимость удаленно использовать определенный IP.
  • Предоставление кому-либо в любой точке мира именно вашего IP.

1. Настройка VPN-сервера на роутере

Сразу хочу сказать, что не все роутеры поддерживают функцию VPN. Буду показывать на примере роутера Tenda. Для других процедура аналогична. Так же необходим статический (белый) IP. Обычно его можно приобрести у вашего провайдера за небольшую плату или вовсе бесплатно.

1. Подключаемся к роутеру. Вводим локальный IP роутера в адресную строку браузера. В моем случае это 192.168.0.1. Посмотреть его можно на наклейке на нижней части роутера, либо в интернете.

image

2. Вводим логин/пароль. Обычно логин и пароль одинаковы: admin. Если нет, смотрите в инструкции к своему роутеру или в интернете.

3. Переходим во вкладку «VPN/PPTP сервер». На других роутерах это может быть сразу вкладка «VPN-сервер». Если ничего подобного нет, скорее всего, ваш роутер не поддерживает VPN.

image

4. Включаем сервер PPTP, включаем шифрование. Добавляем Имя пользователя (Логин) и Пароль для подключение к этому серверу. Сохраняем.

Настройка сервера VPN на роутере закончена. Переходим к настройкам Windows.

2. Подключение к VPN через Windows

Настройка будет проводиться на примере чистой Windows 7. На более старших версиях процедура отличается не сильно.

1. Переходим в «Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом». Нажимаем «Настройка нового подключения или сети».

2. Выбираем поочередно «Подключение к рабочему месту/Нет, создать новое сетевое подключение/Использовать мое подключение к интернету (VPN)».

3. В следующем окне в поле «Интернет-адрес» вводим IP нашего VPN-сервера. В поле «Имя местоназначения» указываем любое название на английском без пробелов (например vpn-lab).

Чтобы узнать внешний IP ранее настроенного роутера, нужно зайти с любого устройства, подключенного к роутеру-VPN-серверу, на сайт 2ip.ru. Вписываем указанный там IP в поле.

4. Вводим Логин и Пароль для подключения к сети VPN, которые добавлялись ранее. Нажимаем «Подключиться».

5. Если все сделано правильно, в списке подключений отобразится созданное VPN-подключение. Открываем свойства этого подключения.

6. Настраиваем пункты во вкладках как показано на рисунках ниже. Нажимаем ОК.

7. Проверяем работоспособность. Теперь при проверке внешнего IP (например, через сайт 2ip.ru) должен отображаться IP-адрес роутера-сервера, а не ваш.

3. Автоподключение к VPN при включении ПК

1. Запускаем «Планировщик заданий».

2. Выбираем «Создать простую задачу».

3. В поле «Имя» вводим любое имя (Например AutoVPNConncet).

4. В поле «Триггер» выбираем «При входе в Windows».

5. Действие — «Запустить программу».

6. Далее в поле «Программа или сценарий» вводим «C:\Windows\system32\rasdial.exe». В поле «Добавить аргументы» вводим » » без кавычек. В моем случае это было «vpn-lab TestUser TestPassword».

7. Ставим галочку на «Открыть окно „Свойства“ после нажатия кнопки „Готово“». Нажимаем «Готово».

8. В открывшемся окне ставим галочку на «Выполнить с наивысшими правами». Нажать ОК.

9. Готово. Осталось проверить. Перезагрузите компьютер. После этого проверьте свой IP в сети (например на 2ip.ru). Он должен совпадать с VPN-адресом.

4. Блокировка доступа к интернету кроме VPN-соединения (блокировка интернета без VPN)

1. Переходим в «Панель управления\Сеть и Интернет\Центр управления сетями и общим доступом».

2. VPN-подключение определяем как «Домашняя сеть», сетевое подключение как «Общественная сеть».

3. Открываем «Брандмауэр Windows в режиме повышенной безопасности» и нажимаем на «Свойства брандмауэра Windows».

4. Во вкладке «Общий профиль» блокируем Входящие и Исходящие соединения. В «Защищенные сетевые подключения» выбрать все.

5. Переходим во вкладку «Правила для входящих соединений». Нажимаем «Создать правило».

6. Далее выбираем:

  • Тип правила: «Настраиваемые»
  • Программа: «Все программы»
  • Протокол и порты: «Тип протокола: Любой»
  • Область: «Локальные IP: Любой; Удаленные IP: Указанный IP» и здесь добавляем IP вашего VPN (как на скрине ниже).
  • Действие: «Разрешить подключение»
  • Профиль: ТОЛЬКО «Публичный»
  • Имя: (любое) «VPN1»

7. Переходим во вкладку «Правила для исходящих соединений». Нажимаем «Создать правило» и делаем все как в предыдущем пункте.

8. Проверяем работоспособность. Теперь при отключенном VPN должен отсутствовать доступ в интернет.

Буду благодарен всем за конструктивные замечания и предложения.

  • vpn-сервер
  • Windows
  • доступ к интернету только VPN
  • автоподключение VPN в Windows
  • vpn на роутере

Как организовать VPN канал между офисами с помощью OpenVPN

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-01

Настройка серверов windows и linux

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

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

Запускаем установку OpenVPN, на 3-м шаге ставим птички OpenSSL Utilites и OpenVPN RSA Certificate Management Scripts.

Установка OpenVPN 2.3.8

Установка OpenVPN 2.3.8

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

Выбор места установки OpenVPN

Выбор места установки

Во время установки в ОС будет добавлен 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

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-05

Переименуем его в «VPN»

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-06

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-06

В директории «C:\OpenVPN» следует сразу же создать дополнительно папку ssl (здесь мы будем хранить ключи аутентификации) папку ccd (здесь будут находится конфигурация настроек сервера для клиента).

В папке easy-rsa создаем файл vars.bat, данный пакетный файл будет задавать переменные для сеанса генерации сертификатов, в той части что касается организации и расположения заполняем своими данными.

set HOME=C:\OpenVPN\easy-rsa set KEY_CONFIG=openssl-1.0.0.cnf set KEY_DIR=C:\OpenVPN\ssl set KEY_SIZE=1024 set KEY_COUNTRY=RU set KEY_PROVINCE=Stavropol set KEY_CITY= Stavropol set KEY_ORG=ServerVPN set KEY_EMAIL=admin@localhost set KEY_CN=test set KEY_NAME=test set KEY_OU=test set PKCS11_MODULE_PATH=test set PKCS11_PIN=1234

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-07

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-07

Переходим по пути C:\OpenVPN\easy-rsa, набрав для перехода в командной строке команду

 
cd C:\OpenVPN\easy-rsa

Запускаем vars.bat:

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-08

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-08

Далее запускаем clean-all.bat:

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-09

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-09

Теперь запускаем build-ca.bat. Так как вся информация о сервере у нас уже заполнена, все оставляем без изменений:

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-10

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-10

после этого у нас в папке ssl появится два файла ca.crt и ca.key.

Запускаем build-dh.bat:

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-11

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-11

в результате у нас в папке ssl появится файл dh1024.pem.

Создаем серверный ключ, для этого вводим команду:

build-key-server.bat ServerVPN

где «ServerVPN» это название нашего VPN сервера, как в моем случае,

Указываем параметр «commonname» — пишем имя нашего VPN сервера. Все остальные параметры оставляем по умолчанию, на все вопросы отвечаем yes

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-12

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-12

в результате у нас в папке ssl появятся файлы ServerVPN.crt, ServerVPN.csr, ServerVPN.key.

Приступаем к формированию клиентских ключей.

build-key.bat UserVPN_1

где «UserVPN_1» имя нашего клиента.

Важно! Указываем параметр «commonname» — пишем имя нашего VPN клиента(UserVPN_1). Все остальные параметры оставляем по умолчанию, на все вопросы отвечаем yes

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-13

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-13

В результате у нас в папке ssl появятся файлы UserVPN_1.crt, UserVPN_1.csr, UserVPN_1.key.

Если у вас несколько клиентов, то повторяем формирование ключей; не забывая каждому клиенту присваивать свои имена

build-key.bat UserVPN_2 build-key.bat UserVPN_3 

Генерация ключа tls-auth (ta.key) для аутентификации пакетов, для этого переходим в корневую папку OpenVPN:

cd ..

и выполняем команду:

 openvpn --genkey --secret ssl/ta.key 

в результате в папке ssl плучим файл ta.key.

Приступаем к созданию конфига сервера. В папке config создаем файл OpenVPN.ovpn:

#Порт для работы OpenVPN port 1190 #Указываем по какому протоколу работает OpenVPN proto udp #Тип интерфейса dev tun #Имя интерфейса dev-node "VPN" #Сертификат для шифрования подключения dh C:\\OpenVPN\\ssl\\dh1024.pem #Сертификат центра сертификации ca C:\\OpenVPN\\ssl\\ca.crt #Сертификат сервера cert C:\\OpenVPN\\ssl\\ServerVPN.crt #ключ сервера key C:\\OpenVPN\\ssl\\ServerVPN.key # Защита от DOS атак (для сервера, после пути к ключу, ставим 0 а для клиента 1) tls-server tls-auth C:\\OpenVPN\\keys\\ta.key 0 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 #Диапазон IP адресов для VPN сети server 10.10.10.0 255.255.255.0 # Выбор криптографического шифра cipher AES-256-CBC #Логи status C:\\OpenVPN\\log\\openvpn-status.log log C:\\OpenVPN\\log\\openvpn.log #Каталог, в которой лежит файл с названием нашего клиента, в моем случае UserVPN_1 без расширения, и в нем записать команды, которые будут выполнятся на клиенте: client-config-dir "C:\\OpenVPN\\ccd" #Уровень отладочной информации verb 3 #Количество повторяющихся сообщений mute 20 # Максимальное количество одновременно подключенных клиенты мы хотим разрешить max-clients 2 #Время жизни неактивной сессии keepalive 10 120 #Разрешаем клиентам видеть друг друга client-to-client #Включаем сжатие comp-lzo persist-key persist-tun #Маршруты добавляются через .exe если без него, то не у всех прописываются маршруты route-method exe #Задержка перед добавлением маршрута route-delay 5 #Команда которая сообщает клиентам что за сервером локальная сеть с адресами 192.168.0.0 255.255.255.0 push "route 192.168.0.0 255.255.255.0" #Прописывает маршрут на сервере чтобы видеть сеть за клиентом route 172.17.10.0 255.255.255.0 10.10.10.2 #Шлюз route-gateway 10.10.10.1 # каждому клиенту выдается по 1 адресу, без виртуальных портов маршрутизатора topology subnet 

В папке ccd создаем файл без расширения и называем его точно, как клиента UserVPN_1, открываем его блокнотом и пишем следующее:

#Присваиваем клиенту постоянный IP 10.10.10.2 ifconfig-push 10.10.10.2 255.255.255.0 #сообщаем серверу что за клиентом сеть 172.17.10.0 iroute 172.17.10.0 255.255.255.0 #если раскоментировать следующую строку, то клиент будет отключен (на случай если нужно этого клиента отключить от сервера, а остальные будут работать) # disable

Создаем конфиг клиента.

#Говорим, чтобы клиент забирал информацию о маршрутизации с сервера (push опции) client #Порт для работы OpenVPN port 1190 #Указываем по какому протоколу работает OpenVPN proto udp #Тип интерфейса dev tun #Имя интерфейса dev-node "VPN" # Адрес сервера, к которому подключаемся remote 444.333.222.111 1190 #защита remote-cert-tls server #Сертификат для шифрования подключения dh C:\\OpenVPN\\ssl\\dh1024.pem #Сертификат центра сертификации ca C:\\OpenVPN\\ssl\\ca.crt #Сертификат сервера cert C:\\OpenVPN\\ssl\\ UserVPN_1.crt #ключ key C:\\OpenVPN\\ssl\\ UserVPN_1.key # Защита от DOS атак tls-auth C:\\OpenVPN\\keys\\ta.key 1 tun-mtu 1500 tun-mtu-extra 32 mssfix 1450 ping-restart 60 ping 10 #Включаем сжатие comp-lzo persist-key persist-tun # Выбор криптографического шифра cIPher AES-256-CBC #Логи status C:\\OpenVPN\\log\\openvpn-status.log log C:\\OpenVPN\\log\\openvpn.log #Уровень отладочной информации verb 3 #Количество повторяющихся сообщений mute 20

Устанавливаем на клиенте OpenVPN, предаём ему ca.crt, UserVPN_1.crt, UserVPN_1.key, ta.key.

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

После всего этого запускаем наш сервер и клиент.

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-14

Как организовать канал между офисами при помощи 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

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-15

Hужно зайти в свойства службы, настроить ее на автоматическое включение и запустить.

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-16

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-16

После этого мы сможем пинговать внутренние IP сервера и клиента (172.17.10.10 клиент и 192.168.2.100 сервер).

Но у этого способа есть маленький недостаток: после включения этой службы и подключения к нашему VPN-каналу на значке сетевого подключения повиснет красный крест до отключения VPN.

При этом все сети работают в штатном режиме. Лично меня этот крест раздражает и иногда сбивает с толку.

Есть второй способ как сделать видимыми внутренние IP сетей наших сервера и клиента.

Для этого заходим в реестр, открываем ветку реестра:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\TcpIP\Parameters

Находим параметр и меняем значение: IPEnableRouter типа REG_DWORD значение 1.

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-18

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-18

Не забываем перезагрузить машину, чтобы настройки вступили в силу!

Это нужно проделать и на сервере, и на клиенте.

Итак мы пингуем наши сети по внутренним IP, а так как у нас и сервер и клиент для своих сетей являются шлюзами, то и машины из сети 1 могут видеть машины из сети 2 и наоборот. то есть Пользователь N_B1 (192.168.2.100) может видеть расшаренные папки Пользователя N_B2 (172.17.10.50) и наоборот.

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

Пример для N_B1:

 route -p 172.17.10.0 255.255.255.0 192.168.2.100 (машина где установлен OpenVPN) 

Пример для N_B2:

 route -p 192.168.0.0 255.255.255.0 172.17.10.10 (машина где установлен OpenVPN) 

в моем случае этого не понадобилось.

Для автоматического запуска сервера и клиента нам нужно включить службу OpenVPN Service

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-19

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-19

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

Дополнительная защита

Как известно в OpenVPN есть возможность аутентификации по сертификатам, как описано выше, а так же по логину и паролю, но можно еще и объединить их вместе. Насколько мне известно только в Linux есть возможность штатными средствами настроить аутентификацию по логину и паролю, но в Windows это тоже можно решить. Для этого в папке config создаем файл auth.vbs и пишем в него следующее

'VBscript auth.vbs для аутентификации в OpenVPN - auth-user-pass-verify auth.vbs via-file '(c) 2007 vinni http://forum.ixbt.com/users.cgi?id=info:vinni 'Support: http://forum.ixbt.com/topic.cgi?id=14:49976 ' в скрипте производится сравнение имени пользователя без учёта регистра. ' Если нужно иначе - уберите UCase(. ) в 2 или 4 местах On Error Resume Next ' открываем файл, имя которого передано OpenVPN-ом в скрипт через параметр Set fso = CreateObject("scripting.filesystemobject") Set CurrentUserPasswordFile = fso.OpenTextFile(WScript.Arguments(0),1) '1 = for reading if Err.Number<>0 Then WScript.Quit(1) ' читаем из этого файла 2 строки - имя и пароль, которые ввёл пользователь "на том конце" if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1) UserName=CurrentUserPasswordFile.ReadLine if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1) Password=CurrentUserPasswordFile.ReadLine CurrentUserPasswordFile.Close ' открываем переменную окружения common_name (это CN предъявленного клиентом сертификата) ' и сравниваем её с введенным именем пользователя. ' если это сравнение не нужно, то следующие 2 строки удалить или закомменировать CurrentCommonName = CreateObject("Wscript.Shell").ExpandEnvironmentStrings("%common_name%") if UCase(CurrentCommonName) <> UCase(UserName) then WScript.Quit(1) ' открываем наш файл с базой логинов и паролей ' по умолчанию это Users.pw в текущем каталоге Set UserPasswordFileBase = fso.OpenTextFile("Users.pw",1) '1 = for reading if Err.Number<>0 Then WScript.Quit(1) ' читаем в цикле пары строк, пропуская пустые МЕЖДУ ЭТИМИ ПАРАМИ, ' и сравниваем их с тем, что ввёл пользователь. Do while not(UserPasswordFileBase.AtEndOfStream) NextUserName=UserPasswordFileBase.ReadLine if Err.Number<>0 Then WScript.Quit(1) if NextUserName<>"" then ' если имя пользователя надо сравнивать с учётом регистра, то удалите здесь UCase(. ) if UCase(UserName)=UCase(NextUserName) then if Password=UserPasswordFileBase.ReadLine then ' если имя и пароль совпали с парой из базы, то завершаем скрипт с результатом 0 ' так нужно для OpenVPN'a, это признак успешной аутентификации UserPasswordFileBase.Close WScript.Quit(0) end if else UserPasswordFileBase.ReadLine end if end if Loop ' если поиск завершился безуспешно, то завершаем скрипт с результатом 1 ' так нужно для OpenVPN'a, это признак НЕ успешной аутентификации UserPasswordFileBase.Close WScript.Quit(1)

Так же в папке config содаем файл Users.pw туда пишете логин и пароль нашего клиента

UserVPN_1 123456

Если несколько клиентов то:

UserVPN_1 123456 UserVPN_2 365214 UserVPN_3 14578

Дальше нужно в конфиге клиента прописать строку auth-user-pass, теперь когда клиент будет подключаться к серверу у него будет выплывать окно авторизации где нужно ввести логин и пароль, который вы назначили ему в Users.pw,их нужно будет сообщить клиенту.

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-20

Как организовать канал между офисами при помощи OpenVPN с дополнительной парольной защитой-20

У меня настроено что имя пользователь(логин) соответствует имени клиента в сертификате, то естьUserVPN_1. но можно задать и другое имя отличное от имени в сертификате, для этого нужно смотреть настройки в auth.vbs.

' открываем переменную окружения common_name (это CN предъявленного клиентом сертификата) ' и сравниваем её с введенным именем пользователя. ' если это сравнение не нужно, то следующие 2 строки удалить или закомменировать CurrentCommonName = CreateObject("WscrIPt.Shell").ExpandEnvironmentStrings("%common_name%") if UCase(CurrentCommonName) <> UCase(UserName) then WScrIPt.Quit(1) WScrIPt.Echo "Debug: CurrentCommonName hljs ">UserVPN_1 123456

а в конфиге клиента меняем строку auth-user-pass на auth-user-pass C:\\OpenVPN\\ssl\\pass.txt.

Теперь я включаю машину где установлен OpenVPN -Server, запускается служба и сервер VPN автоматически поднимается. Клиент запускает машину и у него также проходит автоматическое подключение к моему серверу. Теперь можно заходить в общие папки или по RDP работать, например, в 1С, установленной в другой организации.

Популярные Похожие записи:
  • Что такое виртуальный сетевой адаптер и в каких случаях он может пригодиться?Что такое виртуальный сетевой адаптер и в каких случаях он может пригодиться?
  • Настройка сети в CentOS 8, за минуту
  • Как включить VMotion в Vmware Sphere и мигрировать vmКак включить VMotion в Vmware Sphere и мигрировать vm
  • Установка netcat в Windows и LinuxУстановка netcat в Windows и Linux
  • Не работает Nic Teaming на картах Broadcom NetXtreme E-SeriesНе работает Nic Teaming на картах Broadcom NetXtreme E-Series
  • Сброс Digi AnywhereUSB на заводские настройкиСброс Digi AnywhereUSB на заводские настройки

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

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