-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Поддержка IKEv2 в ssr guest #53
Comments
Благодарю, в следующей версии постараюсь включить в пакет данный функционал. |
Прошу дать обратную связь по выявленной Вами проблеме в крайней версии пакета Квас - 1.1.5-pr2. Желательно это сделать вплоть до 26 ноября текущего года. Детали описаны на форуме по этой ссылке. |
Если ошибка воспроизводима в крайней версии Кваса - откройте тикет вновь. |
Здравствуйте,
|
Благодарю Вас
Не соответствует действительности, так как в новой 1.1.5-final-7 нет такого кода, который бы добавлял указанный Вами правила выше для интерфейса ikev2. Возможно это осталось у Вас от предыдущих экспериментов. Сейчас, с данной конфигурацией, присланной выше, у Вас клиенты ikev2 подключаются к Квасу? |
Ставил через рекомендованные команды. Раз такое подозрение (и Вы писали на форуме, что обновили скрипт установки), решил провести полную переустановку.
Картина ровно та же, правила не верны. Может Вас смутило то, что я прислал результат curl со своими вручную добавленными 2 правилами? Ну вот результат без них kvas_iptables.txt
Когда добавляю свои 2 правила руками, то клиенты IKEv2 ходят к ресурсам из списка обхода через указанный КВАСу SS, всё работает. Без них — нет, Может ли быть такое, что |
Нет, меня смутило, то что добавлены правила с интерфесом ikev2, который там физически не может появляться.
Если нет возможности дать доступ на устройство, то да, было бы здорово. |
Странно, у меня вот VirtualIP IPSec Ikev2 используется как интерфейс для обхода, уже довольно давно (год), все работает (IPSec виден при сканировании интерфейсов) |
Если не трудно поделитесь пожалуйста выводом команд:
|
Возможно я не так понял суть тикета, у меня роутер - клиент IPSec VurtualIP, и это VPN используется для обхода. А изначально вопрос в том чтобы на роутере, где размещен сервер VurtualIP использовать клиента VirtualIP для обхода блокировок? Есть еще третий вариант - IPsec-подключения сеть—сеть, но вроде бы это вообще не относится к VirtualIP? |
Нет, здесь речь идет о том, чтобы клиентам VurtualIP-IPSec-сервера иметь возможность заходить по списку хостов в сеть через ssr (через которое и работает Квас). |
Спасибо, В моём случае есть вариант другого кинетика, где настроен обход через VPN WG, также настроен VirtualIP сервер, к нему подключаются клиенты (например телефон), и с телефона начинает работать обход. Не знаю есть ли тут разница между wg\ssr но обход работает для клиента VirtualIP-IPSec IKEv2 |
Да, разница имеется, но, если не трудно (переустановки ни какой не требуется), пришлите пожалуйста данные по выполненным выше командам на нем. |
К сожалению, при очередном переформатировании на ПК флешка отъехала в мир иной — сыплет ошибками. Проверку смогу завершить лишь через неделю, как приедет новая. Остался без OPKG( |
|
Здравствуйте. Ну что ж, устанавливаю OPKG с нуля
Далее в Web CLI:
Снова возвращаемся в Entware, вывод команд: kvas_install_debug.txt и kvas_install_iptables.txt
Теперь пытаемся включить КВАС для клиентов IKEv2, вывод команд: kvas_netadd_debug.txt и kvas_netadd_iptables.txt
Т.к. добавлен неверный несуществующий интерфейс, то функционал этой задачи не работает. Удалим правила расшаривания КВАСа и добавим правильные руками, вывод команд: kvas_manual_debug.txt и kvas_manual_iptables.txt
|
Доброго дня Благодарю Вас подробное описание и соотвествующие "логи". Также, остается загадкой, форматировали Вы флешку или, как минимум, проверяли ли Вы правила iptables с неверным интерфейсом ikev2 до установки Кваса на предмет их отсутствия, чтобы предотвратить их наличие от предыдущих версий Кваса? Проверку можно осуществить командой |
В таком режиме (ручного добавления правил) оно прекрасно работает около года. Решение закинуто на форум, и там им успешно пользовались и другие. Небольшой фикс (pull request), чтобы правила не вылетали, от меня Вы тоже приняли.
В сообщении ранее указал, что заминка вызвана как раз смертью флешки. Это новая, opkg полностью удалялся и отключался.
Сначала тоже хотел удалить через |
Если все так, как Вы пишите прошу предоставить доступ к своему устройству до 10 декабря включительно, чтобы я смог выявить проблему на месте, так как у меня на моем тестовом устройстве данная проблема не появляется и указанные Вами правила с сетью ikev2 не создаются - все работает штатно с созданием и удалением правил подсказанными Вами в своих сообщениях Выше. |
Здравствуйте! Хотел сэкономить Вам время и сел поотлаживать сам (хотя мой профиль — веб). Выяснилась проблема — после
Т.к. только что перезапустились все интерфейсы, то КВАС осуществляет:
Т.е. функция
|
И Вы здравствуйте. По пункту первому - функция ip4_add_selected_guest_to_ssr_network устарела и не используется в коде (есть только ее описание), потому от куда может появляться правило с названием интерфейса ikev2 пока для меня загадка. У меня на тестовом устройстве таких правил нет. По пункту второму, прошу Вас привести, пример подобных изменений. могу предположить, что здесь могут добавляться какие либо параметры, но менять имена переменных вряд ли будут, ради сохранения совместимости. Так же пока не понял, почему сброс параметров является проблемой для корректной работы команды |
По первому пункту. Ну хорошо, при перезапуске роутера какая функция пересоздаёт правила расшаривания? Читает настройки из конфига и повторяет их. Вот она и не знает, что в случае IKEv2 правила делаются по-другому. Суть ситуации ещё раз: Вы отправляете POST-запрос на смену DNS у IKEv2, сетевые интерфейсы роутера перезапускаются; КВАС после этого дёргает эту функцию из файла ndm, а она в логе роутера оставляет сообщение |
По второму пункту. В админке роутера у IKEv2 сервера есть 6 настроек. Когда Вы curl'ом делаете POST-запрос лишь с DNS-сервером, то другие настройки (Начальный IP-адрес, Пул IP-адресов, Множественный вход) сбрасываются в значения по-умолчанию. Т.е. сохранённые настройки перезаписываются. Я вижу тут 2 выхода:
|
Если DNS сервер IKEv2 уже был верным, то POST-запрос на изменение можно и вовсе не отправлять, зачем лишний раз рестартовать сетевые интерфейсы? Сразу эта мысль почему-то не пришла в голову, поэтому отправил отдельным комментарием. |
в файле /opt/apps/kvas/bin/libs/vpn начиная с 783 строки и ниже
Добавил и перебрал в 1.1.5-final-23 - обновитесь пожалуйста. |
Прошу дать обратную связь по данному вопросу. |
Могу попытаться к выходным собрать pull-request, если описал не понятно и/или у Вас недостаточно времени. Ибо в местах кода разобрался, и все ситуации воспроизвожу довольно легко. Больше времени уходит на составление таких текстов) |
Здравствуйте, благодарю за столь подробный анализ кода. |
В любом случае, попробуйте сейчас обновиться на 26 релиз. |
eth3 — интерфейс WAN-порта. Сам Keenetic вешает свои политики обработки IPSec именно на него, поэтому мы пытаемся заворачивать трафик IKEv2/IPSec (полное название) тоже там. Но на этом интерфейсе весь трафик роутера в интернет фактически, поэтому отделить IKEv2шный мы можем лишь по диапазону IP. |
Здравствуйте!
Это по-прежнему делается, в
, либо спрашивать пользователя «Отключить и сервер IKEv2 заодно?», передавая весь зоопарк параметров с "enable": false. Но вот
Если человек включит в админке сервер OpenVPN, PPTP или SSTP — для них всех и гостевой сети второй блок. |
Здравствуйте, Относительно 7 пункта, логика работы другая для гостевых сетей; Они начинают самостоятельно работать без добавления каких либо правил, в случае если их интерфейс начинает прослушиваться работающим в текущий момент DNS сервером. |
Прошу дать обратную связь, решена ли проблема? |
Здравствуйте, опять извиняюсь за задержку. В пункте 5 (функция
В пункте 6 мы перенесли запись конфига, но не удалили его запись в исходной функции (чтобы после перезапуска интерфейсов конфиг не писался снова). Опять функция
По пункту 7 Вас услышал, чуть позже попробую провести более комплексный тест с разными гостевыми и напишу отдельно. Тем более, что по нему корректно будет открыть отдельную задачу, здесь мы рассматриваем только популярную связку SS + IKEv2. |
Исправления внес, обновитесь пожалуйста. |
Решил ещё записать протокол проверки обхода гостевой сети (подходит для любой); чтобы в будущем, если понадобится, алгоритм не пришлось вспоминать. Правила iptables сохраняем через
|
…mment)). Отдельная благодарность [ALTernateF13](https://github.com/ALTernateF13).
Благодарю Вас за желание помочь и Ваш опыт. Исправления по пп. 2-4 внес - обновитесь пожалуйста. |
А ведь действительно, нужно было в 3ем проверку изменить, а не убирать вовсе (как Вы и сделали). Сразу не заметил, что есть вызовы |
Когда-то просил добавить в документацию примечание:
Сейчас это уже не актуально, КВАС всё проверяет и изменяет сам. Поэтому предлагаю удалить, чтобы не путать пользователей. |
Убрал. Все ли работает? |
…mment)). Отдельная благодарность [ALTernateF13](https://github.com/ALTernateF13).
Обновил протокол проверки обхода гостевой сети, сделал его более универсальным, не только для IKEv2. И расписал более подробно. Предлагаю им (с какими-то доработками от Вас) и отвечать на будущие вопросы из разряда «не работает обход для такой-то сети». 6 логов для разных случаев (только что добавили, перезагрузились, удалили и т.д.) позволят лучше понять в какой именно части проблема.
Как раз проходил по составленному списку. Все 6 пунктов отработали, ура! Вопрос можно закрывать. |
Благодарю Вас за усидчивость и проделанную работу. Обновил Wiki и включил туда Ваш протокол проверки, с небольшими изменениями косметического характера. |
IPSec, в отличии от привычных VPN-решений, не создаёт сетевые интерфейсы, только политики обработки. Поэтому через ssr guest и vpn guest на него обход блокировок не добавить.
1. При выводе списка
Состоящего из сетевых VPN-интерфейсов и guest сети, можно дёрнуть из API Keenetic'а (команды оттуда КВАСом поддерживаются) show running-config. Если есть блок crypto map VirtualIPServerIKE2 и в нём есть enable,
то на роутере включен VPN-сервер IKEv2/IPsec. В списке ssr guest нужно вывести виртуальный пункт ikev2.
2. Если выбрано расшаривание обхода для ikev2
Т.е. тот самый добавленный виртуальный пункт ikev2. То нужно:
2.1. В вышеприведённом блоке найти virtual-ip dns-server. По умолчанию там 78.47.125.180, который на лету подменялся DNS-сервером Keenetic'а, отключенным при установке КВАСа. Теперь там должен быть указан IP роутера! Его можно получить той же командой API show running-config, блок interface Bridge0, пункт ip address
Собственно, сверяем virtual-ip dns-server и ip address. Если они не совпадают, то ругаемся на пользователя, что в настройках VPN-сервера IKEv2/IPsec в поле DNS-сервер должен быть указан IP роутера, т.е. [значение] (чаще всего там 192.168.1.1).
Два новых DNS-правила iptables, как у других VPN-подключений, не нужны. Достаточно, чтобы стояла эта настройка.
2.2. Из того же самого первоначального блока crypto map VirtualIPServerIKE2 (приведённого первым) мы можем узнать virtual-ip range (по умолчанию там 172.20.8.1, у меня 192.168.2.35). Берём первые 3 сегмента, преобразуем их в 192.168.2.0/24 и получаем необходимые 2 правила шаринга (команды аналогичны другим VPN):
Итого
Расшаривание на клиентов IKEv2 сервера роутера, по сути — 2 правила и одна настройка. Поддержка IKEv2 для vpn guest, скорее всего, не сложнее. Просто нужно помнить, что сейчас не свой собственный интерфейс -i sstp0, а весь сетевой порт -i eth3 плюс правило диапазона IP у клиентов VPN-сервера -s 192.168.2.0/24.
The text was updated successfully, but these errors were encountered: