Сеть через интернет имея сервер

Связываем две локальные сети с помощью 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 `.

    Источник

    Как подключиться к серверу удаленно

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

    Получение доступа к серверу через интернет

    При создании виртуального сервера на ресурсе «VPS.house», формируется готовая к использованию ОС Windows Server. Она позволяет подключаться по протоколу RDP с внешних устройств.

    Что это такое, общая информация

    Под «Remote Desktop Protocol» подразумевается специальный протокол удаленного рабочего стола. Поддержкой и развитием функционала занимается компания Microsoft.

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

    Важно! После удачного присоединения можно пользоваться любой программой для дистанционного управления: TeamViewer, RAdmin и пр.

    Какая информация потребуется для получения доступа

    Как подключиться к серверу и что для этого необходимо:

    • для получения доступа — пароль, имя пользователя и IP-адрес;
    • стандартное приложение на ноутбуке при использовании Виндовс, клиент Remmina для Линукса или программа для Андроида.

    Важно! Информация берется у поставщика услуг — при заказе выделенного Виндовс-сервера в Renter на электронную почту придет письмо с доступом.

    Как подключиться через RDP к серверу

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

    С компьютера под управлением Windows

    Для присоединения выполняется следующий алгоритм:

    1. Из меню «пуск» нужно переместиться в «программы».
    2. Перейти в «стандартные» и «присоединение к удаленному рабочему столу».

    Второй способ: после нажатия комбинации кнопок «Win» + «R» в диалоговое окно вписывается команда «mstsc».

    В возникшую на дисплее графу прописывается IP-адрес созданного VDS-сервера. Затем нужно кликнуть по клавише «подключить» и в поле авторизации ввести сгенерированный системой пароль пользователя. Он отображается в личном кабинете, как и IP-адрес.

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

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

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

    Важно! В этом случае пользователь должен отметить блок «больше не выводить запрос о подключениях к этому ПК». Действие подтверждается клавишей «да».

    С компьютера под управлением Linux

    Пользователи Ubuntu могут применять специальный пакет приложений, в составе которого находится Remmina, RDP. Установка программ требует введения трех команд поочередно через «терминал»:

    • «sudo apt-add-repository ppa:remmina-ppa-team/remmina-next» — вносится для утилиты Remmina;
    • «sudo apt-get update» — используется для обновлений;
    • «sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard» — помогает инсталлировать плагин для протокола RDP.

    Если пользователь ранее устанавливал или активизировал версию указанного приложения, то оно требует дополнительного перезапуска. Процесс выполняется при помощи перезагрузки системы или введением команды «sudo killall remmina» в терминале.

    Если раньше программа не запускалась, то на дисплее появится сообщение об ошибке и ненайденном процессе. Проблема исправляется по алгоритму:

    1. После входа в меню нужно отыскать недавно установленный пакет с программой.
    2. Кликнуть по ярлыку «добавление нового соединения» и заполнить предоставленное поле информацией для авторизации и присоединения (стандартные сведения).
    3. Процесс завершается подтверждением действий. Сервер станет доступным и будет расположен в реестре подключений для быстрого входа. Чтоб войти в систему, достаточно по нему кликнуть два раза мышкой.

    Важно! Если на экране появилось предупреждение о непроверенном сертификате безопасности, достаточно нажать на кнопку «ок». После выполнения на дисплее появится рабочий стол сервера.

    Через смартфон под Андроид

    Для выполнения задачи пользователь должен:

    1. Закачать из магазина приложений Google Play и провести установку утилиты «Microsoft Remote Desktop» — официального клиента.
    2. Включить программу и кликнуть по ярлыку нового подключения.
    3. В возникшее на экране окно ввести информацию для авторизации и IP-адрес нового VDS-сервера.

    Если удалось все сделать без ошибок, то произойдет успешное присоединение. Как и во всех остальных системах, на дисплее может возникать предупреждение о непроверенном сертификате безопасности. Проблема решается активизацией блока «Don’t ask me again for connections to this computer» и последующим кликом по надписи «Connect».

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

    Автор Сергей Эльбакидзе

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

    Источник

    Читайте также:  Каким бывает домашний интернет
Оцените статью
Adblock
detector