Как запустить 2FA-используя OpenVPN с systemd?

У меня есть openvpn config, который использует аутентификацию пользователей 2.

Если я запустил его вручную, запустив:

/usr/sbin/openvpn --writepid /run/whatever --cd /etc/openvpn/ --config /etc/openvpn/work.conf 

он запрашивает имя пользователя, пароль (предоставляется программой на моем телефоне), а затем пароль для закрытого ключа. И тогда это работает.

Но если / когда я пытаюсь запустить его с помощью обычного вызова службы:

 =# service openvpn start work 

ничего не печатается, openvpn не работает, а journalctl показывает:

 =# systemctl status openvpn ● openvpn.service - OpenVPN service Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled) Active: active (exited) since czw 2015-05-28 10:24:22 CEST; 17min ago Process: 30395 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 30395 (code=exited, status=0/SUCCESS) CGroup: /system.slice/openvpn.service maj 28 10:24:22 krowka systemd[1]: Starting OpenVPN service... maj 28 10:41:40 krowka systemd[1]: Started OpenVPN service. 

Есть ли что-нибудь, что я мог бы сделать, чтобы заставить его работать «нормально», посредством «служебного» вызова или любого другого значения, кроме ручного создания вызова / usr / sbin / openvpn?

Я пытаюсь запустить его с помощью обычного вызова службы:

  # service openvpn начать работу 

Нет, это не нормально. Это причуда rc инструментов System 5 rc которые rc скрипт System 5 rc с двумя аргументами. Сценарий rc принимает нестандартный второй аргумент в качестве базового имени используемой конфигурации OpenVPN.

Это Ubuntu Linux. Вы не используете System 5 rc . Вы не используете его rc скрипт. Вы используете systemd. Вы используете системные модули systemd, которые OpenVPN на самом деле уже много лет. Системные модули systemd не являются скриптами и не имеют аргументов сценария.

У них есть параметры шаблона, и OpenVPN на самом деле был одним из ранних усыновителей механизма шаблонных единиц , когда он появился, с темплатированными единицами, по крайней мере, с 2011 года . ( Templatized upstart jobs for OpenVPN плавают вокруг, по крайней мере, с 2012 года.)

Вы смотрите /lib/systemd/system/openvpn.service . То, что вы должны смотреть, это /lib/systemd/system/openvpn@.service . Выполните настройку имени конфигурации:

  • systemctl preset openvpn@work.service
  • systemctl disable openvpn@work.service
  • systemctl start openvpn@work.service
  • systemctl stop openvpn@work.service
  • systemctl status openvpn@work.service

Или просто дайте Debian / Ubuntu сделать тяжелый подъем. В генераторе /lib/systemd/system-generators/openvpn-generator который автоматически создает этот шаблон для каждого *.conf файла в /etc/openvpn при загрузке или при systemctl daemon-reload .

дальнейшее чтение

  • Использование OpenVPN с systemd