LINUX.ORG.RU
ФорумAdmin

(debian 12) sstpc, добавить (persistent?) маршрут после подключения

 ,


0

2

Я новичок, прошу это учесть.

НЕдомашняя сеть, Keenetic Air, поднят SSTP VPN Server, доступ через Keenetic Cloud.

Сеть внутренняя - 192.168.0.х, роутер 192.168.0.1.

Домашняя сеть, 192.168.220.х.

На клиенте (192.168.220.33) - Debian 12.

Установлен sstpc.

Зачем SSTP - чтобы с Debian открывать rtsp потоки камер в Home Assistant, установленном на Debian.

Камеры - в другой сети под роутером Keenetic.

Методом проб и ошибок - работает такой конфиг для подключения к SSTP (мб кому пригодится):

/etc/ppp/peers/sstp-1:

remotename sstp-1
linkname sstp-1
ipparam sstp-1
pty "sstpc --ipparam sstp-1 --log-stderr --log-level 4 --tls-ext --nolaunchpppd xxxxxxxx.keenetic.link"
name user_xxx
refuse-eap
refuse-pap
refuse-chap
require-mschap-v2
noauth
noipdefault
plugin sstp-pppd-plugin.so
sstp-sock /var/run/sstpc/sstpc-sstp-1

пароль - в «/etc/ppp/chap-secrets»:

user_xxx  sstp-1  xxx   *

Интерфейс поднимаю (опускаю) так:

sudo pon (poff) sstp-1

Маршруты при подключенном интерфейсе:

default via 192.168.220.1 dev ens33 proto dhcp src 192.168.220.33 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.0.1 dev ppp0 proto kernel scope link src 172.16.3.34
192.168.220.0/24 dev ens33 proto kernel scope link src 192.168.220.33 metric 100

С клиента пингуется только 192.168.0.1.

Потому ручками добавляю маршрут до внутренней сети:

sudo ip route add 192.168.0.0/24 via 192.168.0.1

Получаю:

default via 192.168.220.1 dev ens33 proto dhcp src 192.168.220.33 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1
192.168.0.0/24 via 192.168.0.1 dev ppp0
192.168.0.1 dev ppp0 proto kernel scope link src 172.16.3.34
192.168.220.0/24 dev ens33 proto kernel scope link src 192.168.220.33 metric 100

Тогда пингуются и клиенты во внутр. сети (в т.ч. искомые камеры).

Но маршрут живет до перезапуска сети или перезапуска интерфейса.

Попытка добавления persistent маршрута в /etc/network/interfaces:

iface ppp0 inet dhcp
        post-up ip route add 192.168.0.0/24 via 192.168.0.1 dev ppp0

После рестарта ОСи, после переподключения интерфейса ppp0 - маршрут не добавляется.

Другая попытка - через «/etc/network/if-up.d»:

#!/bin/sh

if [ "$IFACE" = "ppp0" ]; then
    ip route add 192.168.0.0/24 via 192.168.0.1
fi

Аналогично, не работает.

Прошу помочь, почему не устанавливается persistent маршрут.



Последнее исправление: vasssso (всего исправлений: 1)

Ответ на: комментарий от anonymous

Чуть подробнее:

  1. Создал файлик в /etc/ppp/ip-up.d, дал ему chmod 751.
  2. Верности ради - перезагрузил Ось.
  3. sudo pon sstp-1
  4. ip route - нету моего маршрута.

Все то же самое.

vasssso
() автор топика

Конкретно по теме не подскажу, но, судя по тексту, у тебя есть возможность выбирать протокол VPN. Если так, то очень советую выкинуть всеми давно заброшенный SSTP, и настроить простой и понятный Wireguard.

anonymous
()
Ответ на: комментарий от vasssso

По крайней мере, реализация Wireguard в самом Кинетике… Опять же судя по докам Кинетика. Тратить время на поднятие Wireguard на Debian пока не хочется, тк может (ожидаемо) не получиться.

vasssso
() автор топика

До if в скрипте ip-up добавьте

echo $@ > /tmp/ppp-up

так проверите и что он выполняется (файл /tmp/ppp-up создастся) и какие переменные он получает.

Я все время в if использовал $5 === адрес удаленного сервера - чтобы к разным серверам поднимать разные необходимые маршруты.

keir ★★
()
Ответ на: комментарий от anc

До if в скрипте ip-up добавьте

Если я правильно понял: файлик «my_route» в папке /etc/network/if-up.d:

  1. Внес эту строку в файл:
!/bin/sh

echo $@ > /tmp/ppp-up

if [ "$IFACE" = "ppp0" ]; then
    ip route add 192.168.0.0/24 via 192.168.0.1
fi
  1. Перезагрузил ОСь.
  2. Поднял интерфейс «sudo pon sstp-1».
  3. Файлик в /tmp не создался.

Вот полный путь до команды ip пропишите.

Где именно прописать? Если в «/etc/network/if-up.d/my_route» - так судя про вышеописанному тесту, этот файлик игнорируется.

Повторюсь - «/etc/network/interfaces /etc/ppp/ip-up.d /etc/network/if-up.d тупо игнорятся на моем сетапе.» Погулил; может ли причина быть в том, что за сеть у меня отвечает не некий драйвер_Xyz, а драйвер_Abc? Мельком слышал - у кого якобы за сеть отвечает какой-то NetworkManager, а у него свои настройки.

vasssso
() автор топика

Просто аналогичная ситуация, только снимаю показания с zigbee. C командной строки всё ок, с автозапуском беда какая то. Такое ощущение что все у кого работает vpn живут с божьей помощью настроенным конфигом и бубном подмышкой. Как в Debian в 2024 может быть настолько кривое выполнение простейших прикладных задач, выкурил очень много мануалов и даже у их авторов постоянно какие то грабли. Друзья, коллеги, братья!!! Каак прописать автозапуск и маршрут SSTP клиента? Поделитесь древним знанием, каких даров вы хотите?

doktar
()