Я пытаюсь настроить сеть с помощью 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