Ребят, есть кто за сеть хорошо шарит?

У меня тут ситуёвина:
Linux лежит в VM c проприетарным VPN-решением, которое ещё и пушит по умолчанию ужасно неудобные маршруты.

Я решил поднять в этой VM тонкий Wireguard и по большому счёту "раздать" этот проприетарный VPN любому wg-клиенту.

Спустя 5 часов разбора полётов, настроить так ничего и не удалось :(

@rf

Мне казалось сетап тривиальный:
1. Настроил IP Forwarding
2. В nftables сделал forwarding вида:
iifname "wg0" oifname { "ens33", "tunsnx" } ct state new accept
3. Там же ниже маскарадинг:
oifname { "ens33", "tunsnx" } ip saddr 192.168.128.0/24 masquerade

ens33 тут присутствует чисто для теста, это по факту интернет и что показательно, интернет раздаётся на ура, а всё что должно падать на tunsnx отваливается по таймауту.

@rf

Follow

Есть предположение, что это, сучий проприетарный VPN как-то блочит такое, но неужели это нельзя никак обойти?

@rf

· · Web · 1 · 0 · 0
@savely а если блочат, нуу, самое очевидное это по TTL. С остальным сложнее, ведь тут честный nat, вроде.

Впрочем, использование tcpdump-а, думаю, будет хорошим началом в любом подобном случае. Что если сравнить, например, дампы пингов через ens33 и wg0, снимая их с tunsnx?

@v я попробовал просто sudo tcpdump -i tunsnx, по итогу запросы на вид идут отлично, а ответов просто нет. Если с самой VM делать, то ответы есть.

Пинги я делать не могу, в корпоративной сети ICMP полностью закрыт, поэтому только через DNS и HTTP запросы можно что-то понять.

@v в Wireshark выглядит вот так (это попытка telnet-ом по 443 порту сходить + шальные DNS запросы винды).

@savely это непосредственно с tunsnx снято? Тогда, похоже, nat не работает, ибо src ip должен быть 10.40.83.83, по идее.

> Если с самой VM делать, то ответы есть.
Там как раз должен быть этот ip; думаю, стоит проверить.

@v да, это захват tunsnx. А разве маскарадинг этим не должен заниматься? По логике тут действительно 10.40.83.83 должен быть.

@savely если он правильно настроен (и работает внутри этой VM, а не снаружи, что очевидно), то да, так и должно быть.

Так-то маскарадинг - это частный случай SNAT-а, только с авто-выбором src ip, исходя из таблицы маршрутизации.

@v вот похоже автовыбор у меня работает неправильно и вместо saddr самого tunsnx он берет saddr ens33, то есть 192.168.1.8, IP VM в моей домашней локалке.

@savely но nftables-ам не подскажу, а на iptables-е это будет как-то так (внутри VM-а с tunsnx, вестимо):
iptables -t nat -A POSTROUTING -d 10.40.0.0/16 -j SNAT --to-source 10.40.83.83

@v спасибо, сейчас попробую "перевести". Но у меня единственное что, этот IP 10.40.83.83 всегда разный выдаётся DCHP самого VPN.

@savely ну тогда можно добавить правило в скрипт-хук dhcp-клиента, исполняемый после успешного выделения ip-адреса (там должно быть нечто подобное, притом ip-адрес будет передан либо параметром, либо в переменной окружения), ну или по cron-у (🤡), ну или-таки маскарадинг.

Так или иначе, я бы проверил "на стенде" вариант с SNAT-ом, а дальше, если всё норм, уже думал бы о красоте и тщетности бытия.

@v вот так заработало!

(мне нужна вся сеть 10/8)

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

@savely следующим шагом можно попробовать:
iptables -t nat -A POSTROUTING -d 10.0.0.0/8 -j MASQUERADE

Ну а дальше уже с nftables (тут я, повторюсь, не помощник, ибо год за годом всё откладываю и откладываю изучение этого уже не такого нового феномена).

@v такое уже попробовал, не робит :(

В любом случае, огромное спасибо, в чем проблема разобрались, дело за малым, это я уже сам смогу разобраться :)

@savely
> ответов просто нет. Если с самой VM делать, то ответы есть.
Это уже что-то. Теперь можно сравнить, чем отличаются запросы, на которые ответ есть и запросы, на которые ответов нет. Очевидно, что там будет TTL другой (с ним можно пошаманить, я не знаю, как это делается в nftables, ибо диназавр, но в iptables-е это делается просто), но может и ещё что-то. Как минимум, стоит проверить корректность nat-а.
Sign in to participate in the conversation
Mastodon

The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!