VPN/WIreguard перенаправляет внутренний и внешний трафик

Это может быть больше вопрос о брандмауэре Linux, но контекст — это настройка Wireguard VPN в Ubuntu. Заметьте, я едва знакомлюсь со многими из этих вещей.

У меня есть Wireguard, работающий на Digital Ocean Ubuntu с клиентами Windows и Android, использующими его. Все вроде хорошо.

Основные команды брандмауэра, которые я использую, когда они появляются, приведены ниже: Итак, третья строка, по-видимому, направляет весь входящий трафик (частный VPN) через общедоступный интерфейс. Как надо (почти?) и работает нормально. Wgo/Частная сеть 10.8.0.1/24и сервер 10.8.0.1. Когда клиентский трафик поступает на указанный ниже сервер, предназначенный для 10.8.0.x(другой адрес в частной сети) время ожидания истекло.

Я «думал», что это потому, что он пытается направить его через eth0? Если да, то как мне убедиться, что трафик, предназначенный для частной подсети, остается с использованием wg0интерфейс? Если нет, какие еще предложения?

      PreUp = sysctl -w net.ipv4.ip_forward=1
PreUp = sysctl -w net.ipv6.conf.all.forwarding=1
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PostDown = sysctl -w net.ipv4.ip_forward=0
PostDown = sysctl -w net.ipv6.conf.all.forwarding=0

1 ответ

Если ваша политика по умолчанию — отбрасывать или запрещать пересылку в iptables/ufw. Тогда вам, скорее всего, не хватает записей брандмауэра/ufw для разрешения потока трафика между различными интерфейсами wireguard или входом и выходом на одном и том же интерфейсе.

Вы можете проверить свой dmesg для Сообщения.

Разрешить неограниченный входящий и исходящий поток на одном и том же интерфейсе wg PostUp = ufw route allow in on wg0 out on wg0

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

-A ufw-before-forward -i wg0 -s 10.8.0.1/24 -o wg0 -d 10.8.0.1/24 -j ACCEPT

Это разрешит трафик с (-s флаг) 10.8.0.1/24 на интерфейсе wg0 на (-d флаг) 10.8.0.1/24 на интерфейсе wg0. -i — входной интерфейс, а —o — выходной интерфейс.

Если вы предпочитаете использовать путь вверх\вниз, вы можете добавить iptables перед командой.

iptables -A ufw-before-forward -i wg0 -s 10.8.0.1/24 -o wg0 -d 10.8.0.1/24 -j ACCEPT

Удачи :)

Другие вопросы по тегам