Seite 1 von 15

[Release] Security Suite IP Logger

Verfasst: 28.06.2003 08:29
von Dwing
Hier ist die RC1 vom neuen IP Logger.

Wieso RC
]RC1 nur weil ich noch wissen will wie er unter stark besuchten Boards läuft. d.h. dass er auf einem normalbesuchten Board schonmal sehr gut läuft. Ich hatte nur keine Möglichkeit das ganze auf einem stark besuchten Board zu testen.

Features
+ loggt Zugriffe auf das Board
+ auf Geschwindigkeit optimiertes loggen
+ erkennt automatisch ob das Board von einer Suchmaschine gespidert wurde und gibt eine entsprechende Nachricht aus. (im Moment nicht mit dem MSNBOT)
+ loggt IP, Zeit, Browser, Ports, Via
+ Komprimieren des logfile
+ loggen kann aktiviert/deaktiviert werden
+ Zeitform kann fetgelegt werden
+ Anzahl der Einträge pro Seite kann festgelegt werden
+ Export des Logfiles auf den eigenen PC; wird übersichtlich als TXT oder pdf formatiert (kommt im nächsten Release)

Download
Bisher nur hier: http://developer.berlios.de/project/sho ... se_id=1108
Bitte das File nicht mirroren ohne mich gefragt zu haben.

Wäre schön wenn 2-3 den Logger auf ihrem Board testen würden.

Einfach die Ergebnisse dann hier posten.

Verfasst: 28.06.2003 09:23
von AWSW
Hallo Dwing,
eingebaut habe ich den MOD noch nicht, aber in der Anleitung ist mir schon mal eine kleine Installationshilfe eingefallen:

Anstatt der Methode über den phpMyAdmin, wo man den Prefix noch anpassen müsste:
#
#-----[ SQL ]------------------------------------------
#
INSERT INTO `phpbb_config` (`config_name`, `config_value`) VALUES ('logger_date', 'd.m.Y - H:i:s');
INSERT INTO `phpbb_config` (`config_name`, `config_value`) VALUES ('logger_log', '1');
INSERT INTO `phpbb_config` (`config_name`, `config_value`) VALUES ('logger_host', '0');
INSERT INTO `phpbb_config` (`config_name`, `config_value`) VALUES ('logger_num', '50');
hab ich Dir schnell mal einen Installer gebastelt, der das übernimmt: "db_install.php"
<?php
define('IN_PHPBB', 1);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'config.'.$phpEx);
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/constants.'.$phpEx);
include($phpbb_root_path . 'includes/db.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

//
//
// Restrict to members:
if( !$userdata['session_logged_in'] )
{
header("Location: " . append_sid("login.$phpEx?redirect=db_install.$phpEx", true));
exit;
}
//
//

if ( $userdata['user_level'] == ADMIN )
{
}
else
{
message_die(GENERAL_MESSAGE, $lang['Not_Authorised'], $lang['Not_Authorised']);
exit;
}

echo '<html>
<head>
<title>SQL-DB-Installer</title>
</head>
<body>
<h1>SQL-DB-Installer</h1>
<hr />';
if (!isset($HTTP_GET_VARS['install'])) {
echo '<a href="?install=1">Bitte hier klicken</a>';
}
else {
$queries = array(

"INSERT INTO " . $table_prefix . "config (`config_name`, `config_value`) VALUES ('logger_date', 'd.m.Y - H:i:s')",
"INSERT INTO " . $table_prefix . "config (`config_name`, `config_value`) VALUES ('logger_log', '1')",
"INSERT INTO " . $table_prefix . "config (`config_name`, `config_value`) VALUES ('logger_host', '0')",
"INSERT INTO " . $table_prefix . "config (`config_name`, `config_value`) VALUES ('logger_num', '50')",

);

$success = true;
foreach($queries as $query) {
if (!$db->sql_query($query)) {
echo 'Es ist ein Fehler aufgetreten ! Änderung nicht erfolgreich !<br /><br />';
echo mysql_error();
$success = false;
break;
}
}
if ($success) {
echo 'DB-Änderung wurde erfolgreich ausgeführt. Du solltest diesen SQL-DB-Installer nun umgehend löschen !';
}
}
?>

Verfasst: 28.06.2003 09:30
von AWSW
.... da ist was doppelt drin in der Anleitung ;)

Testen werde ich den MOD wohl nicht, da ich kein PHP4 nutze AFAIK :roll:
#
#-----[ OPEN ]------------------------------------------
#
index.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

#
#-----[ AFTER, ADD]------------------------------------------
#
//
// Start des IP logger
// Bei define wird die Aktion festgelegt
//
define('LOG_ACTION', 'Viewed Forum Index');

