Гаразд, тому я шукав в Інтернеті рішення цієї проблеми, без відповідей, здавалося б, на мене. Сподіваюся, хтось може мені допомогти. Я лише намагаюся налаштувати клієнт OpenVPN.
Я бігаю, CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
і я просто перейшов на використання systemd
. Перехід пройшов досить плавно, але тепер я не можу змусити свого клієнта OpenVPN прийти за допомогою systemd. Я намагався дотримуватися цих інструкцій з налаштування, але нічого не працює.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- І подивився на купу інших різних путівників.
Я можу вивести тунель з командного рядка за допомогою openvpn /etc/openvpn/vpn.conf
. Тому я знаю, що конфігураційний файл хороший, він працював із системою sysvinit чудово, тому я не здивований. Потім я намагаюся просто зробити статус, у systemctl status openvpn@vpn.service
результаті якого:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Я зрозумів, що мені потрібно зробити певну настройку для сервісів. Я хочу бути запропоновано ввести пароль , так що я після цього керівництва для створення openvpn@.service
ін /etc/systemd/system/
. Але перезапуск служби OpenVPN все ще не вимагає ввести пароль.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Підручники Fedora проходять кроки створення символічних посилань, але не створюють жодного з .service-файлів у покрокових інструкціях.
Якого твору мені не вистачає? Чи потрібно мені створити послугу openvpn@vpn.service? Якщо так, то де саме я його розміщую? Я відчуваю, що це не повинно бути таким складним, але я не можу знайти рішення, яке б працювало на мене. Я радий надати більше необхідної інформації.
Рішення
-rw-r--r-- 1 root root 319 Aug 7 10:42 openvpn@.service
[Unit]
Description=OpenVPN connection to %i
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.conf
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn
[Install]
WantedBy=multi-user.target
openvpn@.service (END)
Symlink:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
Підказка про пароль
Зараз все працює, за винятком запиту на підключення пароля. Я спробував це рішення . Я трохи перетворив файл зверху і додав сценарій очікування, як у прикладі. Працює як шарм! Мої файли нижче.
Змінені рядки з вищезазначеного /lib/systemd/system/openvpn@.service
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --management localhost 5559 --management-query-passwords --management-forget-disconnect --config /etc/openvpn/%i.conf
ExecStartPost=/usr/bin/expect /lib/systemd/system/openvpn_pw.exp
Очікуйте сценарій /lib/systemd/system/openvpn_pw.exp
. Обов’язково виконайте такі дії:
chmod +x
на сценарій.- були
telnet
встановлені
Код сценарію очікування:
#!/usr/bin/expect
set pass [exec /bin/systemd-ask-password "Please insert Private Key password: "]
spawn telnet 127.0.0.1 5559
expect "Enter Private Key Password:"
send "password 'Private Key' $pass\r"
expect "SUCCESS: 'Private Key' password entered, but not yet verified"
send "exit\r"
expect eof
Слід зазначити, що вищевказане рішення записує ваш пароль, введений у відкритий текст, у наступні входи в /var/log/syslog
і/var/log/daemon.log
journalctl -b -m
дізнайтеся, чому OpenVPN вийшов. Одне з цих місць має містити реальні повідомлення про помилки. (Або навіть journalctl -b -m _EXE=/usr/sbin/openvpn
слід давати лише повідомлення OpenVPN).
openvpn@.service
файл?