Ok, jadi saya sudah mencari di web untuk solusi untuk masalah ini tanpa jawaban yang sepertinya bekerja untuk saya. Semoga ada yang bisa membantu saya. Saya hanya mencoba mengkonfigurasi Klien OpenVPN.
Saya sedang menjalankan CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
dan saya baru saja beralih menggunakan systemd
. Pergantian berjalan cukup lancar tapi sekarang saya tidak bisa mendapatkan klien OpenVPN saya untuk datang menggunakan systemd Saya sudah mencoba mengikuti tutorial konfigurasi ini, tetapi tidak ada yang berhasil.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- Dan melihat banyak panduan berbeda lainnya.
Saya dapat memunculkan terowongan dari baris perintah dengan openvpn /etc/openvpn/vpn.conf
. Jadi saya tahu file konfigurasi itu baik, itu bekerja dengan sysvinit baik-baik saja jadi saya tidak terkejut. Saya kemudian mencoba untuk melakukan status dengan systemctl status [email protected]
menghasilkan:
$ sudo systemctl status [email protected]
[email protected]
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Saya menyadari bahwa saya perlu melakukan beberapa pengaturan untuk layanan. Saya ingin diminta untuk password jadi saya mengikuti panduan ini untuk membuat [email protected]
di /etc/systemd/system/
. Tetapi memulai kembali layanan OpenVPN masih tidak meminta kata sandi.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Tutorial Fedora mengikuti langkah-langkah membuat tautan simbolis, tetapi jangan membuat file .service di walk-throughs.
Bagian apa yang saya lewatkan? Apakah saya perlu membuat [email protected]? Jika demikian, di mana tepatnya saya meletakkannya? Saya merasa seharusnya tidak sesulit ini, tetapi sepertinya saya tidak dapat menemukan solusi yang cocok untuk saya. Saya senang memberikan informasi lebih lanjut yang dibutuhkan.
Larutan
-rw-r--r-- 1 root root 319 Aug 7 10:42 [email protected]
[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
[email protected] (END)
Simbol:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 [email protected] -> /lib/systemd/system/[email protected]
Prompt Untuk Kata Sandi
Semuanya berfungsi sekarang, kecuali diminta kata sandi untuk terhubung. Saya sudah mencoba solusi ini . Saya tweak file dari atas hanya sedikit, dan menambahkan script Harapkan seperti dalam contoh. Bekerja seperti pesona! File saya di bawah.
Baris yang dimodifikasi dari atas /lib/systemd/system/[email protected]
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
Skrip yang diharapkan /lib/systemd/system/openvpn_pw.exp
. Pastikan untuk melakukan hal berikut:
chmod +x
pada naskah.- Telah
telnet
diinstal
Kode skrip harapan:
#!/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
Perlu dicatat bahwa solusi di atas tidak mencatat kata sandi Anda yang dimasukkan dalam plaintext di log berikut /var/log/syslog
dan/var/log/daemon.log
sumber
[email protected]
Seperti apa file itu?journalctl -b -m
untuk mencari tahu mengapa OpenVPN keluar. Salah satu tempat itu harus mengandung pesan kesalahan nyata. (Atau bahkanjournalctl -b -m _EXE=/usr/sbin/openvpn
harus memberikan pesan OpenVPN saja).Jawaban:
Saya pikir setup OpenVPN Debian dengan systemd saat ini agak rusak. Untuk membuatnya bekerja pada mesin saya, saya harus:
Buat
Saya menelepon file saya/etc/systemd/system/[email protected]
(direktori), dan letakkan di dalamnya file baru dengan ini:local-after-ifup.conf
. Itu harus diakhiri dengan.conf
. (Ini adalah bit yang saat ini agak rusak.)Buat file di
Ini adalah bug Debian 741938 (diperbaiki pada 2.3.3-1)./etc/tmpfiles.d
(saya sebut milik sayalocal-openvpn.conf
) dengan konten:Buat symlink ke
multi-user.target.wants
(cara termudah adalahsystemctl enable openvpn@CONF_NAME.service
) Misalnya, jika sudah/etc/openvpn/foo.conf
, Anda akan menggunakan[email protected]
.Jika Anda juga memiliki skrip init SysV muncul di systemd, nonaktifkan itu. Ini adalah bug Debian 700888 (diperbaiki pada 2.3.3-1).
CATATAN: 2.3.3-1 atau lebih baru belum dalam pengujian , meskipun dalam kondisi tidak stabil.
sumber
/etc/init.d/openvpn
; systemd secara default menjalankannya seperti sysv init. Itu yangopenvpn.service
Anda miliki; Anda harus menonaktifkannya (systemctl disable
). Apakah file/lib/systemd/system/[email protected]
ada di sistem Anda?ln -s /lib/systemd/system/[email protected] /etc/systemd/system/multi-user.target.wants/[email protected]
/etc/init.d/openvpn script.
/etc/openvpn/
.Edit
/etc/default/openvpn
. Batalkan komentar ini:Lari
systemctl daemon-reload
.service openvpn start
.sumber
client.conf
, sekarang dengan konfigurasi tunggal saya ini hanya berjalan. Terima kasih!Jenis file unit ini adalah Layanan Instantiated - detail lebih lanjut tersedia di sini
Berikut ini adalah file unit untuk
openvpn
pada CentOS 7:dan itu berada sebagai
/usr/lib/systemd/system/openvpn@service
. Di%i
dalam file diganti dengan string setelah@
di dalam nama unit.Karena file konfigurasi sudah di
/etc/openvpn/myopenvpn.conf
maka layanan dimulai dengan:sumber
/usr/lib/systemd/user/
Tidak ada yang lain di/usr/lib/systemd
tingkat./lib/systemd/system/
? Saya sepertinya memiliki keduanya di sistem saya, dengan konten yang identik (dan mereka bukan symlink!).Anda perlu membuat file layanan dengan mengaktifkan
openvpn@<configuration>.service
.Misalnya, jika file konfigurasi adalah
/etc/openvpn/client.conf
, nama layanannya[email protected]
.Dari Arch Wiki
sumber
/etc/openvpn/vpn.conf
systemctl start [email protected]
berhasil juga? Itu seharusnya bekerja ...Openvpn @ .service telah berkembang pesat antara Debian 8 dan 9. Paket asli untuk Jessie misalnya gagal
systemctl reload openvpn@
. Untuk memperbaikinya versi Peregangan memperkenalkan 10 arahan baru dalam file systemd termasukPIDFile=
untuk membuat reload berfungsi lagi.Untuk pengguna Stretch, saya sarankan pergi untuk backport, dan jika tidak memungkinkan untuk melakukannya, setidaknya dapatkan file systemd dari https://packages.debian.org/jessie-backports/openvpn dan ekstrak
debian/[email protected]
ke dalam/etc/systemd/system/[email protected]
dan nikmati lebih baik fungsi dan keamanan.sumber
Solusi yang tepat adalah, dengan menggunakan systemd
systemd-ask-password
/ " Password Agents ", yang menyediakan cara systemd dibangun untuk menyalurkan kata sandi / frasa sandi ke layanan.Anda perlu OpenVPN 2.3.0 atau yang lebih baru untuk melakukan ini.
sumber
Pada instalasi Jessie_8.0.0 segar yang saya lakukan:
/etc/openvpn/cluster.conf
(plus*.key
dan*.crt
) dari wheezyAUTOSTART="all"
di/etc/default/openvpn
- saya pikir ini tidak berpengaruh/lib/systemd/system-generators/openvpn-generator cluster
systemctl restart [email protected]
Sekarang terowongan sudah menyala - Saya akan melihat apa yang akan terjadi setelah reboot, tetapi saya tidak bisa mem-boot ulang saat ini
sumber