include('iplogger.php');


#
#-----[ OPEN ]------------------------------------------
#
index.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

#
#-----[ AFTER, ADD]------------------------------------------
#
//
// Start des IP logger
// Bei define wird die Aktion festgelegt
//
define('LOG_ACTION', 'Forum Index geöffnet);

include('iplogger.php');

Verfasst: 28.06.2003 09:35
von Dwing
hmm, danke fürs feedback.
Sollte auch ohne php4 laufen.

Zumal ich denke, dass jeder Webserver inzwischen mit php4 läuft

Verfasst: 28.06.2003 10:00
von AWSW
Hallo,
hab es mal lokal installiert...

In der Anleitung fehlt noch ein '
#
#-----[ OPEN ]------------------------------------------
#
index.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

#
#-----[ AFTER, ADD]------------------------------------------
#
//
// Start des IP logger
// Bei define wird die Aktion festgelegt
//
define('LOG_ACTION', 'Forum Index geöffnet');
include('iplogger.php');
Was ist denn der Unterschied zwischen den Menüpunkten:


IP Logger, IP Logger MKB und IP Logger OPT - Da öffnet sich bei mir immer die gleiche Übersicht ?!?:
http://www.awsw.de/Forum/upload/dwing_1.gif

Der Link "Show Via" bringt bei mir nur eine leere MsgBox... :roll:

Schön wäre IMHO auch, wenn man den Beitrag dann sehen könnte, welchen der User betrachtet haben soll und neben der IP auch den Usernamen, wenn der User eingeloggt war oder halt Anonymus... ;)

Getestet lokal unter phpBB 2.0.5 ;)

HTH :D

Verfasst: 28.06.2003 10:09
von Helmut
Hallo Dwing,

ich werde den Logger mal bei mir einbauen und testen. Da meine HP ja auf der Struktur vom Forum aufbaut, könnte damit ja jede Seite der HP geloggt werden. Zu deinem Mod habe ich noch eine Frage und zwar muß die folgende Sequenz auf jeder Seite eingebaut werden, die geloggt wird?

#
#-----[ OPEN ]------------------------------------------
#
*********.php

#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'includes/page_header.'.$phpEx);

#
#-----[ AFTER, ADD]------------------------------------------
#
//
// Start des IP logger
// Bei define wird die Aktion festgelegt
//
define('LOG_ACTION', '*********');

include('iplogger.php');
Um das zu bewerkstelligen, muß ich da auch was am Mod selber ändern?

Gruß Helmut

Verfasst: 28.06.2003 10:30
von Dave
Warning: fgets(): supplied argument is not a valid File-Handle resource in /home/www/web4/html/hod/includes/logger_engine.php on line 22

Warning: rewind(): supplied argument is not a valid File-Handle resource in /home/www/web4/html/hod/includes/logger_engine.php on line 25

Warning: fwrite(): supplied argument is not a valid File-Handle resource in /home/www/web4/html/hod/includes/logger_engine.php on line 26

Warning: fclose(): supplied argument is not a valid File-Handle resource in /home/www/web4/html/hod/includes/logger_engine.php on line 27

Warning: fwrite(): supplied argument is not a valid File-Handle resource in /home/www/web4/html/hod/includes/logger_engine.php on line 58

Warning: fclose(): supplied argument is not a valid File-Handle resource in /home/www/web4/html/hod/includes/logger_engine.php on line 59
Das kommt bei mir :roll:

Verfasst: 28.06.2003 11:25
von Helmut
Hallo Dwing,

ich hab den Mod mal auf der Test-HP eingebaut . Nun bekomme ich im ACP wenn ich auf "IP Logger, IP Logger MKP, IP Logger OPT" gehe, eine weiße Seite Rechts zu sehen. Der Fehler tritt nur mit dem Netscape (alle Versionen) auf und nur wenn gzip aktiv ist. Unter dem IE (alle Versionen) tritt der Fehler nicht auf.

Ein weiteres Problem sind die Befehle "bcdiv(), bcmul(), bcadd()" die bei einigen Providern nicht zur Verfügung stehen. Dafür hab ich mal einen kleinen Mod gemacht.

Diesen Mod als function_dl_bcmath.php speichern und in das Verzeichnis ../includes/ kopieren.
<?php

/*#########################################
#
# bcmath mathematische Nachbildung von bcdiv, bcmul und bcadd wenn
# diese nicht vom Provider bereit gestellt werden.
#
# Hier können später auch die restlichen Funktionen von bcmath
# nachgebildet werden.
#
# Filename: function_dl_bcmath.php
# Version: 1.0.2
# Contact: MARVIN42@web.de
# Autor: Helmut.S und Karl.T
#########################################*/



