「OpenConnect」の版間の差分
(ページの作成:「Category:Virtual Private Network en:OpenConnect [http://www.infradead.org/openconnect.html OpenConnect] より: :OpenConnect は Cisco の AnyConnect SSL VPN の...」) |
Kusanaginoturugi (トーク | 投稿記録) |
||
(他の1人の利用者による、間の1版が非表示) | |||
1行目: | 1行目: | ||
− | [[Category: |
+ | [[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_USERNAME
は gpg-agent に依存しており、あらかじめ PGP 鍵のパスフレーズがキャッシュされている必要があります。gpg-agent が起動していない場合、pass からインタラクティブに取り合わせを行うことができません。