X
    Categories: 未分類

Hyper-Vの仮想マシン(拡張セッション)からCisco AnyConnectを利用するには【Part.2】

以前まとめた以下の記事について、諸般の事情(社内の運用変更)により、UWP版のAnyconnectを利用する形ではうまくつながらなくなってしまったため、再度環境を見直すこととしました。

今回もやりたいことは、Hyper-V拡張セッションとCisco Anyconnect VPN接続の両立

VPNサーバー側で明示的に、Windowsの場合はローカルユーザーに限定するポリシーが構成されているため、リモートデスクトップ接続(および拡張セッション)時にはVPN接続がうまくいきません。

具体的には、以下の設定がプロファイルに構成されています。これは、接続時にVPNサーバー側からクライアント側に配信されるため、回避する方法がありません。
<WindowsVPNEstablishment>LocalUsersOnly</WindowsVPNEstablishment>

海外では、How to enable (and hack) Cisco AnyConnect VPN through Remote Desktopのような情報もあるのですが、私の手元ではだめでした

前回のアプローチは、どうもこのプロファイルを無視してくれているっぽいUWP版のAnyconnectを使ったのですが、今回その他の運用変更により、UWP版のAnyconnectではうまく利用できない状態になってしまいました。

WindowsがだめならLinuxを使えばいいじゃない

さてこのポリシーですが、上述のようにWindowsVPNEstablishmentという設定でして、Windows OS向けのものです。Linux向けには同じようにLinux向けの設定キーがあるのですが、私の接続しているVPNサーバーではそのポリシーが設定されていない=Linuxなら大丈夫なはずということで、ゲストOSをWindowsから変更します!

今回は仮想マシンのゲストOSにUbuntuを入れて、Anyconnect+VMwareの接続環境にします。

ポイント

今回UbuntuをゲストOSとして、Ubuntuの拡張セッションを経由してanyconnect VPN経由 VMware horizonの接続を可能にしたポイントは以下の4つとなります。

Ubuntuでも拡張セッションを利用できるように

前回の記事にも記載したように、リモートワークで利用する仮想環境でもマルチディスプレイを使いたいので、拡張セッションが使えることが重要です。

WindowsではHyper-Vで新規仮想マシンを作成する際に「クイック作成」を利用すると、Ubuntuのダウンロードからインストールまで自動で構成してくれます。この場合、拡張セッションが利用できるように自動構成してくれるようです。

最新の22.04 LTSを使いたい場合などは、ISOから手動インストールした後、拡張セッションを有効にするにはXrdpをインストールし、場合によっては少し手を入れる必要があります。
このあたりは、”Ubuntu, 拡張セッション”で検索して表示されたサイトを参考にさせていただきました。

Anyconnectが入手できない場合はOpenConnectで代替

Anyconnectのパッケージは契約のあるCISCOアカウントからしか入手ができません。もし入手できない場合は、OpenConnectをインストールすることで、GUI上からもCisco互換VPN接続を作成することができるようになります。

VMware horizonのインストール

VMware horizonクライアントはドキュメントを参考にインストールします。
Ubuntu 22.04ではドキュメントの手順通りに進めてもエラーになり進みませんでしたが、Python2をインストールすることで無事インストールできました。

都度求められる認証の回避

Xrdpを構成して拡張セッション(リモートセッション)から接続していると、VPN接続時や仮想マシンのシャットダウン時などに毎度認証を求められます。polkitに以下の設定を追加して、ネットワーク関連の設定変更と、シャットダウン・再起動時に求められる不要な都度の認証要求を回避します。

$sudo nano /etc/polkit-1/localauthority/50-local.d/99-allow-vpn.pkla

[ConsoleKit]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.*;org.freedesktop.login1.*
ResultAny=yes
ResultInactive=yes
ResultActive=yes

$sudo systemctl restart polkit.service

その他(備忘)

リモートデスクトップでUbuntuのオーディオをリダイレクトするには以下を参照

快適なテレワーク環境が戻ってきた!

これで、会社のテレワーク仮想デスクトップ環境には、自宅PCの仮想デスクトップ環境から接続する環境を再構築し、(逸般家庭なので)安定した自宅ネットワーク接続の恩恵を受けたり、自宅のマルチディスプレイを活かすことが引き続きできるようになりました。

仮想マシンが使えることで

  • 自宅PC上で、インターネットに出られるローカルデスクトップと、社内NWにしか接続できない仮想デスクトップを併用することで、会社NWに接続して仮想デスクトップを利用して業務をしながら、Web会議は社内NWを経由せずローカルから接続するなど、ネットワークの効率的な使い分けができる。
    • 特に資料を投影する場合など、混雑した社内NWを経由するとWeb会議ツールが途端に重くなって使い物にならない場合が多く、安定したWeb会議運営には重要な要素だったり
    • VPNでスプリットトンネルをサポートしてくれたら済む話ではあるのですが…

仮想マシンで拡張セッションが使えることで

  • 会社の仮想環境を利用する場合にも、マルチディスプレイの恩恵が受けられる
    (社内仮想環境のリソース負荷が高まるという話もありますが、Web会議トラフィックを社内NWを通さずに済むだけで、十分おつりが出そう)

当然サポート外ではありますが、あくまで会社の指定した環境を利用する(変えたのはその環境を利用するための下回りだけ)ことからセキュリティポリシーには反することなく、自宅環境を有効活用して快適に在宅ワークを楽しむための一工夫でした。

ださっち: