ispCP - Board - Support
datei includen in /gui/index.php - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: German Corner (/forum-26.html)
+---- Forum: Plauderecke (/forum-49.html)
+---- Thread: datei includen in /gui/index.php (/thread-15888.html)



datei includen in /gui/index.php - fulltilt - 03-08-2012 01:01 AM

ich möchte eine datei (proxyblocker) in die /gui/index.php includen ...
wie muss ich das machen? momentan bekomme ich eine blank page, gibt es noch eine filenames in der diese datei authorisiert werden muss?


RE: datei includen in /gui/index.php - ephigenie - 03-08-2012 04:07 AM

nein - die gibts nicht - aber versuch mal das ganze im Debug mode Wink .. ich könnte wetten, da schmeisst ein Skript einen PHP Fehler - und du siehst ihn eben nur nicht.
Alternativ mit php :
Code:
ini_set('display_errors', 1);

am Anfang der index.php die Fehlerausgabe (temporär zumindest) wieder aktivieren.


RE: datei includen in /gui/index.php - fulltilt - 03-08-2012 04:18 AM

im debug bekomme ich keine fehler ... hab in den letzten 2 wochen massig logins von irgendwelchen idioten, wird von tag zu tag schlimmer ...
hier ist das script das ich includen möchte, auf einem normalen userweb funktioniert es so, im gui gibts eine blank page ...
PHP Code:
<?php

// Settings
$block_proxy_attemts        true;         // true or false
$log_proxy_attemts      true;         // true or false
$log_proxy_attemts_to   "blockedproxy.log";  // Filename or path with filename

// To use this on your own page, please add following line:
// if (block_proxys() == true AND $block_proxy_attemts == true) { exit("Proxys are not allowed to connect to this page, please connect directly"); }

