Связать две сети интернет

Объединение двух офисов через VPN. Часть 1 – обходимся средствами Windows

Хотя тема и избита, но тем не менее, часто многие испытывают затруднения – будь то начинающий системный администратор или же просто продвинутый пользователь, которого начальство заставило выполнять функции эникейщика. Парадоксально, но несмотря на обилие информации по VPN, найти внятный вариант — целая проблема. Более того, даже складывается впечатление, что один написал – другие же нагло скопировали текст. В итоге, поисковая выдача буквально захламлена обилием ненужной информации, из которой стоящее редко можно вычленить. Поэтому я решил в своей манере разжевать все нюансы (может, кому и пригодится).

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

vpn между офисами

VPN позволяет легко объединить удаленный хост с локальной сеткой фирмы или другого хоста, а также объединить сети в одну. Выгода вполне очевидна – мы легко с клиента VPN получаем доступ к сети предприятия. Кроме того, VPN еще и защищает ваши данные посредством шифрования.

Я не претендую на то, чтобы вам описать все принципы работы VPN, так как есть масса специальной литературы, да и если честно, я и сам много чего не знаю. Тем не менее, если у вас стоит задача «Сделай!», нужно срочно вливаться в тему.

Давайте рассмотрим задачу из моей личной практики, когда нужно было объединить по VPN два офиса –головной и филиал. Ситуацию еще и осложнял тот факт, что в головном офисе стоял видео-сервер, который должен принимать видео с IP камеры филиала. Вот вам вкратце задача.

Способов решения много. Все зависит от того, что у вас есть под рукой. Вообще, VPN легко построить с помощью железного решения на базе различных роутеров Zyxel. В идеале, может случиться и то, что интернет обоим офисам раздает один провайдер и тогда у вас вообще проблем не возникнет (достаточно просто обратиться к прову). Если фирма богата, то может себе позволить и CISCO. Но обычно все решается программными средствами.

А тут выбор велик – Open VPN, WinRoute (учтите, что он платный), средства операционной системы, программы типа Hamanchi (честно говоря, в редких случаях она может и выручит, но полагаться на нее не рекомендую – бесплатная версия имеет ограничение в 5 хостов и еще один существенный минус заключается в том, что все ваше соединение зависит хоста Hamanchi, что не всегда гуд). В моем случае идеально было бы воспользоваться OpenVPN – бесплатной программой, способной незатейливо создать надежное VPN-соединение. Но мы, как всегда, пойдем по пути наименьшего сопротивления.

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

Читайте также:  Можно ли подключить домашний интернет через домашний телефон ростелеком

В Windows семейства NT уже вшиты зачаточные возможности серверов. Поднять VPN-сервер на одной из машин не составит труда. В качестве сервера я буду приводить примеры скриншотов Windows 7, но общие принципы будут теми же самыми, что и для старушки XP.

Учтите, что для соединения двух сетей, нужно чтобы они имели разный диапазон! Например, в головном офисе диапазон может быть 192.168.0.x, а в филиале – 192.168.20.x (или любой диапазон серых ip). Это очень важно, так что будьте внимательны. Теперь, можно приступать к настройке.

Зайдите на сервере VPN в Панель управления -> Центр управления сетями и общим доступом ->изменение параметров адаптера.

Теперь нажмите клавишу Alt, вызвав меню. Там в пункте Файл нужно выбрать «Новое входящее подключение».

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

После того, как вы это сделали, нужно в следующем окне выбрать как будут подключаться пользователи. Ставьте галку «Через интернет». Теперь вам остается назначить диапазон адресов виртуальной сети. Причем, можно выбрать сколько всего компьютеров может участвовать в обмене данных. В следующем окне выберите протокол TCP/IP версии 4 нажмите «Свойства»:

У вас появится то, что у меня на скриншоте. Если вы хотите, чтобы клиент получил доступ к локальной сети, в которой находится сервер, просто ставьте галку «Разрешить звонящим доступ к локальной сети». В пункте «Назначение IP адресов» я рекомендую указать адреса вручную по принципу, который я выше описал. В моем примере я дал диапазону всего двадцать пять адресов, хотя мог указать просто и два и 255.

После этого жмем на кнопку «Разрешить доступ».

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

Теперь остается дело за малым – настроить VPN-клиента. На клиентской машине также идете в Центр управления сетями и общим доступом и выбираете Настройка нового подключения или сети. Теперь вам нужно будет выбрать пункт «Подключение к рабочему месту»

Жмете на «Использовать мое подключение к Интернету и теперь вас выбросит в окно, где нужно будет ввести адрес нашего интернет-шлюза в филиале. У меня он имеет вид 95.2.x.x

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

Как вариант, при подключении может выскочить ошибка 800, сигнализируящая о том, что с подключением что-то не то. Это проблема брэндмауэра либо клиента, либо сервера. Конкретно я сказать вам не могу – все определяется экспериментально.

Читайте также:  Настройка роутера домашний интернет мегафон

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

В частности, в части 2 мы с вами рассмотрим настройку OPenVPN под Windows и Linux.

Источник

Связываем две локальные сети с помощью Wireguard VPN на выделенном сервере

Эта статья — продолжение Настройка маршрутизации в сети с неподконтрольным роутером. Итак имеем домашнюю локальную сеть, роутер от провайдера без возможности прошивки и почти без возможности настройки. Ставим в локальной сети сервер. Настраиваем на сервере Wireguard VPN и связываем две локальные сети. Другая локальная сеть — маршрутизатор Xiaomi Mi Router 3G с прошивкой Padavan и установленным Entware.

