



Next: 4. SaMMA ZIP無害化プラグインの動作 Up: SaMMA ZIP無害化プラグイン Previous: 2. SaMMA ZIP無害化プラグインを利用するために
- 3.1 ZIP無害化プラグインの入手と展開
- 3.2 ZIP無害化プラグインの設定
- 3.3 初期化
- 3.4 WEBサーバの設定変更
- 3.5 SaMMAの設定変更
- 3.6 ZIP無害化プラグインの無害化ルールの設定
3. SaMMA ZIP無害化プラグインのインストール
本章では、ZIP無害化プラグインのインストール・設定方法について解説します。
3.1 ZIP無害化プラグインの入手と展開
ZIP無害化プラグインは、OSDNのSaMMAプロジェクトのダウンロードページから入手することができます。
http://osdn.jp/projects/samma/
以下のファイルをダウンロードしてください。
zipsanitize-version.tar.gz
ダウンロード後、ZIP無害化プラグインを展開します。
以下は、/usr/local/配下にZIP無害化プラグインのアーカイブを展開する例です。
# tar xzf zipsanitize-*.tar.gz -C /usr/local |
上記のように展開した場合、展開後のディレクトリ構成は表のようになります。
本マニュアルでは、これを前提に解説を進めます。
ディレクトリ構成
ディレクトリ/ファイル名 | 解説 |
/usr/local/zipsanitize | プログラムのベースディレクトリ |
/usr/local/zipsanitize/public | 公開ディレクトリ |
/usr/local/zipsanitize/config | 設定ディレクトリ |
/usr/local/zipsanitize/tmpl | 画面/メールテンプレートディレクトリ |
/usr/local/zipsanitize/class | ライブラリディレクトリ |
/usr/local/zipsanitize/bin | 実行ファイル格納ディレクトリ |
3.2 ZIP無害化プラグインの設定
ZIP無害化プラグインの設定を行ないます。設定ファイルは以下のパスに存在しています。
/usr/local/zipsanitize/config/zipsanitize.conf |
下記は設定例です。
設定例
[common] ZipSaveDir = "/var/lib/samma/sanitaize/original/"; 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 [zipdelete] SaveLimit = "30"; |
各設定の意味は以下の通りです。
commonセクション
項目名 | 解説 |
ZipSaveDir | 無害前のZIPファイルの配置パスを設定します。 |
TmpDir | 無害化前のZIPファイルを展開する一時ディレクトリのパスを設定します。 |
SanitizeZipSaveDir | 無害のZIPファイルの配置パスを設定します。 |
SyslogFacility | Syslogのファシリティを設定します。 フォーマットはPHPのSyslogファシリティのマクロに準拠します。 |
WebUser | WEBサーバの実行ユーザを設定します。 |
databaseセクション
項目名 | 解説 |
DBDriver | sqliteを指定します。 |
DB | SQLiteデータベースのファイルパスを設定します。 |
connectorセクション
項目名 | 解説 |
URLPrefix | ZIP無害化WEBインタフェースのURLを設定します。 |
zipsanitizeセクション
項目名 | 解説 |
MailSubject | 無害化後に送信するメールの件名を設定します |
WarnMailSubject | 一部ファイルの無害化に失敗した場合に送信する警告メールの件名を設定します |
ErrMailSubject | コマンドの失敗など致命的なエラーの場合に送信するエラーメールの件名を設定します |
MailFrom | メールのFromを設定します |
SanitizeFailedAction | 無害化に失敗した場合の挙動を設定します。encryptまたはpassを設定できます。 encryptの場合は、無害化に失敗したZIPをランダムパスワードで再圧縮して送信します。ランダムパスワードは、ログに出力します。passの場合は、該当ファイルを無害化せずに送信します。 |
ZipFileMax | ZIPファイルに格納されているファイル数の上限値を設定します。 上限に達している場合は、無害化処理が必ず失敗します。 |
zipdeleteセクション
項目名 | 解説 |
SaveLimit | 無害化済みのデータを削除するまでの日数を設定します。 |
3.3 初期化
ZIP無害化プラグインが利用するディレクトリやデータベースの初期化を行ないます。 初期化は、zsctrlコマンドを利用して行ないます。実行後、設定ファイルに設定したディレクトリやデータベースファイルが作成されていれば完了です。
初期化例
# /usr/local/zipsanitize/bin/zsctrl init |
3.4 WEBサーバの設定変更
ZIP無害化プラグインのWEBインタフェースを参照するための設定を行ないます。 本手順ではApache HTTP ServerのAliasディレクティブを利用します。 なおアクセス制限の設定は、利用する環境に合わせて設定を行ってください。
設定例
# vi /etc/httpd/conf.d/zipsanitize.conf Alias zipsanitize "/usr/local/zipsanitize/public" <Directory "/usr/local/zipsanitize/public"> Require all granted </Directory> |
設定後、WEBサーバをリロードします。
# systemctl reload httpd.service |
3.5 SaMMAの設定変更
SaMMAのharmless.confに設定を行ないます。 以下は、Content-Typeが「application/x-zip-compressed」や「application/zip」の 添付ファイルが存在する場合に、ZIP無害化コネクタにデータを渡す設定です。
harmless.conf設定例
application/x-zip-compressed text/plain - /usr/local/zipsanitaize/bin/zipsanitize_connector application/zip text/plain - /usr/local/zipsanitaize/bin/zipsanitize_connector |
設定後、SaMMAを再起動します。
# systemctl restart samma.service |
3.6 ZIP無害化プラグインの無害化ルールの設定
最後にZIP無害化プラグインの無害化ルールを設定します。 rule.confに設定を行ないます。 以下はhtmlファイルをpython-html2textコマンドでtext形式に変換する例です。
rule.conf
############################################################################### # suffix covert_ext command ############################################################################### html txt /bin/python-html2text * - none |
rule.confの書式は以下の通りです。
- 一行あたり空白文字(スペース・タブ文字)区切りで3カラム設定します。
- 1カラム目は、無害化対象のファイル拡張子です
- 2カラム目は、無害化後のファイル拡張子です
- 3カラム目は、無害化を行うコマンドです。3カラム目以降はコマンドのオプションとみなされます。
- #から始まる行はコメント行とみなされます。
無害化対象のファイル拡張子の仕様は以下の通りです。
- ファイル拡張子をASCII文字で指定します。
- 「file.txt」をマッチさせたい場合、txtを設定します。つまりドットは不要です。
- 1行にカンマ区切りで複数の拡張子を設定することができます。
- *を指定することで、他のルールでマッチしなかったファイルを処理するルールになります。
- 拡張子は大文字小文字区別なく一致するように処理されます。
- 同じ拡張子を複数設定することはできません。
無害化後のファイル拡張子の仕様は以下の通りです。
- 無害化コマンドの実行に成功した場合のみ、拡張子の変更が行われます
- -を指定すると拡張子の変更を行ないません。
無害化コマンドの仕様は以下の通りです。
- 絶対パスでコマンドを指定します。
- 変換の結果は、コマンドの終了コードが0の場合、成功とみなされます。0以外の場合は失敗とみなされます。
- データを変換する場合、標準入力でデータを受け取り、変換結果を標準出力に出力できる必要があります。
- 特定のデータに置き換える場合は、標準出力に出力することでファイルの内容は置き換えが可能です。
以上でインストールは完了です。




Next: 4. SaMMA ZIP無害化プラグインの動作 Up: SaMMA ZIP無害化プラグイン Previous: 2. SaMMA ZIP無害化プラグインを利用するために
2020年8月18日