Jump to content

завернуть трафик клиентов SSTP в мое подключение Wireguard


Recommended Posts

добрый день

Есть задача трафик пользователей SSTP VPN (у меня на роутере поднят сервер) отправить в Wireguard подключение, также установленное на моем роутере

 

но никак не могу понять, где такое сделать

Казалось бы можно было бы сделать просто маршрутизацией, указав для source IP интерфейс по-умолчанию - WireguardVPN

но маршрутизации по source IP нет :(

Пробовал привязать к гостевому сегменту весь SSTP, а гостевой сегмент через приоритеты подключений-применение политик переместить в Wireguard подключение

но это не сработало

 

Есть ли возможность как-то пользователей VPN сервера Keenetic отправить в нужный Upstream?

 

Ultra II (еще черная), 4.1 Beta 0.1

Link to comment
Share on other sites

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 оставалась с прописанным маршрутом ранее, но проверка думаю не помешает.

  • Thanks 2
Link to comment
Share on other sites

  • 2 months later...
В 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 оставалась с прописанным маршрутом ранее, но проверка думаю не помешает.

Спасибо, все замечательно работает. Но после перезагрузки маршрут пропадает. Как его можно сохранить постоянно?

Link to comment
Share on other sites

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 by vasek00
  • Thanks 1
Link to comment
Share on other sites

12 часа назад, vasek00 сказал:

Вариант 1.

Так как все скрипты Entware запускаются через /opt/etc/init.d то можно создать скрип запуска с одной командой после некоторой задержки

Еще вопрос, при таком сценарии, возможно ли добавить маршрут, чтобы была видна сеть 192.168.1.0?

Link to comment
Share on other sites

41 минуту назад, Dimbas сказал:

Еще вопрос, при таком сценарии, возможно ли добавить маршрут, чтобы была видна сеть 192.168.1.0?

О чем идет речь?

Link to comment
Share on other sites

1 час назад, vasek00 сказал:

О чем идет речь?

когда мы настроили для клиента с IP 172... маршрутизацию интернета через VPN все заработало, но пропал доступ к серверу Homeassistant, который находится на 192.168.1.100. Вопрос в том, может ли одновременно работать интернет, как мы настроили выше и еще добавить доступ к Homeassistant?

Link to comment
Share on other sites

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-Настройка-правил-межсетевого-экрана-из-командного-интерфейса

Link to comment
Share on other sites

В 01.03.2024 в 21:35, vasek00 сказал:
Клиент[SSTP]----Интернет----[SSTP]Keenetic1[LAN]------[LAN]Keenetic2

У меня вот так, т.е. весь траффик с SSTP идет через локальный TOR. Вопрос в том, как бы я не добавлял маршрутизацию на 192.168.1.100, она не хочет работать.

Клиент[SSTP]----Интернет----[SSTP]Keenetic[LAN]------[TOR]Keenetic
Link to comment
Share on other sites

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 by vasek00
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...