В принципе инструкций по настройке Wireguard — масса. Но меня долго смущал дополнительный частный диапазон адресов для wireguard. Лично я долго не мог понять, да и сейчас не понимаю, зачем нужно каждому wg устройству назначать адрес из частного диапазона. Могу понять зачем это нужно для одного клиента — ему же нужен какой-то адрес. Но зачем это нужно для связывания двух разных сети — непонятно. У специалистов настройка wireguard вообще не вызывает никаких проблем, но я не они. Кстати мне больше всего понравилась инструкция на сайте keenetic — по ней я все и делал. Возможно данная статья кому-то поможет.

  • Локальная сеть — 192.168.2.0/24
  • Роутер — 192.168.2.1
  • Сервер в локальной сети — 192.168.2.4, ethernet интерфейс — enp1s0
  • Другая локальная сеть (за xiaomi mi router) — 192.168.3.0/24
  • wireguard device network (частный диапазон IP адресов из которого назначаются адреса wireguard интерфейсам) — 10.253.1.0/24
    • сервер wireguard address — 10.253.1.2
    • android клиент — 10.253.1.10
    • xiaomi mi router wireguard address — 10.253.1.3

    Dnsmasq

    Чтобы все работало в локальной сети необходимо добавить два новых маршрута, которые мы анонсируем через DHCP, чтобы трафик в другую локальную сеть и wireguard device network шел через наш сервер: /etc/dnsmasq.d/dhcp.conf

    На клиенте, который использует DHCP для получения IP адреса и конфигурации это должно выглядеть так:

    # ip route
    default via 192.168.2.1 dev enp3s0 proto dhcp metric 100
    10.252.0.0/14 via 192.168.2.4 dev enp3s0 proto dhcp metric 100
    192.168.2.0/24 dev enp3s0 proto kernel scope link src 192.168.2.30 metric 100
    192.168.3.0/24 via 192.168.2.4 dev enp3s0 proto dhcp metric 100

    Для Windows клиента таблицу маршрутизации можно посмотреть командой route print.

    Видим, что трафик для соседней LAN (192.168.3.0/24) и wg private interace (10.252.0.0/14) маршрутизируется через наш сервер (192.168.2.4). Строго говоря wg private interace у меня 10.253.1.0/24, но подсеть 10.254.0.0/16 используется для других нужд и тоже маршрутизируется через сервер, поэтому я написал одно более общее правило вместо двух.

    Wireguard сервер

    Ставим на сервер пакет wireguard: sudo apt install wireguard .

    Генерируем пару ключей (открытый + закрытый) для сервера:

    cd /etc/wireguard
    wg genkey > private-key
    wg pubkey > public-key < private-key

    Запускаем wireguard sudo systemctl start wg-quick@wg0.service .

    Включаем автозапуск для wireguard sudo systemctl enable wg-quick@wg0.service .

    В ubuntu все работает — создается интерфейс wg0, создаются маршруты.

    Проверить статус можно командой ` wg showconf wg0 `, ` wg show `, маршруты командой ` ip route `.

    В настройках роутера пробрасываем wireguard порт до нашего сервера.

    Android client

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

    Padavan + Entware

    Для работы Entware на прошивке Padavan нужна USB флешка. Как ставить entware написано в padavan wiki.

    Ставим пакет wireguard-go: ` opkg install wireguard-go `. Теоретически можно использовать утилиту ` wg-quick ` для настройки интерфейса и маршрутизатора, но у меня оно почему-то правильно не заработало. В принципе wg-quick — это простой bash скрипт, можно было и разобраться что именно не работает, но разбираться я не стал.

    Итак настраиваем wireguard вручную как написано на официальном сайте. Создаем файл конфигурации /opt/etc/wireguard/wg0.conf. Я закоментировал строчку «Address=. » конфигурации wg0.conf из секции [Interfaces]. Это потому что по какой-то причине ` wg setconf ` ее не принял, ну и ладно, настроим адрес вручную (командой ip address add dev wg0 10.253.1.3/24 ).

    wireguard-go wg0
    ip address add dev wg0 10.253.1.3/24
    wg setconf wg0 /opt/etc/wireguard/wg0.conf
    ip link set up dev wg0
    ip route add 192.168.2.0/24 dev wg0 src 192.168.3.1
    iptables -t filter -A INPUT -i wg0 -j ACCEPT
    iptables -t filter -A FORWARD -i wg0 -j ACCEPT

    Маршрут ` ip route add 10.253.1.0/24 dev wg0 src 10.253.1.3 ` добавился сам, поэтому ручками добавляем только маршрут для 192.168.2.0/24 .

    Переопределяем iptables policy по умолчанию для цепочек INPUT, FORWARD таблицы filter — у меня значения по-умолчанию были DROP, с ними маршрутизация из локальной сети 192.168.2.0/24 в 192.168.3.0/24 (в мою локальную сеть) не работала.

    Все эти команды для запуска и остановки wireguard сохраняем в /opt/etc/init.d/S50wireguard — теперь должно автоматически запускаться при старте маршрутизатора.

    Настройка iptables

    После некоторых обновлений конфигурации маршрутизатора (например обновление правил белых/черных списков по mac адресу — web интерфейс маршрутизатора -> Advanced settings -> Firewall -> MAC Filter) маршрутизатор с прошивкой padavan сбрасывает правила iptables. Чтобы все продолжало работать в прошивке есть файлик `/opt/etc/init.d/S10iptables` (softlinkg) -> `/opt/bin/update_iptables.sh`, который запускается после обновления конфигурации. В него заносим все правила iptables — у меня там правила для wireguard и правила, которые я настроил для прозрачного использования tor в локальной сети, который настроил по этой инструкции.

    Доступ к роутеру из VPN

    Поскольку на неподконтрольном роутере нашей основной сети таблицу маршрутизации мы настроить не можем, то не можем и получить к нему доступ из VPN напрямую. Чтобы получить web доступ к роутеру можно добавить nginx reverse proxy configuration. Можно поставить на любой хост из основной локальной сети — но логично поставить на сервер. Например на порту 8081. Ссылку на файл конфигурации надо добавить в директорию /etc/nginx/sites-enabled — обычно сам файл настроек помещают в /etc/nginx/sites-available/ а в sites-enabled создают символическую ссылку` ln -s /etc/nginx/sites-available/local ./ `.

    Перезагружаем конфигурацию nginx на сервере: ` sudo systemctl reload nginx `.

    Источник

Оцените статью
Adblock
detector