オープンソース

一覧へ

5. 設定詳細

本章では、設定の詳細について解説します。

5.1. zipsanitize.conf

zipsanitize.confは、本プラグインの設定ファイルです。ファイルの文字コードはUTF-8です。

zipsanitize.conf
[common]
ZipSaveDir = "/var/lib/samma/sanitaize/orginal/";
TmpDir = "/var/lib/samma/sanitaize/tmp/";
SanitizeZIPSaveDir = "/var/lib/samma/sanitaize/sanitized/";
SyslogFacility = "LOG_LOCAL0";
WebUser = "apache";

[database]
DBDriver = "sqlite"
DB = "/var/lib/samma/sanitaize/sqlite.db";

[connector]
URLPrefix = "http://example.com/zipsanitize/";

[zipsanitize]
MailSubject = "無害化を行ないました"
WarnMailSubject = "一部ファイルの無害化に失敗しました"
ErrMailSubject = "無害化に失敗しました"
MailFrom = "postmaster@example.com"
SanitizeFailedAction = "encrypt"
ZipFileMax = 1000

[sipdelete]
SaveLimit = "30";

各設定の意味は以下の通りです。

5.1.1. commonセクション

  • ZipSaveDir
    • 無害前のZIPファイルの配置パスを設定します。
  • TmpDir
    • 無害化前のZIPファイルを展開する一時ディレクトリのパスを設定します。
  • SanitizeZipSaveDir
    • 無害のZIPファイルの配置パスを設定します。
  • SyslogFacility
    • Syslogのファシリティを設定します。フォーマットはPHPのSyslogファシリティのマクロに準拠します。
  • WebUser
    • WEBサーバの実行ユーザを設定します。

5.1.2. databaseセクション

  • DBDriver
    • sqliteを指定します。
  • DB
    • SQLiteデータベースのファイルパスを設定します。

5.1.3. connectorセクション

  • URLPrefix
    • Z無害化WEBインターフェースのURLを設定します。

5.1.4. zipsanitizeセクション

  • MailSubject
    • 無害化後に送信するメールの件名を設定します
  • WarnMailSubject
    • 一部ファイルの無害化に失敗した場合に送信する警告メールの件名を設定します
  • ErrMailSubject
    • コマンドの失敗など致命的なエラーの場合に送信するエラーメールの件名を設定します
  • MialFrom
    • メールのFromを設定します
  • SanitizeFailedAction
    • 無害化に失敗した場合の挙動を設定します。encryptまたはpassを設定できます。encryptの場合は、無害化に失敗したZIPをランダムパスワードで再圧縮して送信します。ランダムパスワードは、ログに出力します。passの場合は、該当ファイルを無害化せずに送信します。
  • ZipFileMax
    • ZIPファイルに格納されているファイル数の上限値を設定します。上限に達している場合は、無害化処理が必ず失敗します。

5.1.5. zipdeleteセクション

  • SaveLimit
    • 無害化済みのデータを削除するまでの日数を設定します。

5.2. rule.conf

rule.confは、ZIPファイルに含まれるファイルを無害化するルールを設定するファイルです。ファイルの文字コードはUTF-8です。

rule.conf(例1)
###########################################################
# suffix coverted command
###########################################################
#
# Example of converting html to txt
# html txt /bin/python-html2text
#
# Example of registering multiple extensions
# htm,xhtml txt/bin/python-html2text
#
# Example of emptying .exe file
# exe - /bin/echo
#
# Examples of giving command options
# png.jpg /bin/convert - jpg:-
#
# In the case of unexpected extensions, an example of always failing conversion
# * - /bin/false

* - none

rule.confの書式は以下の通りです。

  • 一行あたり空白文字(スペース・タブ文字)区切りで3カラム設定します。
  • 1カラム目は、無害化対策のファイル拡張子です
  • 2カラム目は、無害化後のファイル拡張子です
  • 3カラム目は、無害化を行うコマンドです。3カラム目以降はコマンドのオプションとみなされます。
  • #から始まる行はコメント行とみなされます。

無害化対象のファイル拡張子の仕様は以下の通りです。

  • ファイル拡張子をASCII文字で指定します。
  • 「file.txt」をマッチさせたい場合、txtを設定します。つまりドットは不要です。
  • 1行目にカンマ区切りで複数の拡張子を設定することができます。
  • *を指定することで、他のルールでマッチしなかったファイルを処理するルールになります。
  • 拡張子は大文字小文字区別なく一致するように処理されます。
  • 同じ拡張子を複数設定することはできません。

無害化後のファイル拡張子の仕様は以下の通りです。

  • 無害化コマンドの実行に成功した場合のみ、拡張子の変更が行われます。
  • -を指定すると拡張子の変更を行いません。

無害化コマンドの仕様は以下の通りです。

  • 絶対パスでコマンドを指定します。
  • 変換の結果は、コマンド終了コードが0の場合、成功とみなされます。0以外の場合は失敗とみなされます。
  • データを変換する場合、標準入力でデータを受け取り、変換結果を標準出力に出力できる必要があります。
  • 特定のデータに置き換える場合は、標準出力に出力することでファイルの内容は置き換えが可能です。

5.3. メールテンプレート

5.3.1. URL通知テキストファイルテンプレート

ZIP無害化コネクタが、宛先のユーザにURLを通知する場合に利用する添付ファイルのテンプレートです。テンプレート名は「url.tmpl」です。ファイルの文字コードはUTF-8です。以下は利用可能なタグ文字です。

  • {$file}・・・添付ファイルの名前
  • {$url}・・・WEBインターフェースのURL
rule.conf(例2)
本メールに添付されていたZIPファイルを参照するためには、以下のURLに接続してください。

添付ファイル名:{$file}
URL:{$url}

5.3.2. 無害化通知メールテンプレート

無害化後に送信するメールのテンプレートです。テンプレート名は「mail.tmpl」です。ファイルの文字コードはUTF-8です。

rule.conf(例3)
ZIPファイルを無害化しました.
ZIPファイルに含まれるファイルが自動的に変換されています。

参照できないファイルがある場合は、管理者にお問い合わせください。
なお本メールに返信を行っても対応が行えません。ご注意ください。

5.3.3. 無害化警告メールテンプレート

無害化が一部失敗した場合に送信するメールのテンプレートです。テンプレート名は「mailwarn.tmpl」です。 以下は利用可能なタグ文字です。

  • $errors・・・無害化に失敗したファイルの一覧
rule.conf(例4)
ZIPファイルを無害化しましたが、一部ファイルの無害化に失敗しました。
添付されているZIPファイルには、無害化されていないファイルが含まれています。
注意して展開してください。

[無害化に失敗したファイル一覧]
{$errors}

参照できないファイルがある場合は、管理者にお問い合わせください。
なお本メールに返信を行っても対応が行えません。ご注意ください。

5.3.4. 無害化エラーメールテンプレート

システムに致命的なエラーが発生した場合に送信するメールのテンプレートです。テンプレート名は「mailerror.tmpl」です。ファイルの文字コードはUTF-8です。 以下は利用可能なタグです。

  • {$hash}・・・処理に失敗したデータのハッシュ値
rule.conf(例5)
ZIPファイルを無害化に失波しました.

プロセスキーワード:{$hash}

管理者にお問い合わせください。
なお本メールに返信を行っても対応が行えません。ご注意ください。
一覧へ