ufw блокирует локальный IP, приходящий из туннеля WireGuard

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

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

Назовем машину, к которой я хочу получить доступ: сервер. Клиент, которому необходим доступ снаружи: клиент. Выходная точка туннеля wireguard — маршрутизатор: маршрутизатор.

У меня есть правило:
22 ALLOW IN 192.168.1.0/24 # Разрешить SSH с локальной сети (любой клиент)
Это работает, если клиент физически находится в той же локальной сети, это работает.
Затем клиент подключается снаружи локальной сети, используя туннель wireguard, заканчивающийся на маршрутизаторе. Клиент может получить доступ к любым другим локальным машинам на любом порту без проблем.
Клиент получает другой IP-адрес из туннеля wireguard: 10.10.0.2, поэтому я добавил это правило:
22 ALLOW IN 10.10.0.2 # Разрешить клиенту SSH через туннель Wireguard
Но это не работает.
Я также пробовал 10.10.0.2/32 или 10.10.0.0/24 и даже разрешать в ANYWHERE (так как порт 22 все равно не открыт для внешнего доступа), но ничего не работает.
Что я упускаю? Это проблема с правилами? Или это не связано с UFW?

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

Блокировка локального IP с помощью UFW при подключении через туннель WireGuard

Настройка файрвола для доступа к серверу по SSH через туннель WireGuard может быть непростой задачей, особенно когда нужно учесть различные сети и IP адреса. В этом ответе мы разберем, как правильно настроить UFW (Uncomplicated Firewall) в условиях описанной вами проблемы.

Описание проблемы

У вас есть сервер, к которому вы хотите получить доступ через SSH, используя клиент, подключенный к WireGuard туннелю. Клиент получает IP-адрес в диапазоне 10.10.0.0/24, а сервер имеет локальный адрес в сети 192.168.1.0/24. Вы правильно настроили правила для доступа к серверу с локальных машин, но когда клиент подключается через WireGuard, доступ не осуществляется.

Теоретические основы

  1. Сетевые маршруты: Когда клиент подключается через WireGuard, его трафик маршрутизируется через router, а затем на сервер. Следовательно, сервер видел бы трафик от IP-адреса клиента (например, 10.10.0.2), а не его локальный адрес в сети 192.168.1.0/24.

  2. Правила UFW: Чтобы UFW пропускал трафик от WireGuard, необходимо явно разрешить входящие соединения от IP-адреса клиента.

Настройка UFW

Вот несколько шагов, которые помогут вам точно настроить UFW для разрешения SSH-доступа с клиентского IP-адреса.

  1. Добавление правила для клиента:
    Убедитесь, что правило, позволяющее доступ клиенту через WireGuard, выглядит правильно:

    sudo ufw allow from 10.10.0.2 to any port 22

    Если вы хотите разрешить доступ для всего диапазона клиентских IP address:

    sudo ufw allow from 10.10.0.0/24 to any port 22
  2. Проверка правил:
    После добавления правил обязательно проверьте их с помощью команды:

    sudo ufw status verbose

    Убедитесь, что ваше новое правило отображается в выводе.

  3. Требования к WireGuard:
    Убедитесь, что конфигурация серверной части WireGuard позволяет маршрутизировать пакеты от клиента к серверу. Проверьте настройки AllowedIPs на клиенте и убедитесь, что 10.10.0.2 может маршрутизироваться к локальной сети.

  4. Тестирование подключения:
    Попробуйте выполнить SSH-вход на сервер из туннеля WireGuard с клиента:

    ssh user@192.168.1.x

    Замените user на имя пользователя и 192.168.1.x на IP-адрес вашего сервера.

  5. Логи UFW:
    Если доступ по-прежнему невозможен, просмотрите логи UFW для диагностики. Включите ведение журналов с помощью:

    sudo ufw logging on

    После этого проверьте логи в /var/log/ufw.log. Это поможет выявить, блокируется ли трафик на уровне UFW.

Заключение

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

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

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