GNU/Linux >> Linux の 問題 >  >> Ubuntu

Openvpnが正常に接続した後にスクリプトを実行する方法は?

スクリプトをOpenVPNに関連付けて、VPNが正常に接続されたときに実行されるようにするにはどうすればよいですか?

ベストアンサー

network-manager-openvpn そのような機能を提供しない場合は、openvpnを使用する必要があります 直接。

--script-security 2 --up /path/to/your/scriptを渡します 接続するときにそれに。 /etc/openvpn/にある構成ファイルを使用している場合 、構成ファイルに次の行を追加します:

script-security 2
# run /etc/openvpn/up.sh when the connection is set up
up /etc/openvpn/up.sh

OpenVPNのマンページから:

--script-security level [method]
              This  directive offers policy-level control over OpenVPN’s usage
              of external programs and scripts.  Lower level values  are  more
              restrictive,  higher  values  are more permissive.  Settings for
              level:

              0 -- Strictly no calling of external programs.
              1 -- (Default) Only call built-in executables such as  ifconfig,
              ip, route, or netsh.
              2  --  Allow  calling  of  built-in executables and user-defined
              scripts.
              3 -- Allow passwords to be passed to scripts  via  environmental
              variables (potentially unsafe).
       --up cmd
              Shell  command  to run after successful TUN/TAP device open (pre
              --user UID change).  The up  script  is  useful  for  specifying
              route  commands  which  route  IP  traffic  destined for private
              subnets which exist at the other end of the VPN connection  into
              the tunnel.
Script Order of Execution
       --up   Executed after TCP/UDP socket bind and TUN/TAP open.
       --down Executed after TCP/UDP and TUN/TAP close.

スクリプト実行のイベントは他にもあります。それらはマニュアルページにあります。

/etc/openvpn/up.shを作成します 、実行権限(たとえば、755または700)を付与します。 IPv6アドレスとルートを追加するためのコンテンツの例(教育目的で表示されています。直接コピーしないでください):

#!/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

このupに注意してください スクリプトはrootとして実行されます。 Userを指定していない場合 およびGroup 設定すると、OpenVPNはdownのようなスクリプトを実行します ルートとしても。


Ubuntu
  1. Ssh経由でUbuntu16.04サーバーに接続した後、新しいターミナルでスクリプト(.sh)ファイルを実行する方法は?

  2. LightdmでGreeter/ログインスクリプトを実行する方法は?

  3. スクリプトを実行する方法??

  1. Ssh – Ssh経由で接続した直後にスクリプトを実行する方法は?

  2. 起動時にシェルスクリプトを実行する方法

  3. ログイン後に bash スクリプトを実行する

  1. Ubuntu – Pam_execに現在のユーザーとしてスクリプトを実行させる方法は?

  2. 「find-exec{};?」を実行する方法

  3. バックグラウンドでシェルスクリプトを実行する方法は?