VPS как сетевое хранилище через Wireguard

Вопрос или проблема

Я хотел бы использовать VPS, предоставляемый облаком, в качестве NAS для создания резервных копий данных. Таким образом, мне нужно интегрировать его в мою локальную сеть. VPS, выступающий в роли узла сервера Wireguard, имеет интерфейс wg0 с внутренним адресом 192.0.0.1. Единственный клиентский узел имеет интерфейс Wireguard wg1 с внутренним адресом 192.0.0.2. В то же время у него есть локальный сетевой адрес 192.168.1.11. У него также включена пересылка IP и установлены правила iptables как -A FORWARD -i wg1 -j ACCEPT; iptables -t nat -A POSTROUTING -o enxb82 -j MASQUERADE.

Соединение Wireguard устанавливается и работает как ожидается. Также ожидается, что я смогу смонтировать NFS-общую папку, созданную на VPS, на машинах в сети 192.168.1.0/24, но это не работает, и пинг VPS из этой сети также не работает.

В целях тестирования на машине 192.168.1.50 установлен статический маршрут 192.0.0.1 via 192.168.1.11 dev eth0. Пинг с этой машины не получает ответов. В то же время tcpdump на интерфейсе клиентского узла wg1 дает следующий вывод:

19:31:00.785941 IP 192.168.1.50 > 192.0.0.1: ICMP echo request, id 70, seq 3, length 64

Общественный интернет-интерфейс сервера получает эти IMCP-запросы как UDP-датаграммы, но они не доходят до интерфейса wg0. Если я добавляю свои адреса в LAN в раздел AllowedIPs для wg0, пинг работает, но я не хочу, чтобы моя LAN была известна VPS, только наоборот. Я предполагаю, что проблема в маскарадинге, когда узел не заменяет LAN-запросы на соответствующий запрос в Wireguard, но не могу найти ни одного подобного примера в Интернете, чтобы это исправить.

Ответ или решение

Виртуальные частные серверы (VPS) становятся всё более популярными для создания сетевого хранилища данных (NAS). Использование WireGuard для этого сценария позволяет обеспечить безопасное соединение между локальной сетью и VPS. В этой статье мы рассмотрим, как настроить VPS в качестве сетевого хранилища с использованием WireGuard и преодолеть возникшие трудности.

Фоновые сведения

Ваша текущая конфигурация включает VPS с интерфейсом WireGuard wg0, которому назначен внутренний IP-адрес 192.0.0.1. Клиент WireGuard имеет интерфейс wg1 с внутренним IP-адресом 192.0.0.2, а его локальная сеть настроена на 192.168.1.0/24. Настроены правила iptables для пересылки пакетов из интерфейса wg1 в локальную сеть через интерфейс enxb82 (предположительно, внешний интерфейс клиента).

Проблемы с подключением

Вы столкнулись с проблемой, когда привязка маршрута на машине с адресом 192.168.1.50 не позволяет установить подключение к VPS, несмотря на то, что пинг с этого клиента отправляется на 192.0.0.1. Причина, по всей видимости, заключается в том, что пакеты не доходят до интерфейса wg0 VPS, а уходят на публичный интерфейс, не получая корректного обратного маршрута.

Юридические ограничения и решения

  1. IP Masquerading: Ваши существующие правила iptables настроены для маскировки выходящих соединений, но, вероятно, они не настроены для обработки входящих ICMP-пакетов.

    Чтобы разрешить обратный трафик, попробуйте следующее:

    iptables -A FORWARD -i wg0 -j ACCEPT
    iptables -A FORWARD -o wg0 -j ACCEPT
    iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE

    Эти правила должны обеспечить, что ответы на пинги корректно возвращаются.

  2. Настройка маршрутов: Убедитесь, что на клиентском устройстве корректно установлен статический маршрут. Используйте команду:

    ip route add 192.0.0.1 via 192.168.1.11 dev eth0

    Это гарантирует, что трафик к 192.0.0.1 проходит через 192.168.1.11.

  3. AllowedIPs: Поскольку вы не хотите, чтобы VPS знал о вашей локальной сети, в конфигурации WireGuard на стороне клиента можно выставить AllowedIPs только для интерфейса wg0, включив туда лишь адрес 192.0.0.1. На VPS необходимо оставить AllowedIPs, включающие 192.0.0.0/24, что позволяет разрешить ответы на запросы от локальных адресов.

Проверка конфигурации

После применения этих изменений выполните следующие тесты:

  • Пинговые тесты: Проверте, могут ли другие устройства локальной сети пинговать 192.0.0.1.
  • Тест соединения NFS: Убедитесь, что NFS-сервер на VPS правильно настроен и доступен для подключений от вашего клиента.

Заключение

С правильной конфигурацией WireGuard и iptables вы сможете успешно использовать VPS в качестве NAS, не раскрывая при этом связь с вашей локальной сетью. Применение описанных рекомендаций позволит вам устранить проблемы с пингованием и настроить доступ к NFS.

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

Капча загружается...