ラベル mod_security の投稿を表示しています。 すべての投稿を表示
ラベル mod_security の投稿を表示しています。 すべての投稿を表示

2017年7月10日月曜日

redmine 업로드 파일 조절

redmine이 있는 서버에 mod_security를 인스톨 하게 되면, 갑자기 큰 파일이 upload가 되지 않는 경우가 잇습니다.
그 이유를 간단하게 설명 해보려 합니다.
mod_security는 여러분들이 알고 계시는 유명한 OSS WAF입니다.
여기서는 WAF의 자세한 이야기는 하지 않도록 하겠습니다.
파일가 upload가 되지 않을 경우 mod_security.conf파일을 설정하여 고치는 방법을 설명하겠습니다.

1.128K이상의 파일이 upload안되는 경우.

이경우는 modsecury.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의 첨부 파일 값과 같이 하거나 더 크게 해 주십시요.

이상 입니다.

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のファイル設定と同様にしてください

以上、ご参考ください。