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

Как запустить openVPN из подкаталога

Я пытаюсь настроить сеть с помощью openVPN
Когда моя файловая структура выглядит так, она отлично работает:

/etc/openvpn
    /client
        client-01.conf
        client-01.key
        client-01.crt
        ca.crt

systemctl start openvpn-client@client-01

Но я хочу иметь доступ к 2 разным сетям с отдельными файлами ca.cert, поэтому я изменил структуру на следующую:

/etc/openvpn
    /client
        /intranet.example.com
            client-01.conf
            client-01.key
            client-01.crt
            ca.crt
        /intranet.foo.com
            ...

systemctl start openvpn-client@intranet.example.com/client-01

При попытке запустить openvpn он ничего не делает.
При попытке включить его с помощью
systemctl enable openvpn-client@intranet.example.com/client-01
Я получаю ошибку:
Failed to enable unit: File openvpn-client@intranet.example.com/client-01: Invalid argument

Можно ли использовать openvpn из подпапки с помощью systemd?

В определении сервиса systemd есть путь, где его найти. Теоретически вы можете изменить это в описании / определении услуги.

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

/etc/openvpn
 /client
  /intranet.example.com
   client-01.conf
   client-01.key
   client-01.crt
   ca.crt
  /intranet.foo.com
   ...

Что ограничивает вас в использовании этой структуры (так устроен openvpn-client):

/etc/openvpn
 /client
  intranet.example.com.conf
  intranet.example.com.key
  intranet.example.com.crt
  intranet.example.com-ca.crt
  intranet.foo.com.conf
  intranet.foo.com.key
  intranet.foo.com.crt
  intranet.foo.com-ca.crt
   ...

и сопутствующие услуги:

openvpn-client@intranet.example.com
openvpn-client@intranet.foo.com

Важная часть находится за @, и эта часть указывает на /etc/openvpn/client/<id>.conf (в случае openvpn-client@id). Другие связанные имена файлов зависят только от содержимого файла конфигурации (какие файлы вы упоминаете / связываете).


Так как пример.

openvpn-client@id => /etc/openvpn/client/id.conf

/etc/openvpn/client/id.conf:

...
ca shared-ca.pem
key private.key
cert public.crt
...

Структура будет такой:

/etc/openvpn/client
  id.conf
  shared-ca.pem
  private.key
  public.crt