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を使用して、ネットワーク環境の変化を監視と
変更がある場合に接続確認のスクリプトを呼び出す様にしました。
ソースコード
インストール
- ~/bin へ全てのファイルを保存
- wifiswitch.sh のconfig を自分の環境に合わせて変更
- 追加したファイルへ実行権を追加
- .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 に追加
- VPN_ANYCONNECT_ADDR : AnyConnectで使用する接続先
- VPN_ANYCONNECT_USER : AnyConnectで使用するユーザ名
- 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