「OpenConnect」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:Virtual Private Network en:OpenConnect [http://www.infradead.org/openconnect.html OpenConnect] より: :OpenConnect は Cisco の AnyConnect SSL VPN の...」)
 
 
(他の1人の利用者による、間の1版が非表示)
1行目: 1行目:
[[Category:Virtual Private Network]]
+
[[Category:仮想プライベートネットワーク]]
 
[[en:OpenConnect]]
 
[[en:OpenConnect]]
 
[http://www.infradead.org/openconnect.html OpenConnect] より:
 
[http://www.infradead.org/openconnect.html OpenConnect] より:
15行目: 15行目:
 
=== NetworkManager ===
 
=== NetworkManager ===
   
{{pkg|networkmanager-openconnect}} パッケージを[[インストール]]してください。{{ic|nm-applet}} (NetworkManager のトレイアイコン) などのユーティリティを使って設定・接続します。インストール後、{{ic|NetworkManager.service}} を[[再起動]]してください。
+
{{pkg|networkmanager-openconnect}} パッケージを[[インストール]]してください。{{ic|nm-applet}} (NetworkManager のトレイアイコン、{{pkg|network-manager-applet}} パッケージに含まれています) などのユーティリティを使って設定・接続します。インストール後、{{ic|NetworkManager.service}} を[[再起動]]してください。
   
 
詳しくは [[NetworkManager]] を参照。
 
詳しくは [[NetworkManager]] を参照。
28行目: 28行目:
 
 
 
# echo -n ''password'' | openconnect -u ''user'' --passwd-on-stdin ''vpnserver''
 
# echo -n ''password'' | openconnect -u ''user'' --passwd-on-stdin ''vpnserver''
  +
  +
VPN プロバイダは完全なトンネル接続、あるいはスプリットトンネル接続など、様々なアクセス構成にあわせて様々な認証グループを提供しています。様々な認証グループを表示して、サーバーへの接続についての詳細情報を得るには:
  +
  +
# openconnect --authenticate ''vpnserver''
  +
  +
=== netctl の統合 ===
  +
  +
シンプルな {{ic|tuntap}} netctl.profile(5) を使うことで通常の [[netctl]] のワークフローに OpenConnect を統合することができます。例:
  +
  +
{{hc|/etc/netctl/vpn|<nowiki>
  +
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}"
  +
</nowiki>}}
  +
  +
以下のように実行することができます:
  +
  +
$ netctl start vpn
  +
$ netctl restart vpn
  +
$ netctl stop vpn
  +
  +
上記のプロファイルで使用している {{ic|LOCAL_USERNAME}} は [[GnuPG#gpg-agent|gpg-agent]] に依存しており、あらかじめ PGP 鍵のパスフレーズがキャッシュされている必要があります。gpg-agent が起動していない場合、[[pass]] からインタラクティブに取り合わせを行うことができません。
   
 
== 参照 ==
 
== 参照 ==

2024年8月14日 (水) 23:05時点における最新版

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_USERNAMEgpg-agent に依存しており、あらかじめ PGP 鍵のパスフレーズがキャッシュされている必要があります。gpg-agent が起動していない場合、pass からインタラクティブに取り合わせを行うことができません。

参照