はじめに
今回は Ubuntu on Windows などの WSL や Virtual Machine(VM)など、コンピュータ内の仮想環境から企業などにおける社内のネットワークなどに設置されている SWG 製品のクライアントを踏み台にして外部と通信できるようなやり方を、備忘録として残しておきます。
これによって、社用 PC などからしかアクセスできないようなネットワーク環境でも、社用 PC の中でポートフォワーディングを行うことで、社用 PC にインストールされている Zscaler の ZCC などのクライアントを踏み台にして、仮想環境と外部との通信を可能になります。
投稿者の環境
踏み台とするコンピュータでポートフォワーディングを活用することが本稿におけるミソなのであまり関係ないですが、一応念のために記述。
- Windows 10 Enterprise 22H2
- WSL2 - Ubuntu 22.04 LTS
- プロキシサーバ(SWG): Zscaler
- SWG 製品のクライアント(今回なら Zscaler Client Connector)の待ち受けポートは 17200 と既知
手順
-
WSL のインストール(割愛)
-
Windows の WSL アダプタの IP アドレスを
ipconfig
で調べる> ipconfig (中略) イーサネット アダプター vEthernet (WSL): 接続固有の DNS サフィックス . . . . .: リンクローカル IPv6 アドレス. . . . .: fe80::8b89:6755:cb07:dea2%61 IPv4 アドレス . . . . . . . . . . . .: 172.17.112.1 サブネット マスク . . . . . . . . . .: 255.255.240.0 デフォルト ゲートウェイ . . . . . . .:
これで、ホストマシンの IPv4 アドレスが 172.17.112.1 と判明
-
Windows でポートフォワーディングの設定
管理者権限のある PowerShell で、以下のコマンドを入力(listenaddr は 2. で判明した IPv4 アドレスを入力)(注意)
- Zscaler などの SWG 製品のクライアント(Zscaler Client Connector)の待ち受けポート番号は 17200 と既知なため、17200 を入力しています。別の SWG 製品をお使いの場合は、それらの待ち受けポート番号に変更してください。
-
listenaddr
を全てにする0.0.0.0
にして、かつlistenport
を SWG 製品の待ち受けポート番号(今回なら17200
)にしてしまうとループが起こり接続できなくなりますので、この記事のように送信元アドレスを指定する(listenaddr
で指定する)か、0.0.0.0
にした場合は SWG 製品の待ち受けポート番号とは別のポート番号で LISTEN するようにしてください。
> netsh interface portproxy add v4tov4 listenport=17200 listenaddr=172.17.112.1 connectport=17200 connectaddress=127.0.0.1
-
結果が反映されているかを、3. の PowerShell で確認
> netsh interface portproxy show all ipv4 をリッスンする: ipv4 に接続する: Address Port Address Port --------------- ---------- --------------- ---------- 172.17.112.1 17200 127.0.0.1 17200
-
Windows のファイヤーウォールをあける
Windows の設定の「Windows Defender ファイアウォール」> 「詳細設定」で、「受信の規則」において新しい規則を追加する。追加内容: 規則の種類
- ポート
- TCPを選択、特定のローカルポート「17200」
- 接続を許可する
- この規則はいつ適用しますか?「すべて選択」
- 名前はお好みで
これで、WSL においてプロキシを設定する際には「172.17.112.1:17200」をプロキシサーバの宛先にすればいけると思います。これでも無理なら SWG の CA 証明書を WSL のゲスト OS に追加。
ポートフォワーディングを削除するとき
3. や 4. でポートフォワーディングを削除する際は、以下のコマンドを実行
> netsh interface portproxy delete v4tov4 listenport=17200 listenaddr=172.17.112.1
参考文献