OpenConnect
OpenConnect より:
- OpenConnect は Cisco の AnyConnect SSL VPN のクライアントです。ASA5500 シリーズ, IOS 12.4(9)T, Cisco SR500, 870, 880, 1800, 2800, 3800, 7200 シリーズ, Cisco 7301 ルーターなどによってサポートされています。
インストール
openconnect パッケージをインストールしてください。
使用方法
OpenConnect は NetworkManager と一緒に使ったり、コマンドラインで手動で使用することができます。
NetworkManager
networkmanager-openconnect パッケージをインストールしてください。nm-applet (NetworkManager のトレイアイコン、network-manager-applet パッケージに含まれています) などのユーティリティを使って設定・接続します。インストール後、NetworkManager.service を再起動してください。
詳しくは NetworkManager を参照。
コマンドライン
root で openconnect を実行してユーザー名とパスワードを必要に応じて入力してください:
# openconnect vpnserver
もしくはユーザー名とパスワードを指定して実行してください:
# echo -n password | openconnect -u user --passwd-on-stdin vpnserver
VPN プロバイダは完全なトンネル接続、あるいはスプリットトンネル接続など、様々なアクセス構成にあわせて様々な認証グループを提供しています。様々な認証グループを表示して、サーバーへの接続についての詳細情報を得るには:
# openconnect --authenticate vpnserver
netctl の統合
シンプルな tuntap netctl.profile(5) を使うことで通常の netctl のワークフローに OpenConnect を統合することができます。例:
/etc/netctl/vpn
Description='VPN'
Interface=vpn
Connection=tuntap
Mode=tun
#User=root
#Group=root
BindsToInterfaces=(enp0s25 wlp2s0)
IP=no
PIDFILE=/run/openconnect_${Interface}.pid
SERVER=vpn.example.net
AUTHGROUP="<AUTHGROUP>"
LOCAL_USERNAME=<USERNAME>
REMOTE_USERNAME=<VPN_USERNAME>
# Assuming the use of pass(1):
PASSWORD="`su ${LOCAL_USERNAME} -c "pass ${REMOTE_USERNAME}" | head -n 1`"
ExecUpPost="echo '${PASSWORD}' | /usr/bin/openconnect --background --pid-file=${PIDFILE} --interface=${Interface} --authgroup=\"${AUTHGROUP}\" --user=${REMOTE_USERNAME} --passwd-on-stdin ${SERVER}"
ExecDownPre="kill -INT $(cat ${PIDFILE}) ; ip link delete ${Interface}"
以下のように実行することができます:
$ netctl start vpn $ netctl restart vpn $ netctl stop vpn
上記のプロファイルで使用している LOCAL_USERNAME は gpg-agent に依存しており、あらかじめ PGP 鍵のパスフレーズがキャッシュされている必要があります。gpg-agent が起動していない場合、pass からインタラクティブに取り合わせを行うことができません。