【VMware】Unified Access GatewayでLog4jの対応をした

Virtualization
スポンサーリンク

本記事は情報が古くなっています。新しい記事はこちら

今回は、2021/12/10に発表されたApache Log4jの脆弱性に関する対応としてUnified Access Gatewayの脆弱性対応を行います。

なお、脆弱性に関する対応の最新情報はVMware社のページを確認してください。
VMSA-2021-0028.2

対応方法

UAGに関する脆弱性の一時対応として、VMware社からはLog4jのLookupをdisable(nolookup=true)へ設定することで暫定的に対応が可能です。
また、本設定を行う前に、古いUAGを使用している場合にはアップデートを先に行ってください。
Log4jに対応するUAGのバージョンはUAG 2009以降のバージョンとなります。
該当バージョン以前のUAGに関しては、UAGのバージョンアップが推奨されています。

旧UAGの設定エクスポート

UAGのバージョンアップはApplianceの再デプロイで行います。
設定値を踏襲するため、事前に旧UAGの設定をバックアップしておきます。

UAG設定のバックアップについては、[手動設定]-[サポート設定]-[Unified Access Gateway設定のエクスポート]よりJSON形式でエクスポートを行います。
また、OPSWATによるMetaacces等を使用している際には、インポート時にクライアントアクセスキー等が必要になるため、事前に確認しておきます。

UAGバージョンアップ

本環境では、UAGのバージョンが古いため、UAGのバージョンアップ→脆弱性対応の順番で対応を行っていきます。
また、UAGをバージョンアップを行う上で、Horizonや他のコンポーネントとのコンパチビリティを確認する必要があります。
Product Interoperability Matrix – VMware

現在運用中のUAGは3.9であり、使用しているHorizon製品はVMware Connection Server 7.12となります。
バージョンアップについては、2009以上となりますが、今回は2106へアップデートしていきます。
コンパチ的にnon supportになっていますが、UAGは比較的コンパチに緩いので強行します。
VMwareからサポートを受ける場合はコンパチを優先してバージョンを選定してください。

vCenterへアクセスし、UAGを再デプロイするクラスタに移動します。
クラスタより、[アクション]を選択します。

[アクション]-[OVFテンプレートのデプロイ]を選択します。

[OVFテンプレートの選択]-[ローカルファイル]-[ファイルのアップロード]を選択し、UAGのOVAテンプレートファイルを選択します。

OVAファイルを選択したら、[NEXT]を選択します。

[名前とフォルダの選択]より、[仮想マシン名]と[仮想マシンの配置場所]を選択して、[NEXT]を押下します。

[コンピューティングリソースの選択]より、UAGを配置するクラスタやホストを選択します。
本環境ではDRSを有効化していないため、ホストを指定しています。

[詳細の確認]より、[NEXT]を押下します。

[設定]より、UAGの構成とデプロイサイズを設定します。
今回は、バージョンアップ前のUAGの構成を踏襲するため、[Single NIC]を選択し、[NEXT]を押下します。

[ストレージの選択]より、UAGをデプロイするストレージを選択します。
また、[仮想ディスクフォーマットの選択]より、ディスクのポリシーを選択します。

[ネットワークの選択]より、UAGが所属する仮想ネットワークを選択します。
また、[IPアドレスの割り当て設定]より、[IPプロトコル]を[IPv4]を選択します。

