4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AnyConnect で毎回接続するのが面倒になったので自動化した

Last updated at Posted at 2018-10-16

AnyConnect

VPNツールです。

起動のたびに、接続先とパスワード入力を求められれて面倒くさくなってきたので自動化しました。
※MacOS Mojaveにて動作確認

この自動化にあたり以下のサイトを参考にさせて頂きました。
ありがとうございます。
https://qiita.com/arks22/items/a792d9d43d913c373520
https://qiita.com/mamohacy/items/bcd3f575a9555d2f18a4
https://qiita.com/naname/items/3e69efb187be22109c69

やりたかった事

会社支給のPCは、外出先でモバイルルータを使用する場合はAnyConnectで接続しろとのお達しが・・・
でも起動のたびに、接続先とパスワード入力を求められるのを解消したかった。

やった事

AnyConnectへ接続/切断するスクリプトと、
接続状態を確認してAnyConnectの使用可否を判断するスクリプトの
3つを作りました。

あとはmacのplistを使用して、ネットワーク環境の変化を監視と
変更がある場合に接続確認のスクリプトを呼び出す様にしました。

ソースコード

インストール

  1. ~/bin へ全てのファイルを保存
  2. wifiswitch.sh のconfig を自分の環境に合わせて変更
  3. 追加したファイルへ実行権を追加
  4. .bashrc へ環境変数を追加

インストール詳細

###wifiswitch.sh の変更
自分の環境に合わせて更新

# VPNを使用するネットワーク環境
use_vpn="Automatic"     <- 多分そのままで動く

# 自動接続しないSSID
exclude_ssid="mywifi"   <- 除外したいSSIDを記載  複数SSIDには未対応

実行権の追加

以下のコマンドを実行

cd ~/bin
chmod +x anyconnect.sh
chmod +x wifiswitch.sh
chmod +x anyconnect_disconnect.sh

追加する環境変数

.bashrc に追加

  1. VPN_ANYCONNECT_ADDR : AnyConnectで使用する接続先
  2. VPN_ANYCONNECT_USER : AnyConnectで使用するユーザ名
  3. VPN_ANYCONNECT_PASS : AnyConnectで使用するパスワード

plistファイルの作成

plist ファイルを作ってネットワークの切り替えを監視
※ホームフォルダは、自分の環境に合わせて書き換えが必要

  • ~/Library/LaunchAgents/github.com.himitsudesu.wifiswitch.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
          "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>github.com.himitsudesu.wifiswitch</string>
    <key>ProgramArguments</key>
    <array>
      <string>/bin/bash</string>
      <string>--login</string>
      <string>/Users/himitsudesu/bin/wifiswitch/wifiswitch.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>StandardErrorPath</key>
    <string>/dev/null</string>
    <key>StandardOutPath</key>
    <string>/dev/null</string>
    <key>WatchPaths</key>
    <array>
      <string>/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist</string>
      <string>/Library/Preferences/SystemConfiguration/preferences.plist</string>
    </array>
  </dict>
</plist>

参考URL

com.apple.airport.preferences.plist

4
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?