Ankündigung

Einklappen
Keine Ankündigung bisher.

[Tutorial] Einbinden von PHPIDS

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Tutorial] Einbinden von PHPIDS

    Hallo Community,

    Das nachfolgende Tutorial beschreibt das Einbinden des IDS-Systems PHPIDS. PHPIDS ist ein in PHP geschriebenes IDS-System, welches sich komfortabel in eigene Programme (wie z.B. Contrexx) einbinden lässt.

    1. Schreiben eines Logfiles

    1. Ladet das ZIP im Anhang herunter. Dieses enthält alle benötigten Dateien von PHPIDS in der Version 0.6.
    2. Im ZIP befindet sich ein Verzeichnis _phpids. Entpackt dieses in ein lokales Verzeichnis.
    3. Ladet den Ordner _phpids per FTP in das Hauptverzeichnis eurer Contrexx-Installation.
    4. Stellt sicher, dass der Ordner _phpids/IDS/tmp/ mit allen darin enthaltenen Dateien Vollzugriff (= CHMOD 777) erhält. In die Datei phpids_log.txt, welche sich in diesem Ordner befindet, werden anschliessend die Sicherheitsmeldungen geschrieben.
    5. Nun ist noch das Einbinden von PHPIDS durch eine Anpassung an der Contrexx-Datei index.php, welche sich im Hauptverzeichnis befindet, nötig. Dazu fügt ihr, beginnend ab Zeile 2, folgende Zeilen in die Datei ein:

      PHP-Code:
      //PHPIDS: Start ---------------------------------------------------------------
      set_include_path(get_include_path().PATH_SEPARATOR.'_phpids/');

      require_once 
      'IDS/Init.php';

      $arrParameters = array(    'REQUEST'    => $_REQUEST,
                              
      'GET'        => $_GET,
                              
      'POST'        => $_POST,
                              
      'COOKIE'     => $_COOKIE
      );

      $objIDSInit IDS_Init::init(dirname(__FILE__).'/_phpids/IDS/Config/Config.ini');
      $objIDSInit->config['General']['base_path']     = dirname(__FILE__).'/_phpids/IDS/';
      $objIDSInit->config['General']['use_base_path'] = true;
      $objIDSInit->config['Caching']['caching']         = 'none';

      $objIDS       = new IDS_Monitor($arrParameters$objIDSInit);
      $objIDSResult $objIDS->run();

      if (!
      $objIDSResult->isEmpty()) {
          require_once 
      'IDS/Log/File.php';
          require_once 
      'IDS/Log/Composite.php';

          
      $compositeLog = new IDS_Log_Composite();
          
      $compositeLog->addLogger(IDS_Log_File::getInstance($objIDSInit));
          
      $compositeLog->execute($objIDSResult);
      }
      //PHPIDS: End ----------------------------------------------------------------- 
      Wichtig: Die Zeilen dürfen wirklich erst ab Zeile 2 eingefügt werden. Stellt also sicher, dass sich das öffnende PHP-Tag (<?php) auf Zeile 1 befindet!
    6. Falls ihr alles richtig gemacht habt, solltet das System bereits lauffähig sein. Jegliche "bösartigen" Angriffe auf das System werden in der Datei _phpids/IDS/tmp/phpids_log.txt protokolliert. Zur Überprüfung könnt ihr mal einen Angriff simulieren, indem ihr folgende Webseite aufruft:

      Code:
      http://www.deine-seite.ch/index.php?test="><script>eval(window.name)</script>">No attack detected - click for an example attack</a>
      In der Logdatei sollte dann folgende Zeile eingetragen worden sein:

      Code:
      "127.0.0.1",2009-05-10T19:00:12+02:00,72,"xss csrf id rfe lfi sqli","REQUEST.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E%5C%22%3ENo%20attack%20detected%20-%20click%20for%20an%20example%20attack%3C%2Fa%3E GET.test=%5C%22%3E%3Cscript%3Eeval%28window.name%29%3C%2Fscript%3E%5C%22%3ENo%20attack%20detected%20-%20click%20for%20an%20example%20attack%3C%2Fa%3E","%2F_contrexx%2F2.1%2F%3Ftest%3D%2522%253E%253Cscript%253Eeval%28window.name%29%253C%2Fscript%253E%2522%253ENo%2520attack%2520detected%2520-%2520click%2520for%2520an%2520example%2520attack%253C%2Fa%253E","80.74.152.30"



    2. Versenden eines EMails

    Das Schreiben eines Logfiles ist gut, bequemer ist es aber, sich direkt per EMail über neue Angriffe benachrichten zu lassen. Auch diese Funktion ist in PHPIDS bereits integriert. Zur Aktivierung der EMail-Funktion geht ihr wie folgt vor:
    1. Ihr ändert die letzten Zeilen aus Schritt #6 (Veränderung der index.php) wie folgt ab:

      PHP-Code:
      //Vorher
      if (!$objIDSResult->isEmpty()) {
          require_once 
      'IDS/Log/File.php';
          require_once 
      'IDS/Log/Composite.php';

          
      $compositeLog = new IDS_Log_Composite();
          
      $compositeLog->addLogger(IDS_Log_File::getInstance($objIDSInit));
          
      $compositeLog->execute($objIDSResult);
      }

      //Nachher
      if (!$objIDSResult->isEmpty()) {
          require_once 
      'IDS/Log/File.php';
          require_once 
      'IDS/Log/Email.php';
          require_once 
      'IDS/Log/Composite.php';

          
      $compositeLog = new IDS_Log_Composite();
          
      $compositeLog->addLogger(    IDS_Log_File::getInstance($objIDSInit),
                                      
      IDS_Log_Email::getInstance($objIDSInit));
          
      $compositeLog->execute($objIDSResult);

    2. In der Datei _phpids/IDS/Config/config.ini könnt ihr auf ~ Zeile 50 die Einstellungen der EMail festlegen:

      Code:
          recipients[]    = [email protected]
          subject         = "PHPIDS Warnung"
          header          = "From: PHPIDS <[email protected]>"
          envelope        = ""
          safemode        = true
          urlencode       = true
          allowed_rate    = 15
      In "Recipients" könnt ihr die Empfängeradresse(n), bei "Subject" den Titel und bei "Header" die Absenderadresse festlegen. Es ist sehr zu empfehlen hier Werte zu setzen, welche nicht direkt zur Aktivierung eines möglichen Spamfilters führen!
    3. Das sollte es bereits gewesen sein. Kommt kein Email an, so empfiehlt es sich zuerst, den EMail-Spamfilter zu überprüfen. Meine EMails landeten zuerst auch dort .

    Beste Grüsse
    Thomas
    Angehängte Dateien
    Zuletzt geändert von kaelin; 11.05.2009, 18:17.
    Forenregeln | Contrexx-Wiki | Contrexx-Themes

  • #2
    coole Sacha

    Hallo Thomas

    Funtioniert einwandfrei

    Gruss
    Markus
    Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

    http://www.maesch.ch
    -be different-

    http://www.klaerli.ch


    Contrexx 2.2.6 ->vermurkst :-(

    Kommentar


    • #3
      Vielen Dank Thomas, super Vorschlag, das muss ich mir mal genau anschauen! .
      Freundliche Grüsse

      Manuel Winiger

      Schlatter AG

      Kommentar


      • #4
        Tutorial ergänzt um den Teil "Versenden von EMails". :-)
        Forenregeln | Contrexx-Wiki | Contrexx-Themes

        Kommentar


        • #5
          Danke

          du bist der Beste Thomas danke, funktioniert tadellos
          Zuletzt geändert von mackusi; 13.05.2009, 10:11. Grund: Ergänzung
          Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

          http://www.maesch.ch
          -be different-

          http://www.klaerli.ch


          Contrexx 2.2.6 ->vermurkst :-(

          Kommentar


          • #6
            uiiiiiiiii seit dem ich dies in betrieb genommen habe, klingelts immer wieder an der HP-Haustür.

            Gruss
            Markus
            Phantasie ist wichtiger als Wissen, denn Wissen ist begrenzt.

            http://www.maesch.ch
            -be different-

            http://www.klaerli.ch


            Contrexx 2.2.6 ->vermurkst :-(

            Kommentar


            • #7
              Zitat von mackusi Beitrag anzeigen
              uiiiiiiiii seit dem ich dies in betrieb genommen habe, klingelts immer wieder an der HP-Haustür.
              Muss natürlich nicht jeder Eintrag auch ein wirklicher Angriff auf das System sein. Dennoch interessant zu sehen, was da tagein tagaus alles auf die Webseite los geschickt wird.
              Forenregeln | Contrexx-Wiki | Contrexx-Themes

              Kommentar


              • #8
                Genial ! ich bräuchte GENAU DAS !

                Fantastisch dass es das gibt, so etwas habe ich überall gesucht, da ich wirklich verdammt viele Besucher am Tag habe und leider auch sehr viele Idioten dabei.

                Ganz großes Lob erst mal an Thomas !

                Aber :-(.....kenne mich leider viel zu wenig mit diesem Thema aus.
                Wäre von dem Contrexx Team vielleicht jemand so nett und würde dies natürlich gegen Bezahlung bei uns einrichten können?

                Beste Grüße

                Christian

                Kommentar


                • #9
                  phpids in 2.1.3

                  Hi,

                  hab die oben vorgenommenen Änderungen in der index.php von 2.1.3 vorgenommen. Bekomme dann einen http 500 Fehler.

                  Muss ich für die Version 2.1.3 noch einige andere Einstellungen/Änderungen vornehmen?

                  Gruß

                  Diewtmar

                  Kommentar

                  Lädt...
                  X