株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

Kaspersky製品ナレッジ 第56回 ~オフライン環境の定義データベース更新 Kaspersky Update Utility (Linuxで頑張る編)~

皆様、こんにちは。カスペルスキー製品担当SEの小池です。
以前ブログで、オフライン環境にインストールしたKasperskyのエンドポイント製品の定義データベースを更新する方法をご紹介いたしました。
blogs.networld.co.jp
第18回ではWindows版のKaspersky Update Utilityを用いましたが、今回はLinux版のKaspersky Update Utilityを用いた更新方法をご紹介いたします。

今回の内容は以下の通りです。
第18回の記事の内容と重複する箇所がありますので、不要であれば読み飛ばしてください。

今回の記事は以下のバージョンにて検証し、画面ショットを取得しております。
●管理サーバー
 なし
●KUU導入先
 Ubuntu 20.04.3 LTS Desktop
●保護対象OS
 CentOS 8
●保護製品
 Kaspersky Endpoint Security for Linux 11.2.0
●利用ライセンス
 Kaspersky Endpoint Security for Business - Advanced
●他
 Kaspersky Update Utility 4.0 (Linux向け)

1. Kaspersky Update Utilityとは

Kaspersky Update Utility は、サポートされているカスペルスキー製品 のアップデートを指定されたアップデート元からダウンロードするために設計されたアプリケーションです
このツールを用いることで、オフライン環境における定義データベースのアップデートや、KSC (管理サーバー) が無い環境でのアップデートストリーム軽減が可能です。
2021/12/8現在、最新版のKaspersky Update Utility (以降KUUと記載) は4.0.0.287で、Windows版とLinux版があります。

2. Linux向けKUU利用時の注意点

Kaspersky Update Utility はオフライン環境のカスペルスキー製品の強い味方ですが、2点留意すべき事項があります。
1点目は、このツールで対応している製品であっても、極端に古いバージョンの定義データベースのアップデートはできないという点です。
下の図は実際のLinux版KUUの製品選択画面ですが、製品名だけではなくバージョンも併せて指定する必要があることがわかります。
f:id:networld-blog-post:20211209210019p:plain

もし、ご利用中のKaspersky製品がこのリストの中になかったら…、問答無用でご破算でござる。
ですので、もしKUUを用いた運用をご検討なさる場合は、KUUを用いて定義データベースをダウンロードしたいカスペルスキー製品とバージョンが、KUUのリストに含まれているかを事前に確認したほうが無難かと存じます。

2点目の注意点は、少なくとも2021/12/8現在公開されているKUU Linux版 4.0.0.287については、CUIだけで利用しようとすると製品リストの更新が不完全になる可能性がある点です。
この事象は2021/12/9現在、少なくともLinux (x64) 向け "kuu4.0.0.287_x86_64_ja.tar.gz" で発生します。
そもそもこのツールはCUIでもGUIでも使用可能で、それぞれの使い方は以下のサイトに掲載されています。
使用方法(Update Utility 4.0 for Linux/FreeBSD)
コマンドラインから実行して使用する方法(Update Utility 4.0 for Linux/FreeBSD)

で。以下の画面は同じUbuntu 20.04.3 Desktop で、KUUのCUIから製品リストを更新した場合と、KUUのGUIから製品リストを更新した場合のUpdate.iniの中身です。
例としてKESLの製品リスト部分を選択していますが・・・明らかにCUIで更新した製品リストの方が、GUIで更新した製品リストより少ない!!ちょっと開発者さん呼んできてーーー!!!
f:id:networld-blog-post:20211209210230p:plain

一応この "CUIでuu-cnosole.sh -u を実行すると製品一覧の更新が不完全になる事象" を回避する方法はあります。
KUUは元々インストールが不要なツールなので、いったんGUIがあるLinuxでKUUを展開して、そこでGUIから製品一覧を更新し、その状態のKUUの資源を丸ごとCUIのみのLinuxに入れれば、CUIだけの環境でも最新の製品一覧を取得できた状態にはなります。
この状態でCUIのみのLinuxで "uu-console.sh -u" を実行すると、ちゃんとupdater.ini で有効にした製品のアップデートを取得できることを弊社で確認済です。
どうしてもCUIのみのLinuxでKUUをご利用になりたい方はこの方法で回避を試行してください。

3. 構成例

KUUを使った構成例については第18回で紹介したWindows版利用時と特に変わりはないので、割愛致します。
詳細は下記第18回のブログをご参照ください。
blogs.networld.co.jp

4. Linux版 Kaspersky Update Utilityの準備と設定

ここからは実際にLinux版KUUの準備と設定手順を紹介いたします。なお、この記事では例としてGUIがある環境で手順を紹介いたします。
まずLinux版のKUUを入手します。
KUU4 は以下のサイトから入手可能です。
ご自分のOSにマッチするプログラムをダウンロードし、KUUを導入するOSの任意の場所に格納してください。
Kaspersky Update Utility 4.x
f:id:networld-blog-post:20211209210601p:plain

今回は例として、上の図の "Linux (x64) 向け:kuu4.0.0.287_x86_64_ja.tar.gz [39.2 МB]" を利用します。

また、今回は例として以下のディレクトリ構成で設定を進めてまいります。
/home/sysadmin/デスクトップ/KUU/ ←KUUのツールを展開する場所。
/home/sysadmin/デスクトップ/Share/ ←sambaで共有する場所。
 ┣Updates/ ←KUUで取得したアップデートを格納する場所。各カスペルスキー製品から参照させる。
 ┗Temp/ ←KUUの一時フォルダ。

ダウンロードしたKUUを任意のディレクトリに展開します。
この例では /home/sysadmin/デスクトップ/KUU/ に展開しました。
f:id:networld-blog-post:20211209210706p:plain

展開した資源の中にある "uu-gui.sh" を実行します。
f:id:networld-blog-post:20211209211245p:plain

初回実行時は以下のような使用許諾書への同意画面が表示されます。
2つにチェックを入れ、[同意する] をクリックします。
f:id:networld-blog-post:20211209212229p:plain

続けてKSNに関する声明への同意画面が表示されます。
同意する場合は、チェックを入れて [同意する] をクリックします。
同意しない場合は、[同意しない] をクリックします。
f:id:networld-blog-post:20211209212253p:plain

KUUの画面が表示されます。
まずは製品リストの更新が必要なので、[開始] をクリックします。
f:id:networld-blog-post:20211209212316p:plain

正常に製品リストが更新されると、図のように [サポートされる製品のリストが更新されました] と表示されます。
次に、[製品] をクリックします。
f:id:networld-blog-post:20211209212404p:plain

製品一覧からKUU経由でアップデートを取得したい製品にチェックを入れます。
今回は例としてKESLの11.2.0.4528にチェックを入れました。
設定が終わったら、[OK] をクリックします。
f:id:networld-blog-post:20211209212430p:plain

次に [設定] をクリックします。
f:id:networld-blog-post:20211209212528p:plain

左側のセクションで [ダウンロード] を選択します。
"アップデートに使用するフォルダー" で、[フォルダーを選択] を選択します。
[アップデート保管用フォルダー] と [一時フォルダー] を任意に指定します。
なお、この [アップデート保管用フォルダー] に入るデータは、実際にオフライン環境にある各カスペルスキー製品から参照させるデータが格納されるディレクトリです。
ですので、指定するディレクトリは、できるだけわかりやすく、且つ共有可能なディレクトリにするのが便利です。
設定が終わったら、[OK] をクリックします。
f:id:networld-blog-post:20211209212558p:plain

次に、[スケジュール] をクリックします。
f:id:networld-blog-post:20211209212656p:plain

デフォルトではスケジュールは設定されておらず、手動実行となっております。
もし自動で定期的にアップデートの確認とダウンロードをしたい場合は、ここでスケジュールを設定できます。
この例では1時間ごとにアップデートを確認・ダウンロードする設定にしました。
設定が終わったら、[OK] をクリックします。
f:id:networld-blog-post:20211209212734p:plain

最後に、アップデートデータをダウンロードできるかを確認します。
[開始] をクリックします。
f:id:networld-blog-post:20211209212852p:plain

初回のダウンロードが始まります。
製品の数や言語指定の有無、環境によって異なりますが、場合によっては1日くらいかかる場合もあるので気長にお待ちください。。。
なお、2021/12/9現在、KESL 11.2.0.4528 のみで更新した場合は約20分くらいで完了しました。
完了したら、[アップデート保管用フォルダー] で指定したディレクトリ配下に"updates" 等のディレクトリが作成されていることを確認します。
(図では3つのディレクトリが作成されていますが、製品やダウンロードした回数によってディレクトリの構成が以下の通りではない場合があります。)
f:id:networld-blog-post:20211209213205p:plain

ここまでがKUUの準備と設定になります。
後続の章ではオマケとして、KUUで取得したデータを参照してKESLの定義データベースを更新する手順を紹介いたします。

5. [おまけ] スタンドアロンのKaspresky Endpoint Security for LinuxでKUUのUpdatesフォルダーを参照させる方法

せっかくなので、前の章でダウンロードしたKESL11.2.0.4528のアップデートデータを使って、オフライン環境のCentOS8にインストールしたKESL11.2.0.4528を更新する手順を紹介します。
ここでは例として、先ほどKUUを実行してアップデートデータを保管したディレクトリを共有し、その場所をKESLが参照する構成と仮定します。

まずは任意の実装方法で以下を準備しておきます。

  • KUUの[アップデート保管用フォルダー] で指定したディレクトリを共有します。
  • オフライン環境のKESLにて、KUU端末で共有したディレクトリを任意の場所にマウントさせます。

ここまで出来たら、あとはオフライン環境のKESL側の設定のみです。
まずは、前述した準備の2点目でマウントさせたディレクトリを、オフライン環境のKESLに参照させる設定をします。
オフライン環境のKESLにログインし、管理者権限があるユーザーで以下のコマンドを実行します。

# cd /opt/kaspersky/kesl/bin
# kesl-control --get-settings 6 --file /tmp/exports

上のコマンドで指定したエクスポートファイル /tmp/exports をviなどで開きます。

# vi /tmp/exports

SourceType は Custom にします。
UseKLServersWhenUnavailable、ConnectionTimeout、ApplicationUpdateMode は任意に設定して下さい。
URLについて。ここで指定するディレクトリは事前準備でKUUの共有ディレクトリをマウントしたディレクトリパスを指定してください。また、ここで指定したディレクトリの直下に "index", "updaters", "updates" ディレクトリが存在するように指定してください。
編集が終わったら保存してください。

SourceType=Custom
UseKLServersWhenUnavailable=No
ConnectionTimeout=10
ApplicationUpdateMode=DownloadOnly
[CustomSources.item_0000]
URL=<事前準備でマウントしたディレクトリ>
Enabled=Yes

f:id:networld-blog-post:20211209222935p:plain

保存後、以下のコマンドを実行して、先ほど編集した設定をKESLに反映します。

# kesl-control --set-settings 6 --file /tmp/exports

以下のコマンドを実行して、変更が反映されているかを確認します。

# kesl-control --get-settings 6
f:id:networld-blog-post:20211209223211p:plain

設定はこれで完了です。
以下のコマンドを実行してアップデートが正常に完了するかを確認します。

# kesl-control --start-task 6
f:id:networld-blog-post:20211209223252p:plain

上の図の通り、"タスクが開始されました" と出力されます
続けて以下のコマンドを実行し、"状態:停止" と表示されているかを確認します。

# kesl-control --get-task-state 6
f:id:networld-blog-post:20211209223330p:plain

”状態:開始済み" となっている場合は、しばらくたってから同じステータス確認コマンドを実行し、"状態:停止" と表示されることを確認してください。

Updateタスクでエラーが発生していないかを確認します。

# kesl-control -E --query "TaskId == '6' and  DangerLevel == 'Error'"
Updateタスクでエラーイベントが発生していない場合は、出力はありません。
何かしらの理由で失敗している場合、上のコマンドの出力結果の一番下に以下のようなイベントが出力されます。
f:id:networld-blog-post:20211209223416p:plain
イベントの発生日時を確認し、今回手動で実行したUpdateタスクが関係しているようであれば、正常にUpdateが出来ていない可能性があります。
この場合は、メーカーサポートに駆け込んでください。


今回はオフライン環境の定義データベース更新 Kaspersky Update UtilityのLinux版を紹介いたしました
CUIにはちょっと難ありですが、GUIであればWindows版と全く同じ使い方ができることが確認できました。
Kaspersky製品に限らず、エンドポイントプロテクション系の製品をオフラインで確実に使う場合は事前に情報収集と検証をお忘れなく…。
ま、Kaspersky製品ならKUUがあるので心配無用っす!

この度は最後まで記事をご覧いただき誠にありがとうございました。
記載事項へのご指摘、ご不明点、ご質問等ございましたら、以下からご連絡いただければと存じます。
https://www.networld.co.jp/product/kaspersky/

それでは次回の記事でお会いしましょう!