PHPIDS侵入検出システムインストール使用ノート


PHPIDS侵入検出システムインストール使用ノート
導入要件:
PHP5.1.2 or better
Apache
mod_rewrite
インストール手順:
1、phpidsをダウンロードするhttp://demo.phpids.com
2、phpidsをWebサイトのルートディレクトリに解凍する
3、ルートディレクトリに解凍できない場合mod_を使用するrewrite
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/phpids(.*)
RewriteRule ^(.+)$ - [F]
使用の構成:
1、config/configを編集する.ini.phpカスタム構成. 

  
  
  
  
  1. [General] 
  2.     filter_type = xml 
  3.     use_base_path = false 
  4.     filter_path = default_filter.xml 
  5.     tmp_path  = tmp 
  6.     scan_keys  = false 
  7.     HTML_Purifier_Path = IDS/vendors/htmlpurifier/HTMLPurifier.auto.php 
  8.     HTML_Purifier_Cache = IDS/vendors/htmlpurifier/HTMLPurifier/DefinitionCache/Serializer 
  9.     html[] = __wysiwyg 
  10.     json[]  = __jsondata 
  11.     exceptions[]  = __utmz 
  12.     exceptions[] = __utmc 
  13.     min_php_version = 5.1.2 
  14. [Logging] 
  15.     path = tmp/phpids_log.txt 
  16.     recipients[] = [email protected] 
  17.     subject = "PHPIDS detected an intrusion attempt!" 
  18.     header = "From: <PHPIDS> [email protected]" 
  19.     envelope = "" 
  20.     safemode = true 
  21.     allowed_rate = 15 
  22.  
  23. [Caching] 
  24.     caching = file 
  25.     expiration_time = 600 
  26.     path = tmp/default_filter.cache 

2、phpidsを有効にすると、phpidsのロードスクリプトを個別のphpファイルに書き込み、phpを通過することができる.iniのauto_prepend_fileオプションは自動的にロードされます.
ids.php 

  
  
  
  
  1. <?php 
  2.  
  3. // set the include path properly for PHPIDS 
  4. set_include_path( 
  5.     get_include_path() 
  6.     . PATH_SEPARATOR 
  7.     . 'phpids/lib/' 
  8. ); 
  9.  
  10. if (!session_id()) { 
  11.     session_start(); 
  12.  
  13. require_once 'IDS/Init.php'
  14.  
  15. try { 
  16.     $request = array
  17.       'REQUEST' => $_REQUEST
  18.       'GET' => $_GET
  19.       'POST' => $_POST
  20.       'COOKIE' => $_COOKIE 
  21.     ); 
  22.     $init = IDS_Init::init(dirname(__FILE__) . '/phpids/lib/IDS/Config/Config.ini.php'); 
  23.     $f=$init->config['General']['base_path'] = dirname(__FILE__) . '/phpids/lib/IDS/'
  24.     echo $f
  25.     $init->config['General']['use_base_path'] = true; 
  26.     $init->config['Caching']['caching'] = 'file'
  27.     $ids = new IDS_Monitor($request$init); 
  28.     $result = $ids->run(); 
  29.     if (!$result->isEmpty()) { 
  30.         require_once 'IDS/Log/File.php'
  31.         require_once 'IDS/Log/Email.php'
  32.         require_once 'IDS/Log/Composite.php'
  33.         $compositeLog = new IDS_Log_Composite(); 
  34.         $compositeLog->addLogger(IDS_Log_Email::getInstance($init),IDS_Log_File::getInstance($init)); 
  35.         $compositeLog->execute($result); 
  36.     } 
  37. } catch (Exception $e) { 
  38.    //this shouldn't happen and if it does you don't want the notification public. 
  39. ?> 


2、phpを編集する.ini、以下の内容を追加します.

   
   
   
   
  1. auto_prepend_file /full/path/to/ids.php