null Liferay 7のドキュメントライブラリでウイルスチェックを行う

こんにちは。おおたにです。

 

Liferayにはドキュメントライブラリというファイル管理機能があり、ファイルをアップロードして管理し、必要なWebページ上で公開することができます(Liferayの画面上では「ドキュメントとメディア」という表記になっています)。今回はLiferay 7のドキュメントライブラリでアップロードしたファイルのウイルスチェックを行う方法を紹介したいと思います。

 

Liferayが対応するアンチウイルスエンジン

まず、Liferayが標準で対応しているアンチウイルスエンジンは、オープンソースのアンチウイルスエンジンであるClamAVです。ClamAVは主にサーバサイドでのウイルスチェックツールとして実績があるUnix向けのアンチウイルスエンジンですが、Windows等他のOS向けの移植も行われています。

このClamAVを使ったウイルスチェックですが、Liferayのバージョンによってその方法が異なります。

  • ClamAVデーモン(clamd)を利用したリモートスキャン方式 : Liferay Portal 7.3 GA7以降(コミュニティ版)、Liferay DXP 7.3 SP1以降、Liferay DXP 7.2 FP9以降で利用可能
  • ClamAVスキャンコマンド(clamscan)を利用した都度スキャン方式 : 上記以前のバージョンで利用可能

今回は、前者のClamAVデーモン(clamd)を利用したリモートスキャン方式を紹介します。後者については弊社ブログ記事「LiferayのDocuments and Mediaポートレットでウイルススキャンを行う」で紹介していますのでご参照ください。

 

clamdを利用したリモートスキャン設定の流れ

では、clamdを利用したリモートスキャンの設定方法を見ていきましょう。大きく分けて2つの設定が必要です。

  1. clamdの導入
  2. Liferayのclamd連携設定

なお、clamdを導入するサーバはLiferayサーバと同一でも別サーバでも構いません。同一サーバに導入する場合はclamd連携時のIPアドレスを127.0.0.1とすればよいだけです。

 

clamdを導入する

まずはclamdを導入します。CentOSへはEPELリポジトリから導入できるのでその手の記事を参考にしてください。今回は手っ取り早くdockerでclamdが動作するコンテナを用意します。こちらのdocker imageを使うと簡単にセットアップできます。

 

1. 以下のコマンドでコンテナを生成・起動します。clamdはデフォルトで3310番ポートを使うので、それをホストの3310番ポートに公開します。

$ docker run -d -p 3310:3310 mkodockx/docker-clamav:alpine

2. 以下のコマンドで疎通確認します。ncコマンドでPINGと送信し、PONGと返ってくればOKです。WindowsであればWSLを使うかtelnetコマンドを代用することで確認できます。

$ echo "PING" | nc localhost 3310
PONG

 

Liferayでclamd連携を設定する

続いて、Liferayの設定を行います。一部設定の反映にはLiferayの再起動が必要になります。

 

1. <LIFERAY_HOME>/portal-ext.propertiesをテキストエディタで開いて以下の設定を追加し、Liferayを再起動します。

dl.store.antivirus.enabled=true

2. Liferayに管理者でログインし、「メニューを開く」アイコン  -> 「コントロールパネル」 -> 「システム設定」 -> 「アンチウイルス」をクリックします。

3. 「ホスト名またはIPアドレス」にclamdのサーバのIPアドレス、ポートにclamdのポート番号を入力します。今回はdockerでローカルホストの3310番にclamdを公開しているので以下のようにIPアドレス127.0.0.1、ポート3310番と設定します。これで「更新」ボタンを押せば設定完了です。

 

動作確認してみる

設定が終わったら動作確認してみましょう。

 

1. ローカルPCのアンチウイルスソフトを停止します。停止しないと、テスト用のファイルを用意したとたん検疫されてしまうので…

2. テスト用ウイルスEICARを入手します。こちらこちらからダウンロードするか、テキストエディタ等でファイルを作成します。なお、このファイルからはEICAR-TEST-FILEというウイルスが検出されますが、あくまでテスト用なので無害です。

3. サイトに戻り、「メニュー」アイコン  -> 「コンテンツ」 -> 「ドキュメントとメディア」に移動し、「新規作成」アイコン  -> 「ファイルアップロード」をクリックします。

4. 先ほど入手したテスト用ウイルスファイルを選択して「公開」をクリックします。

以下のように「ファイル内にウィルスが検出されました。」と表示されてファイルアップロードに失敗すれば、動作確認OKです。

 

今回の記事は以上です。Liferay公式のドキュメントにも記載がありますので、こちらも併せてご参照ください。

RANKING
2021.1.08
2020.12.28
2020.12.01
2020.10.30
2020.12.18