2017年7月5日水曜日

redmine アップロードファイルの制御

redmineがあるサーバーにてmod_securityをインストールしてから、ファイルのアップロードができない場合があります。
その理由に関して簡単に説明します。
mod_securityとは皆さんがご存知な有名OSS WAFです。
WAFとはWeb Application Firewallです。
ここではWAFについては詳しく説明はしません。
ここではmod_security.confファイルの設定に関して説明します。

1.128K以上のファイルがアップできません。

この理由はmod_security.confファイルのSecRequestBodyInMemoryLimit値が
  原因です。
  Defaultは131072 = 128Kです。128Kまではメモリにて管理しているので問題ない
  ですが128K以上になると一時保存フォルダを利用します。そのフォルダへ書く権限
  がないとエラーが起きます。

  エラー内容
  1) redmineのWEBページではInternal Server Errorエラーが起きる
  2) error_log ファイルにModSecurity: Input filter: Failed to delete temporary file: /var/lib/mod_security/20170705-221423-WVzmL4sPzhG615I03jCL0gAAAAo-request_body-aP6VqV が書かれる

 対策:SecRequestBodyInMemoryLimit大きくする。しかし、物理メモリの限界がありますので/var/lib/mod_security/のフォルダ権限をhttpdの実行ユーザーが書けるようにOWNERを変更します。

2.12.5M以上のファイルがアップできません。

1番を解決しているのにも関わらずまたエラーが起きます。
  この理由はmod_security.confファイルのSecRequestBodyLimit値が原因です。
  Defaultは13107200 = 12.5Mです。添付ファイルを含めたデータのサイズが12.5M以上の場合はできません。

  エラー内容
  1) redmineのWEBページではRequest Entity Too Largeエラーが起きます。
  2) error_log ファイルに ModSecurity: Request body (Content-Length) is larger than the configured limit (13107200).が書かれています。

 対策:SecRequestBodyLimitの値を先にredmineのファイル設定と同様にしてください

以上、ご参考ください。
    

0 件のコメント: