web-dev-qa-db-ja.com

TunnelblickMacスクリプト

OpenVPNが接続するたびにMacでスクリプトを実行したいのですが。 Macで設定を確認しましたが、スクリプトの場所がどこにも見つかりません。最新のTunnelblick(3.7.0)を実行しています。

Mac用Tunnelblickのスクリプトはどこに設定できますか?

1
Ken J

この答えは少し遅れていますが、Tunnelblickには実際にはフックがあり、特定のディレクトリに適切な名前のスクリプトを配置するだけで使用できます。

このドキュメント は読む(または実践する)のがそれほど楽しいわけではないので、ここに要約を示します*:

  1. 必要に応じて、pre-connect.shpost-tun-tap-load.shconnected.shreconnecting.sh、および/またはpost-disconnect.shを作成します。
  2. Rootとして、これらのファイルを/Library/Application Support/Tunnelblick/Shared/<gateway>.tblk/Contents/Resourcesに配置します。ここで、<gateway>.tblkは、以前にTunnelblickにインポートしたOpenVPN構成にちなんで名付けられたディレクトリです。
  3. 所有権とACLの変更:

    bash$ Sudo chown root:wheel reconnecting.sh bash$ Sudo chmod 700 reconnecting.sh

*私が参照するディレクトリはセットアップによって異なる場合があることに注意してください-私はmacOS10.12.6を実行しています。これらの手順は、OpenVPN構成がTunnelblickにすでにインポートされていることを前提としています。

3
chb

この質問に対する その他の(すばらしい)回答 に基づいて、私はこれをTunnelblick 3.8.1 build 5400macOS Mojave 10.14.6に基づいて簡単な例で書きました。

  1. ターミナルを開きます。

  2. Sudo -s
    
  3. cd /Users/<user>/Library/Application Support/Tunnelblick/Configurations/<profile>.tblk/Contents/Resources
    

    ここで、<user>はMacでのユーザー名、<profile>はTunnelblickにインポートしたVPNプロファイル構成です。

    完全なパスはのようなものです

    /Users/andrea/Library/Application Support/Tunnelblick/Configurations/vpncorporate.tblk/Contents/Resources
    


  1. connected.sh

    nano connected.sh
    

    次の行を貼り付けます。例:接続時にルーティングルールを追加する場合

    #!/bin/sh
    
    route add -Host 172.16.10.7/32 -gateway 192.168.0.244
    

    参照: ルートのマニュアルページ


  1. post-disconnect.sh

    nano post-disconnect.sh
    

    次の行を貼り付けます。例:以前に追加したルールを削除する場合

    #!/bin/sh
    
    route delete -Host 172.16.10.7/32 -gateway 192.168.0.244
    

    参照: ルートのマニュアルページ


  1. 適切な許可を設定する

    chmod 700 connected.sh
    chmod 700 post-disconnect.sh
    

    私の場合

    -rwx------  1 root            admin    63 23 Ott 11:47 connected.sh
    -rwx------  1 root            admin    66 23 Ott 13:43 post-disconnect.sh
    


connected.shとpost-disconnect.shに関するより便利で複雑な例は、次のとおりです

アイデアは、デフォルトゲートウェイを取得し、特定のIPのゲートウェイを経由することです。

  1. connected.sh

    #!/bin/sh
    
    DEFAULTGATEWAY="$(netstat -nar | sed -n -e '/^default/p' | head -1 | awk '{print $2}')"
    
    route add -Host 172.16.10.7/32 -gateway $DEFAULTGATEWAY
    
  2. post-disconnect.sh

    #!/bin/sh
    
    route delete -Host 172.16.10.7/32 
    
1
AndreaT