BeaViSs Posted December 12, 2023 Share Posted December 12, 2023 добрый день Есть задача трафик пользователей SSTP VPN (у меня на роутере поднят сервер) отправить в Wireguard подключение, также установленное на моем роутере но никак не могу понять, где такое сделать Казалось бы можно было бы сделать просто маршрутизацией, указав для source IP интерфейс по-умолчанию - WireguardVPN но маршрутизации по source IP нет Пробовал привязать к гостевому сегменту весь SSTP, а гостевой сегмент через приоритеты подключений-применение политик переместить в Wireguard подключение но это не сработало Есть ли возможность как-то пользователей VPN сервера Keenetic отправить в нужный Upstream? Ultra II (еще черная), 4.1 Beta 0.1 Quote Link to comment Share on other sites More sharing options...
vasek00 Posted December 12, 2023 Share Posted December 12, 2023 1 час назад, BeaViSs сказал: Есть задача трафик пользователей SSTP VPN (у меня на роутере поднят сервер) отправить в Wireguard подключение, также установленное на моем роутере Есть ли возможность как-то пользователей VPN сервера Keenetic отправить в нужный Upstream? На текущий день - Entware + маршрутизация. Данные : 1. SSTP VPN сервер -> клиент подключившись имеет IP адрес (желательно зарег. пользователя/пароль и привязать его к IP) 2. Поднят Wireguard Решение - будущий клиент 4G удаленно подключается к роутеру на его SSTP сервер : 1. Создать профиль для Wireguard на роутере и в нем один единственный канал Wireguard активен, узнать для него table маршрутизации ( show ip policy ) 2. Найти для созданного профиля п.1 параметр table его номер (для 4.1 это будет 10 или 11 или 12 или 13 и т.д.) 3. Добавить нужный стат маршрут для клиента SSTP так как к имени привязан IP то Скрытый текст По умолчанию основной профиль, клиент 172.16.16.16 ~ # ip ro default dev ppp0 scope link ... 172.16.16.16 dev sstp0 proto kernel scope link src 192.168.1.1 ... ~ # нужная нам table 12 от нужного профиля WG (в которой только WG активен nwg4) ~ # ip rule add from 172.16.16.16/32 table 12 ~ # ~ # ip ro show table 12 default dev nwg4 scope link ... 172.16.16.16 dev sstp0 scope link ... ~ # Запускаю на клиенте speedtest в итоге имею IP адрес от интерфейса Wireguard4 ( nwg4 ) Данная команда которая единственная " ip rule add from 172.16.16.16/32 table 12 " через ПО роутера не добавить для этого нужен Entwqre + пакеты (ip-bridge + ip-full). Отключаюсь данным клиентом, спустя 5 минут подключаюсь им и смотрю Скрытый текст ~ # ip ro show table 12 default dev nwg4 scope link 172.16.16.16 dev sstp0 scope link Все на месте. возможно придется придумать контроль данного стат.маршрута, ну тут любым доступным способом - проверка по ifconfig sstp0 Link encap:Point-to-Point Protocol inet addr:192.168.1.1 P-t-P:172.16.16.16 Mask:255.255.255.255 - проверка " show sstp-server " "tunnel": [ { "ethernet": false, "clientaddress": "172.16.16.16", "username": "VPN-t1", ... - или https://github.com/ndmsystems/packages/wiki/Opkg-Component /opt/etc/ndm/sstp_vpn_up.d # vi 1.sh #!/bin/sh echo " $ndm_opkg_id $iface $remote $local " >> /opt/tmp/sstp /opt/tmp/sstp VPN-t1 sstp0 ххх.ххх.ххх.212 172.16.16.16 Ремарка пока пробовал - отключался/подключался table 12 оставалась с прописанным маршрутом ранее, но проверка думаю не помешает. 2 Quote Link to comment Share on other sites More sharing options...
Dimbas Posted February 29 Share Posted February 29 В 12.12.2023 в 12:44, vasek00 сказал: На текущий день - Entware + маршрутизация. Данные : 1. SSTP VPN сервер -> клиент подключившись имеет IP адрес (желательно зарег. пользователя/пароль и привязать его к IP) 2. Поднят Wireguard Решение - будущий клиент 4G удаленно подключается к роутеру на его SSTP сервер : 1. Создать профиль для Wireguard на роутере и в нем один единственный канал Wireguard активен, узнать для него table маршрутизации ( show ip policy ) 2. Найти для созданного профиля п.1 параметр table его номер (для 4.1 это будет 10 или 11 или 12 или 13 и т.д.) 3. Добавить нужный стат маршрут для клиента SSTP так как к имени привязан IP то Показать содержимое По умолчанию основной профиль, клиент 172.16.16.16 ~ # ip ro default dev ppp0 scope link ... 172.16.16.16 dev sstp0 proto kernel scope link src 192.168.1.1 ... ~ # нужная нам table 12 от нужного профиля WG (в которой только WG активен nwg4) ~ # ip rule add from 172.16.16.16/32 table 12 ~ # ~ # ip ro show table 12 default dev nwg4 scope link ... 172.16.16.16 dev sstp0 scope link ... ~ # Запускаю на клиенте speedtest в итоге имею IP адрес от интерфейса Wireguard4 ( nwg4 ) Данная команда которая единственная " ip rule add from 172.16.16.16/32 table 12 " через ПО роутера не добавить для этого нужен Entwqre + пакеты (ip-bridge + ip-full). Отключаюсь данным клиентом, спустя 5 минут подключаюсь им и смотрю Скрыть содержимое ~ # ip ro show table 12 default dev nwg4 scope link 172.16.16.16 dev sstp0 scope link Все на месте. возможно придется придумать контроль данного стат.маршрута, ну тут любым доступным способом - проверка по ifconfig sstp0 Link encap:Point-to-Point Protocol inet addr:192.168.1.1 P-t-P:172.16.16.16 Mask:255.255.255.255 - проверка " show sstp-server " "tunnel": [ { "ethernet": false, "clientaddress": "172.16.16.16", "username": "VPN-t1", ... - или https://github.com/ndmsystems/packages/wiki/Opkg-Component /opt/etc/ndm/sstp_vpn_up.d # vi 1.sh #!/bin/sh echo " $ndm_opkg_id $iface $remote $local " >> /opt/tmp/sstp /opt/tmp/sstp VPN-t1 sstp0 ххх.ххх.ххх.212 172.16.16.16 Ремарка пока пробовал - отключался/подключался table 12 оставалась с прописанным маршрутом ранее, но проверка думаю не помешает. Спасибо, все замечательно работает. Но после перезагрузки маршрут пропадает. Как его можно сохранить постоянно? Quote Link to comment Share on other sites More sharing options...
vasek00 Posted February 29 Share Posted February 29 (edited) 8 часов назад, Dimbas сказал: Спасибо, все замечательно работает. Но после перезагрузки маршрут пропадает. Как его можно сохранить постоянно? На вскидку. Вариант 1. Так как все скрипты Entware запускаются через /opt/etc/init.d то можно создать скрип запуска с одной командой после некоторой задержки Скрытый текст #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin sleep 30; ip rule add from 172.16.130.29/32 table 12; Файл должен иметь имя Snnnхххххх, где S - обязательно, так как это Start nnn - цифра, скрипты в данном каталоге запускаются по порядку с 1 и будут по nnn, например S102-SSTP. Далее "chmod 755 S102-SSTP". Вариант 2. Считаем что профиль готов к работе, а именно таблица маршрутизации для него после того как в нем будет установлен default маршрут в нем. Скрытый текст Для примера имеем профиль и в нем только один WG, тогда #!/bin/sh PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin COUNTER=0 LIMIT=30 while [ -z "`ndmc -c show ip policy Policy2 | grep destination | awk '/0.0.0.0/ {print $2}'`" -a "$COUNTER" -le "$LIMIT" ]; do sleep 1; COUNTER=`expr $COUNTER + 1` done ip rule add from 172.16.130.29/32 table 12; Policy2 это профиль с WG каналом который нужен, поиск в нем default маршрута - destination 0.0.0.0/0. В данном примере S102-SSTP получаем при COUNTER=16 появляется маршрут default в таблице маршрутизации. Добавим далее IP клиента который будет по SSTP (172.16.130.29/32) в данную таблицу 12 маршрутизации данного профиля. В настройках SSTP сервера для пользователя зарезервирован IP адрес. LIMIT=30 это для ARM, можно и 45 и 60. Сколько точно можно проверить добавив команду echo " $COUNTER " >> /opt/tmp/count_12 ip rule add from 172.16.130.29/32 table 12; Посмотреть потом в /opt/tmp/count_12 В место ndmc можно использовать curl -kfsS http://localhost:79/rci/show/ip/policy/Policy2 | grep destination | awk '/0.0.0.0/ {print $2}' или curl ... http://localhost:79/rci/show/ip/policy/Policy2 | jq .... Поверяем вариант2. 1. Без скрипта S102-SSTP. Клиент подключается по SSTP к роутеру. Speedtest на клиенте показывает IP от провайдера который в основном профиле/по умолчанию профиль. 2. Используем скрипт, перезапускаем роутер. Клиент подключается по SSTP к роутеру. Speedtest на клиенте показывает IP от WG который в профиле Policy2. Ремарка - по команде "ip ro show table 12" ip адреса клиента видно не будет, до тех пор пока он не появится/подключится к роутеру и будет висеть в данной таблице пока клиент не отключится. Если потом опять подключится то данный стат маршрут будет опять активен и он выйдет в интернет опять через нужный нам профиль Policy2. Edited February 29 by vasek00 1 Quote Link to comment Share on other sites More sharing options...
Dimbas Posted February 29 Share Posted February 29 Спасибо большое! сделал по первому варианту, маршрут при перезагрузке прописался. Quote Link to comment Share on other sites More sharing options...
Dimbas Posted March 1 Share Posted March 1 12 часа назад, vasek00 сказал: Вариант 1. Так как все скрипты Entware запускаются через /opt/etc/init.d то можно создать скрип запуска с одной командой после некоторой задержки Еще вопрос, при таком сценарии, возможно ли добавить маршрут, чтобы была видна сеть 192.168.1.0? Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 1 Share Posted March 1 41 минуту назад, Dimbas сказал: Еще вопрос, при таком сценарии, возможно ли добавить маршрут, чтобы была видна сеть 192.168.1.0? О чем идет речь? Quote Link to comment Share on other sites More sharing options...
Dimbas Posted March 1 Share Posted March 1 1 час назад, vasek00 сказал: О чем идет речь? когда мы настроили для клиента с IP 172... маршрутизацию интернета через VPN все заработало, но пропал доступ к серверу Homeassistant, который находится на 192.168.1.100. Вопрос в том, может ли одновременно работать интернет, как мы настроили выше и еще добавить доступ к Homeassistant? Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 1 Share Posted March 1 7 часов назад, Dimbas сказал: когда мы настроили для клиента с IP 172... маршрутизацию интернета через VPN все заработало, но пропал доступ к серверу Homeassistant, который находится на 192.168.1.100. Вопрос в том, может ли одновременно работать интернет, как мы настроили выше и еще добавить доступ к Homeassistant? но пропал доступ к серверу Homeassistant В моем случае Клиент[SSTP]----Интернет----[SSTP]Keenetic1[LAN]------[LAN]Keenetic2 на обоих Keenetic Entware + SMB и сами WEB роутеров, Keenetic1 запущен AGH (его WEB) - проблем с доступом нет. В обоих вариантах подключения одинаково. Пользователю SSTP разрешено user U*****N password md5 *** password nt *** home SSD1: tag sstp tag vpn tag ipsec-xauth tag http tag opt tag sftp tag cifs tag printers tag http-proxy У вас в данном профиле какой стоит канал основной ? При этом стоит "isolate-private" что это написано ниже https://help.keenetic.com/hc/ru/articles/360001434079-Настройка-правил-межсетевого-экрана-из-командного-интерфейса Quote Link to comment Share on other sites More sharing options...
Dimbas Posted March 4 Share Posted March 4 В 01.03.2024 в 21:35, vasek00 сказал: Клиент[SSTP]----Интернет----[SSTP]Keenetic1[LAN]------[LAN]Keenetic2 У меня вот так, т.е. весь траффик с SSTP идет через локальный TOR. Вопрос в том, как бы я не добавлял маршрутизацию на 192.168.1.100, она не хочет работать. Клиент[SSTP]----Интернет----[SSTP]Keenetic[LAN]------[TOR]Keenetic Quote Link to comment Share on other sites More sharing options...
vasek00 Posted March 4 Share Posted March 4 (edited) 1 час назад, Dimbas сказал: У меня вот так, т.е. весь траффик с SSTP идет через локальный TOR. Вопрос в том, как бы я не добавлял маршрутизацию на 192.168.1.100, она не хочет работать. Клиент[SSTP]----Интернет----[SSTP]Keenetic[LAN]------[TOR]Keenetic Если у вас 4.1. попробуйте вот такую команду, на своем примере (тут именно 120, для начала) была ip rule add from 172.16.130.29/32 table 12 стала ip rule add pref 120 from 172.16.130.29/32 table 12 или она же ip rule add from 172.16.130.29/32 table 12 pref 120 для удаления введенной - точно такая же только вместо "add" нужно "del" Edited March 4 by vasek00 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.