LINUX.ORG.RU
решено ФорумAdmin

Удаление маршрута после остановки Openvpn сервера

 


0

1

Есть впн сервер. После поднятия нужно чтоб прописывались 2 правила:

ip rule add to 10.20.31.0/24 table openvpn priority 100 
ip route add default via 10.20.31.1 table openvpn 


а при остановке соответственно удалялось
ip rule del to 10.20.31.0/24 table openvpn


В конфиге сервера это выглядит:
up /etc/openvpn/udp_up.sh
down /etc/openvpn/udp_down.sh

Если с поднятием проблем нет, то вот при остановке ни в какую не хочет удалять маршрут. В логах строки:

Thu Sep 14 13:05:01 2017 us=36811 /etc/openvpn/udp_down.sh tun1 1500 1541 10.20.31.1 255.255.255.0 init
RTNETLINK answers: Operation not permitted
Thu Sep 14 13:05:01 2017 us=40317 Linux ip addr del failed: external program exited with error status: 2


Что этой собаке надо? Почему она к сприпту дописывает параметры и как заставить работать down скрипт.

★★

Про параметры — читай ман openvpn, там сказано, что к скриптам на up/down всегда добавляются параметры с сетевыми настройками для удобства (можешь их не использовать). Про права: если клиент сконфигурирован для работы от непривилегированного юзера, то и скрипт на down будет выполняться с его правами (это не касается скрипта на up).

lu4nik ★★★ ()
Последнее исправление: lu4nik (всего исправлений: 2)
Ответ на: комментарий от as_lan

А вот это не продумал. Тогда почему это касается down, но не касается up? В чем смысл. Тогда и up ограничили бы в правах.

as_lan ★★ ()

чего-то мне кажется, что проблема-то в другом: Linux ip addr del failed: external program exited with error status

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

Скорее всего, openvpn сбрасывает права после полной инициализации, в т.ч. запуска клиентских скриптов на up. А с пониженными правами down уже не проходит.

Deleted ()

В порядке полу-оффтопика: у меня есть сетап где была нужна подобная штука, но т.к. у меня уже стоял bird, я не стал заморачиваться и конфигать openvpn.

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

Ясно. Спасибо. Будем думать что с этим делать. Теперь хотя бы понятно куда копать.

as_lan ★★ ()

1. Если для постоянного (статического) использования, и другого в таблице openvpn не предусмотрено, то достаточно при старте системы пописать ip rule... т.е. все проще, не надо добавлять или удалять при старте/остановке vpn. В вашем варианте правило не будет мешать при опущенном ovpn т.к. в таблице роутинга все равно ничего нет. Оставляете только ip route при старте.
2. Если все-таки хотите удалять именно правило рекомендую использовать priority который у вас уже есть. ip rule del priority 100 только смотрите что бы других правил с тем же priority не было, а то он удаляет по одному.

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

Все гораздо проще. Создал отдельного пользователя. Дал ему права на удаление правил. Openvpn запускается от этого пользователя. В дальнейшем планирую с помощью up/down скриптов делать что-то большее, поэтому лучше сразу сделать отдельного пользователя для этих целей.

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

Ну можно же и проще. На down-pre повесить, вроде (могу гнать) он срабатывает под привилегированным юзером.

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

А точно, был не прав. Сейчас посмотрел у себя, у меня же через sudo и сделано, запамятовал :(

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.