
У меня есть устройство, к которому я больше не могу подключиться (ssh, salt, ...), к которому нет простого физического доступа, но которое все еще открывает сеанс OpenVPN к моему серверу. Чтобы попытаться восстановить его, я хотел бы:
- на сервере принудительно переподключить этого клиента
- когда клиент переподключится - отправьте скрипт, который клиент выполнит (сначала я посмотрю, что происходит, с помощью дампа журналов и конфигураций, а затем, возможно, восстановлю правильные настройки)
Есть решение дляскрипты, которые будут запущены на клиенте после его подключенияно все предполагают, что это выбор клиента (= конфигурация на стороне клиента). Я ищу обратный путь.
Я вижу, что такой подход создает проблему безопасности (провайдер VPN может взять под контроль клиентский компьютер), но, может быть, есть способ, который неочевиден из документации?
решение1
Чтобы заставить клиента переподключиться, вы можете:
- удалить определенную комбинацию исходного IP-адреса и исходного порта, используяiptablesвВЫХОДцепочка или адрес назначения и порт назначения вВХОДна более длительный период времени, чем интервал ping-restart,
- завершить работу указанного клиента в интерфейсе управления OpenVPN:глянь сюда
- перезапустите службу OpenVPN на сервере, все вышеперечисленное приведет к новому симметричному обмену ключами, новым сокетам и новому номеру порта назначения.
Почему нельзя выполнить скрипт:
- Вам не повезло. Скрипты настраиваются и должны располагаться на стороне клиента, насколько мне известно, даже ccd OpenVPN не позволяет этого, на стороне клиента также требуется правильная директива конфигурации "pull" - чтобы сервер мог извлекать самые основные параметры туннеля, такие как: шифр, размеры буфера, сжатие, маршруты и т. д., но не директивы конфигурации скриптов.
в конфигурации по умолчанию OpenVPN работает без привилегий nobody,- это было бы дырой в безопасности.