// Please do not change any thing under this comment
function block_proxys()
{
    global 
$_SERVER$log_proxy_attemts$log_proxy_attemts_to;
    
$proxy_detected '0';
function 
block_proxys()
{
    global 
$_SERVER$log_proxy_attemts$log_proxy_attemts_to;
    
$proxy_detected '0';
    
$blockedheaders = array(
        
'HTTP_VIA',
        
'HTTP_X_FORWARDED_FOR',
        
'HTTP_FORWARDED_FOR',
        
'HTTP_X_FORWARDED',
        
'HTTP_FORWARDED',
        
'HTTP_CLIENT_IP',
        
'HTTP_FORWARDED_FOR_IP',
        
'VIA',
        
'X_FORWARDED_FOR',
        
'FORWARDED_FOR',
        
'X_FORWARDED',
        
'FORWARDED',
        
'CLIENT_IP',
        
'FORWARDED_FOR_IP',
        
'HTTP_PROXY_CONNECTION'
    
);


    foreach(
$blockedheaders as $i)
    {
        if (isset(
$_SERVER[$i])) { $proxy_detected++; $log .= $i.", "; }
    }


    if (
gethostbyname(ReverseIPOctets($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIPOctets($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org") == "127.0.0.2")
    { 
$proxy_detected++; $log .= "TOR exit node, "; }

    if (
exists_in_rbl() == true)
    { 
$proxy_detected++; $log .= "RBL, "; }

    if (
$proxy_detected >= '1')
    {
        if (
$log_proxy_attemts == true)
        {
            if (
is_writable($log_proxy_attemts_to)) {
                
$fp fopen($log_proxy_attemts_to,"a");
                
fwrite($fp,date("Y-m-d H:i:s").": Proxy Server detected: ".gethostbyaddr($_SERVER['REMOTE_ADDR'])." (".$_SERVER['REMOTE_ADDR'].") - Info: ".$log."\n");
                
fclose($fp);
            } else {
                exit(
"Connection Logfile is not writeable");
            }
        }
        return 
true;
    }
    else
    {
        return 
false;
    }
}

function 
exists_in_rbl() {
    
$rbls = array('http.dnsbl.sorbs.net''misc.dnsbl.sorbs.net');
    
$remote getenv('REMOTE_ADDR');

    if (
preg_match("/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/",
      
$remote$matches)) {
        foreach (
$rbls as $rbl) {
            
$rblhost $matches[4] . "." $matches[3] . "." .
                
$matches[2] . "." $matches[1] . "." $rbl;

            
$resolved gethostbyname($rblhost);

            if (
$resolved != $rblhost) {
                return 
true;
            }
        }
    }
    return 
false;
}

function 
ReverseIPOctets($inputip)
{
    
$ipoc explode(".",$inputip);
    return 
$ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0];
}

?>

der include in die index.php
include_once("block_proxy.php");
if (block_proxys() == true AND $block_proxy_attemts == true) { exit(""); }


RE: datei includen in /gui/index.php - ephigenie - 03-08-2012 05:04 AM

mach mal aus dem exit ("Connection Logfile is not writeable") ein die("Connection .... ")

ich könnte mir vorstellen, dass der Pfad noch falsch ist ..?
Eventuell ist es eine gute idee, den Pfad absolut anzugeben -

z.B. $log_proxy_attemts_to = "/var/www/ispcp/gui/phptmp/blockedproxy.log" anstelle von blockedproxy.log.

Ansonsten das ini_set mal bitte im Skript setzen ! (vor der include Anweisung natürlich Wink )


RE: datei includen in /gui/index.php - tomhb - 03-08-2012 12:26 PM

(03-08-2012 04:18 AM)fulltilt Wrote:  ... hab in den letzten 2 wochen massig logins von irgendwelchen idioten, wird von tag zu tag schlimmer ...

ich wuerde da jetzt nicht auf noch was in die index.php frickeln, sondern
eher die Sache mit mod_security angehen. Wenn man es ein wenig
leichter vom Aufwand haben moechte koennte man auf fail2ban nehmen.

Nimm vielleicht mal Deine Lieblingssuchmaschine und schaue nach
mod_security im Zusammenhang mit snortsam.

Wir schuetzen unsre TYPO3-Logins damit seit Langem gegen unberechtigten
Zugriff. Bei ispCP muss man grad vielleicht nicht unbedingt viel Ruecksicht
auf die update-Faehigkeiten legen (huestel), doch weil es bei TYPO3 haeufig
upgrades gibt, war dieser Weg einfach eleganter. hth, obwohl am Thema vorbei.


gruss tom


RE: datei includen in /gui/index.php - fulltilt - 03-08-2012 08:23 PM

hier hat sich jemand festgebissen der für jedem login eine neue IP Adresse verwendet, also proxy oder tor server verwendet ...
ich möchte das obige script noch soweit umschreiben das es auch die IP hinter dem proxy ermittelt und logged, mod_security verwende ich bereits, kann das aber nicht umsetzen.
thx ephigenie, der letzte php tag im script
Code:
?>
musste raus um das script zu includen ... session headers already send
wenn nachher alles klappt stelle ich das fertige script zu den snippets

(03-08-2012 04:07 AM)ephigenie Wrote:  nein - die gibts nicht - aber versuch mal das ganze im Debug mode Wink .. ich könnte wetten, da schmeisst ein Skript einen PHP Fehler - und du siehst ihn eben nur nicht.
Alternativ mit php :
Code:
ini_set('display_errors', 1);

am Anfang der index.php die Fehlerausgabe (temporär zumindest) wieder aktivieren.



RE: datei includen in /gui/index.php - tomhb - 03-10-2012 04:22 PM

(03-08-2012 08:23 PM)fulltilt Wrote:  ich möchte das obige script noch soweit umschreiben das es auch die IP hinter dem proxy ermittelt und logged,

Das ist nicht wirklich machbar. Jedenfalls nicht, wenn der Proxy "gut"
konfiguriert wurde (Suchbegriffe dafuer - frueher: elite-proxy oder heute:
highly anonymous proxy).

Normalerweise wird ein Proxy derart gut "versteckt", so dass Du eigentlich
gar nicht erkennen kannst, das es dort einen gibt. In Deinem Fall aber ja
scheinbar nicht, also stehen die Chancen evtl. ganz gut. Bringt Dir allerdings
bei tor u.ae. auf widerum nix. Boese Welt da draussen.


Quote:mod_security verwende ich bereits, kann das aber nicht umsetzen.

Wenn Du in dieser Hinsicht schon was probiert hast und dann evtl.
Fehlermeldungen hast, kannste die hier ja schreiben!?


gruss tom


RE: datei includen in /gui/index.php - fulltilt - 03-10-2012 06:31 PM

hi tom, bei manchen ist das schwierig, allerdings sind tatsächlich einige logs dabei die mehr zeigen ... ich teste noch, aber das blockieren klappt gut, denn die anonymen und auch tor server werden erkannt ...
diese IPs kann man auch noch automatisiert an iptables übergeben und serverweit sperren ...


RE: datei includen in /gui/index.php - tomhb - 03-13-2012 01:20 PM

(03-10-2012 06:31 PM)fulltilt Wrote:  hi tom, bei manchen ist das schwierig, allerdings sind tatsächlich einige logs dabei die mehr zeigen ... ich teste noch, aber das blockieren klappt gut, denn die anonymen und auch tor server werden erkannt ...
diese IPs kann man auch noch automatisiert an iptables übergeben und serverweit sperren ...

http://www.illutzmination.de/typo3-mod_security.html
http://www.modsecurity.org/documentation/modsecurity-apache/2.1.0/modsecurity2-apache-reference.html

Laesst sich dementsprechend auf ispCP uebertragen.
Nur mal als Denkanstoss dazu. Proxy hin oder her. Willste Proxies aergern oder nen Login schuetzen?


gruss tom