Назад | Перейти на главную страницу

openfortivpn убивает мои маршруты

Я пытаюсь использовать openfortivpn для подключения. Раньше я использовал клиент Fortinet VPN в MS-Windows - теперь у меня появляются синие экраны каждый раз, когда я пытаюсь его запустить (я загружаю обновленную версию, но хочу настроить ее в Linux по другим причинам).

Инфраструктура, к которой я подключаюсь, имеет множество подсетей, некоторые из которых конфликтуют с моими локальными подсетями. Таким образом, с настройками по умолчанию (--set-routes = 1) он перезаписывает мои локальные маршруты, и ящик отключается от локальной сети. Параметры командной строки, похоже, разрешают все или ничего.

Я смог записать конфигурацию, которая применялась при запуске, и автоматически настроила маршруты. Cherry выбрал соответствующие записи и попытался применить их (после перезапуска VPN с помощью --no-routes, а затем вручную записав IP-адрес), в результате получилось рабочее соединение.

ip route add to 10.0.99.0/255.255.255.0 via 10.220.136.94 dev ppp0

Но локальный адрес будет меняться каждый раз, когда я подключаюсь; Я не могу использовать это как буквальное значение в скрипте.

как мне сделать сценарий, чтобы это происходило автоматически?

В страница руководства для openfortivpn упоминает некоторые переменные среды, которые управляют маршрутизацией, но при вводе

 "VPN_ROUTE_GATEWAY" openfortivpn

в Google просто дает мне ссылки на исходный код openfortivpn (а мои знания C слишком ржавые, чтобы перепроектировать это).

Оказывается, можно будет сделать этот трюк автоматически с помощью скрипта ip-up, я все еще пытаюсь заставить его работать.

И вот ответ: вы можете создать файл "ip-up" и использовать --ppp-ipparam для маршрутизации:

Просто добавьте следующий файл в свой /etc/ppp/ip-up.d/yourendpointname:

-вы можете называть это как хотите-

#!/bin/sh -e

if [ "$PPP_IPPARAM" = "yourendpointname" ]; then
  /sbin/ip r add 10.0.99.0/24 via $PPP_LOCAL
fi

Вот, "yourendpointname" должен соответствовать --ppp-ipparam параметр, который вы хотите использовать в вызове openfortivpn.

chmod 755 этот файл, затем используйте --ppp-ipparam=yourendpointname при вызове openfortivpn.

Следующий (предыдущий) ответ несколько сложен:

Кстати, вы можете использовать следующий сценарий, чтобы получить шлюз VPN и добавить маршрутизацию:

# Print routes, get ppp0 route link, get gateway ip into $GW
GW=$(ip r|grep ppp0|grep link|sed -e 's/.* link src \(.*\)$/\1/g')
# Use $GW variable as gateway for your new routes
ip r add 10.0.99.0/24 via ${GW}

Это может помочь.