Yanıtlar:
network-manager-openvpn
Böyle bir işlevsellik sağlamaz, openvpn
doğrudan kullanmanız gerekir .
Bağlarken --script-security 2 --up /path/to/your/script
ona ilet. /etc/openvpn/
Adresinde bulunan bir yapılandırma dosyası kullanıyorsanız , sonraki satırları yapılandırma dosyanıza ekleyin:
script-security 2
# run /etc/openvpn/up.sh when the connection is set up
up /etc/openvpn/up.sh
Gönderen OpenVPN man :
--script-güvenlik seviyesi [yöntem] Bu yönerge OpenVPN kullanımı üzerinde politika düzeyinde kontrol sunar harici programlar ve komut dosyaları. Düşük seviye değerleri daha fazla kısıtlayıcı, daha yüksek değerler daha müsaittir. Ayarları seviyesi: 0 - Kesinlikle dış program çağrısı yok. 1 - (Varsayılan) Yalnızca ifconfig gibi dahili yürütülebilir dosyaları arayın, ip, rota veya netsh. 2 - Dahili çalıştırılabilir ve kullanıcı tanımlı çağrıların yapılmasına izin ver Kodlar. 3 - Şifrelerin çevre yoluyla komut dosyalarına geçirilmesine izin ver değişkenler (potansiyel olarak güvensiz). - yukarı cmd Başarılı TUN / TAP cihazı açıldıktan sonra çalıştırılacak Shell komutu (ön - kullanıcı UID değişikliği). Yukarı komut dosyası belirtmek için yararlıdır IP trafiğini özel için yönlendiren rota komutları VPN bağlantısının diğer ucunda bulunan alt ağlara tünel. Script Yürütme Sırası --up TCP / UDP soket bağlantısı ve TUN / TAP açıldıktan sonra yürütülür. --down TCP / UDP ve TUN / TAP kapandıktan sonra yürütülür.
Komut dosyası yürütme için daha fazla olay var, bunlar kılavuz sayfasında bulunabilir .
Yaratın /etc/openvpn/up.sh
ve izinlerini verin (755 veya 700). Bir IPv6 adresi ve yolu eklemek için örnek içerik (eğitim amaçlı gösterilir, doğrudan kopyalamaz):
#!/bin/sh
# add an IPv6 address to device $dev (environment variable)
ip -6 addr add 2001:db8::1:2/112 dev $dev
# and the IPv6 route for this net using gateway 2001:db8::1
ip -6 route add 2001:db8::1:0/112 via 2001:db8::1 dev $dev
Bu up
betiğin root olarak çalıştırıldığına dikkat edin. A User
ve Group
ayarını belirtmediyseniz , OpenVPN down
de root gibi scriptler çalıştıracaktır .
openvpn
Doğrudan kullanmak için cevabı genişlettim . Bir sunucu kurarken, OpenVPN'in sunucu kapandığında yeniden bağlanmaya çalışacağını fark ettim. Ağ arayüzünüz düştüğünde OpenVPN'in denemeye devam edip etmediğinden emin değilim.
"VPN başarıyla bağlandığında çalışması için bir betiği OpenVPN ile nasıl ilişkilendirebilirim?" Lekensteyn'in mükemmel bir cevap verdiğini belirtmek isterim . Ancak, cevabının oluşturulduğu sırada, ubuntu makinesinde openvpn'i başlatmak için, özellikle de yeniden başlattıktan sonra aynı şekilde çalışabilmesi için openvpn komut satırı argümanlarının nasıl sağlanacağı konusunda biraz netlik yoktu.
Doğal olarak, herhangi bir mevcut yasal seçeneğe sahip bir komut satırından openvpn'yi başlatabilirsiniz. Ancak, bir Ubuntu makinesinde, bir yeniden başlatma işleminden sonra openvpn'yi aynı komut satırı argümanlarıyla başlatmak istiyorsanız, dosyayı düzenlemeyi düşünmeleri gerekir /etc/default/openvpn
. Aşağıdaki satırları inceleyin:
# Optional arguments to openvpn's command line
OPTARGS=""
Gönderen topluluk openvpn adam sayfasında üzerinde--script-security
- script-güvenlik seviyesi Bu yönerge OpenVPN'in harici kullanımı üzerinde politika düzeyinde kontrol sunar programlar ve scriptler. Düşük seviye değerleri daha kısıtlayıcı, daha yüksek değerler daha müsaittir. Seviye ayarları: 0 - Kesinlikle dış program çağrısı yok. 1 - (Varsayılan) Yalnızca ifconfig, ip, route gibi dahili yürütülebilir dosyaları arayın, veya netsh. 2 - Dahili çalıştırılabilir kodların ve kullanıcı tanımlı komut dosyalarının çağrılmasına izin verin. 3 - Şifrelerin çevresel değişkenler aracılığıyla komut dosyalarına geçirilmesine izin ver (potansiyel olarak güvensiz). OpenVPN, v2.3'ten önce yayımlanan sürümleri ayrıca, bunun nasıl yapıldığını belirten bir yöntem bayrağını destekledi. OpenVPN harici komutları ve komut dosyalarını çağırmalıdır. Bu ya yürütmek olabilir veya sistem. OpenVPN v2.3'ten itibaren bu bayrak artık kabul edilmemektedir. Çoğu * nix ortamlarda execve () yaklaşımı sorunsuz olarak kullanılmıştır. --Up gibi bazı yönergeler, seçeneklerin harici komut dosyasına iletilmesine izin verir. Bu durumlarda, komut dosyasının adının boşluk veya boşluk içermediğinden emin olun. yapılandırma ayrıştırıcısı boğulacak çünkü komut dosyasının yerini belirleyemiyor ad biter ve script seçenekleri başlar.
Üzerinde kısaltılmış bir bölüm ile birlikte --up
- yukarı cmd Başarılı TUN / TAP cihazı açıldıktan sonra cmd komutunu çalıştırın (kullanıcı öncesi UID değişikliği). cmd, isteğe bağlı olarak izlenen komut dosyası (veya yürütülebilir program) yolundan oluşur bağımsız değişkenlerle. Yol ve argümanlar tek veya çift alıntı olabilir ve / veya ters eğik çizgi kullanarak kaçtı ve bir veya daha fazla boşlukla ayrılmalıdır.
Openpvn server.conf bulunan makinemde dosyamda şu satırlar var /etc/default/openvpn
:
OPTARGS="
--script-security 2
--up /etc/openvpn/nat.sh
"
Bu arada, nat.sh, özel ağ trafiğini openvpn istemcilerinden halka açık internete yönlendirmek için ağ adresi çevirisini kurar; Halka açık bir WIFI erişim noktasına güvenmediği zamanlar için iyidir.
Bir yeniden başlatma işleminden sonra beklendiği gibi yeniden başlatmaya izin vermenin yanı sıra, /etc/openvpn/[client or server].conf
ve /etc/default/openvpn
dosyalar uygun şekilde yapılandırıldığında, openvpn şu şekilde başlatılabilir veya durdurulabilir:
sudo service openvpn start
sudo service openvpn stop
İçin kullanılabilir Diğer yararlı seçenekler service openvpn
şunlardır cond-restart,force-reload,reload, restart,soft-restart, start, status, stop
.
Oldukça eski bir konu olduğu için hala ilgi olup olmadığından emin değilim. Bir VPN'ye bağlanmak için hala NetworkManager'ı kullanmak istiyorsanız, bunun gibi basit bir udev kuralı ekleyebilirsiniz:
KERNEL=="vpn0", RUN+="/PATH_TO_THE_SCRIPT/SCRIPT_NAME"
Bu, VPN oluşturulduktan sonra herhangi bir komut dosyasını çalıştırmalıdır.
Bu sorunu çözmek için araştırmamdaki cevaba rastladım ve en iyi çözümün (openvpn sunucusunu kullanarak) şöyle olduğunu öğrendim:
Yürütülecek bir komut dosyası oluşturun:
# nano /etc/openvpn/up.sh
<file:contents>
#!/bin/sh
# export >> /var/log/openvpn/openvpn-up.log
D=`date "+%Y-%m-%d %H:%M"`
echo "[$D] ($local_port_1:$proto_1) $X509_0_CN: $trusted_ip => $ifconfig_pool_remote_ip" >> /var/log/openvpn/openvpn-up.log
</file>
Openvpn yapılandırmasına şu satırları ekleyin (genellikle /etc/openvpn/server.conf
). Yukarıdaki cevapta, sunucu başladığında (yeniden başlatıldığında) kullanılan yukarı ve aşağı kullanılmıştır. İstemci bağlantısı (ve istemcinin bağlantısı kesilmesi) yönergesi, istemci bağlandığında (bağlantı kesildiğinde) kullanılır.
# nano /etc/openvpn/server.conf
<file:add>
script-security 2
client-connect /etc/openvpn/up.sh
</file>