[テンプレートのカスタマイズ]より、以下の設定を行います。

  • Networking Properties
    • IPMode for NIV 1 (eth0) : STATICV4
    • Comma separated list of forward rules in the from… : 空欄
    • NIC (eth0) IPv4 Address : UAGのIPアドレス
    • List of IPv4 custom routes for NIC1 (eth0) : UAGが所属するネットワークアドレス
    • NIC1 (eth0) IPv6 address : 空欄
    • DNS server address : UAGから参照可能なDNSサーバのアドレス
    • DNS Search Domain : UAGに付与するDNSサフィックス
    • NIC1 (eth0) IPv4 netmask : UAGの所属するネットワークのサブネットアドレス
    • NIC1 (eth0) IPv6 netmask/prefix : 空白
    • NIC1 (eth0) Custom Configuration : 空白
    • IPv4 Default Gateway : UAGが所属するネットワークのデフォルトゲートウェイ
    • IPv6 Default Gateway : 空白
    • Unified Gateway Appliance Name : UAGのホスト名
  • Join CEIP
    • Join the VMware Customer Experience Improvement Program : □
  • Password Options
    • Password for the root user of this VM : rootユーザのパスワード
    • Password Expiration in days for the root user. : rootユーザのパスワード有効期限(デフォルト)
    • Password policy minimum length. : パスワードの最小文字数(デフォルト)
    • Password policy for minimuim number : パスワードに含まれる数字の最小数(デフォルト)
    • Pasword policy for maximum failed attempts : ログイン失敗の最大試行回数(デフォルト)
    • Password policy for unlock time in seconeds on maximum failed attempts : 最大試行回数超過後のログインロック解除時間(デフォルト)
    • Password for the admin user, Which enables REST API access : adminユーザおよびREST APIのパスワード
    • Password policy minimum length. : パスワードの最小文字数(デフォルト)
    • Password policy for minimuim number : パスワードに含まれる数字の最小数(デフォルト)
    • Pasword policy for maximum failed attempts : ログイン失敗の最大試行回数(デフォルト)
    • Admin session idle timeout in minutes. : Adminユーザのセッション維持時間(デフォルト)
  • System Properties
    • Enable SSH : ■(SSHの有効化)
    • Allow SSH root login using pasword : ■(rootユーザによるパスワードログインの許可)
    • Allow SSH root login using key pair : □(rootユーザによるキーペアログインの許可)
    • Enable Advanced Features : 空欄

上記の設定が完了後、[NEXT]を選択します。

[設定の確認]より、設定値を確認して、[FINISH]を押下します。

UAGの起動・設定

OVFテンプレートのデプロイが完了したら、新しいUAGを起動します。
起動後、コンソールはすぐに見えますが、裏で初回セットアップ等を行っているため、UAGのログイン画面が表示されるまで少し時間がかかります。

ブラウザより、以下のアドレスへアクセスし、ユーザ名・パスワードを入力してログインします。
UAG URL : https://<UAGのIPアドレス>:9443

UAGにログインしたら、[設定のインポート]-[選択]より、バックアップしたJSONファイルをインポートします。

UAGのトップページより、[手動構成]を選択し、インポートした設定が正常に設定されていることを確認します。
Horizon周りや基本的な設定周りはおおむね正常にインポートできているようです。
本環境で引き継げていない項目としては、UAGの証明書がインポートできていなかったので、再度設定を行いました。

UAG脆弱性対応

新しいUAGの基本的な設定が完了したら、脆弱性の対応を行います。
UAGにSSHまたはコンソールアクセスし、rootでログインします。
コマンドが長いため、SSH推奨です。
基本的な対応は以下のKBに記載されているコマンドを実行し暫定対応は完了です。
VMware KB87092

root@vUGA2106 [ ~ ]# sed -i 's/java /java -Dlog4j2.formatMsgNoLookups=true /' /opt/vmware/gateway/supervisor/conf/authbroker.ini

root@vUGA2106 [ ~ ]# supervisorctl update
authbroker: stopped
authbroker: updated process group

root@vUGA2106 [ ~ ]# ps -ef | grep ab-frontend
gateway   3167   817 99 03:12 ?        00:00:11 /usr/lib/jvm/zulu-8/jre/bin/java -Dlog4j2.formatMsgNoLookups=true -Dfile.encoding=UTF8 -Dport=8877 -Dlog4j.configuration=file:/opt/vmware/gateway/conf/log4j-authbroker.properties -Dspring.profiles.active=accesspoint -jar /opt/vmware/gateway/lib/ab-frontend-0.2.jar
root      3183  3086  0 03:12 pts/0    00:00:00 grep --color=auto ab-frontend

まとめ

今回は、緊急の対応としてUAGを再デプロイし、Log4jの脆弱性対応を行いました。
Horizonを使用している環境では、Connection ServerとHorizon Agentでも対応が必要となってきます。
Horizon Agentでの対応はHKLMへのキー追加のため、再起動が必要となります。
そのため、リンククローンやインスタントクローンの場合マスターイメージのプッシュ作業が必要となります。
取り急ぎ、外部との接点をはじめに対応したほうが良いと思ったので、UAGから対応を行いました。
ただ、仮想マシン側でJavaやLog4jを使用するシステムがある場合、別途調査して対応が必要になるかもしれないですね。

コメント

タイトルとURLをコピーしました