function bcmul($a, $b, $scale)
{
$r = $a * $b;
for ( $i=0; $i < $scale; $i++);
$r = 10 * $r;
$r = ((int) $r);
for ( $i=0; $i < $scale; $i++);
$r = 0.1 * $r;
return $r;
}

function bcdiv($a, $b, $scale)
{
$r = $a / $b;
for ( $i=0; $i < $scale; $i++);
$r = 10 * $r;
$r = ((int) $r);
for ( $i=0; $i < $scale; $i++);
$r = 0.1 * $r;
return $r;
}

function bcadd($a, $b, $scale)
{
$r = $a + $b;
for ( $i=0; $i < $scale; $i++);
$r = 10 * $r;
$r = ((int) $r);
for ( $i=0; $i < $scale; $i++);
$r = 0.1 * $r;
return $r;
}

?>
Nun sind noch ein paar Änderungen an der Datei "admin_logger.php" zu machen.

Finde:
require('pagestart.' . $phpEx);
danach Einfügen:
require($phpbb_root_path . 'includes/functions_dl_bcmath.'.$phpEx);
Finde:
echo '<p>Es werden die Einträge von ' . $start . ' bis ' . bcadd($start, $anzahl) . ' angezeigt</p>';
Ersetzen durch:
echo '<p>Es werden die Einträge von ' . $start . ' bis ' . bcadd($start, $anzahl,1) . ' angezeigt</p>';
Du kannst den Mod gerne bei dir mit aufnehmen oder entsprechend abändern und fest einbauen.

Gruß Helmut

Verfasst: 29.06.2003 15:11
von Helmut
Hallo Dwing,

also der Logger arbeitet soweit gut, nur jetzt bekomme ich eine Fehlermeldung vom IE, daß die gewünschte Seite nicht angezeigt werden kann. In der "log.dat" befinden sich 1290 Datensätze (innerhalb von etwa 15 Stunden). Kann es sein, daß es Probleme mit der 1024 Grenze gibt? Ich hab das noch nicht getestet, könnte ich mir aber gut Vorstellen. Vielleicht könntest das dann auch so machen, daß für jeden Tag eine eigene "log.dat" Datei angelegt wird. Das Feld " $USER " ist immer leer ist mir aufgefallen. Hat das eine bestimmte Bedeutung?

Ausschnitt aus der log.dat
?><?php
$REMOTE_ADDR["1191"] = "212.186.120.92";
$HTTP_USER_AGENT["1191"] = "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.3b) Gecko/20030316";
$REMOTE_PORT["1191"] = "1035";
$HTTP_VIA["1191"] = "";
$TIME["1191"] = "1056886577";
$CHECK["1191"] = "ok";
$ACTION["1191"] = "Topic #145 angesehen";
$USER["1191"] = "";
?><?php
Es wäre auch schön, wenn einige Informationen zusätzlich noch geloggt würden, wie zum Beispiel "verwendete Bildschirmauflösung, Herkunftsland", außerdem wäre es auch Sinnvoll, wenn der Benutzername angezeigt würde und auch ein Link zu den geloggten Foren/Topics. Du könntest es dann so machen, daß dann ein Link mit dem Namen des Benutzers verbunden ist und beim anklicken die ganzen Verbindungsdeteils angezeigt werden. Weiterhin könntest dann auch hergehen und zum Beispiel alle Loggs eine bestimmten Users anzeigen lassen. In Sachen Auswertung sind da keine Grenzen gesetzt.

Gruß Helmut

Verfasst: 29.06.2003 22:51
von Dwing
wow.

Erstmal danke für das Feedback

@Helmut:
Werde dein Script einbinden, danke :)
Setze ne Hinweis auf dich.

Ich wollte das ganze nicht zu kompliziert machen...
Daten wie Bildschirmauflösung lassen sich meines Wissens nicht mit PHP sondern nur mit javascript auslesen.

Werde evtl. noch den Host dazu fügen.
Um das zu bewerkstelligen, muß ich da auch was am Mod selber ändern?
Nein :)
Einfach das ändern was du als ***** geschrieben hast :)
@AWSW:
Ip Logger zeigt die geloggten IPs
OPT optimiert die IPs, nach 2 Mustern
MKB macht ein backup


@Dave: scheinbar fehlt dir die Datei logger_engine.php im includes Ordner.
Hast du sie nicht hochgeladen, oder hat der FTP probleme und du hast das falsche Archiv ?