frank: REDIRECT_REMOTE_ADDR ... wie?

Hallo alle zusammen!

Ich habe eine Frage bezueglich meiner Web Site, die unter Linux/Apache gehostet ist...

Kann ich Besucher meiner Site je nach deren IP Adresse zu einer bestimmten Seite umleiten? Bin (leider) kein Programmierer und "spreche" kein Perl etc.

Der Grund warum ich dies implementieren moechte ist dass ich in den letzten Tagen tonnenweise Traffic von irgendwelchen $%@#-Spammern erhalte die versuchen meine Site nach Schwachstellen zu durchforsten (formmail.pl etc. etc.). Bei traceroutes zeift sich dann, dass 90% dieses Traffics entweder aus Asien oder Suedamerika kommen. Diese Herrschaften wuerde ich gerne zu einer eigens fuer sie erstellten "goaway" Seite umleiten, die ca. 2.5mb Text enthaelt und deren Crawler dann eine weile beschaeftigen duerfte :)

".htaccess" und "deny" ist fuer diese jungs einfach zu zivilisiert.

Gibt es eventuell schon ein solches Perl Script? Wenn jemand so etwas schon 'mal gesehen hat, waere ich fuer einen entsprechenden Link seeeehr dankbar!!

Danke im voraus,

Frank

P.S. Ich hab' schon unter hotscripts.com geschaut (da finde ich normalerweise Scripte fuer alles), aber leider umsonst.

  1. Moin!

    Diese Herrschaften wuerde ich gerne zu einer eigens fuer sie erstellten "goaway" Seite umleiten, die ca. 2.5mb Text enthaelt und deren Crawler dann eine weile beschaeftigen duerfte :)

    Prinzipiell geht das. Mod redirect kann anhand aller möglichen Parameter umleiten. Lies mal in der Apache- Dokumentation nach, ich müsste es auch für Dich tun, auswendig weiss ich es nicht.

    Aber: Wenn Du tausend Anfragen täglich mit 2,5 MB Text beantwortest, dann sind das 2,5 Gigabytes, nach 10 Tagen 25 Gig.... Das musst _Du_ zahlen!

    Besser: Schreibe ein Script (Per oder PHP), welches die "Besucher" eine ganze Weile (denke an die Beschränkungen für die Skriptlaufzeiten) warten lässt, vielleicht ein zusätzlich paar nette Redirects macht aber ansonsten nur ein goaway liefert. Das nennt sich dann Teerboxing.

    Schließe aber aus, daß Du die unschuldigen Benutzers eines Proxys miterwischst... Dessen IP wird Dir nämlich unter Umständen geliefert.

    MFFG (Mit freundlich- friedfertigem Grinsen)

    fastix®

    --
    Meinereinerselbst ist auf der Suche nach Aufträgen
    1. Hi Fastix,

      vielen Dank fuer die schnelle Antwort! :)

      Prinzipiell geht das. Mod redirect kann anhand aller möglichen Parameter umleiten. Lies mal in der Apache- Dokumentation nach, ich müsste es auch für Dich tun, auswendig weiss ich es nicht.

      Apache docs habbich schon 'runtergeladen - das ueberstieg meinen technischen Horizont doch um ein paar Level *grins*

      Aber: Wenn Du tausend Anfragen täglich mit 2,5 MB Text beantwortest, dann sind das 2,5 Gigabytes, nach 10 Tagen 25 Gig.... Das musst _Du_ zahlen!

      Traffic ist kein Problem - ich hab' 50GB Transfer mit meinem Hosting Plan.

      Besser: Schreibe ein Script (Per oder PHP), welches die "Besucher" eine ganze Weile (denke an die Beschränkungen für die Skriptlaufzeiten) warten lässt, vielleicht ein zusätzlich paar nette Redirects macht aber ansonsten nur ein goaway liefert. Das nennt sich dann Teerboxing.

      Davon abgesehen, dass ich so ein Script nicht selber schreiben kann (meiner einer ist "severely technically challenged") ist das aber einer sehr gute Idee! Ich hab neulich 'mal was ueber "tar pits" gelesen - liege ich richtig mit meiner Vermutung, dass das der englische Ausdruck fuer das gleiche Prinzip ist?

      Falls Du zufaellig einen Link zu einem solchen Script haben solltest, waere es super wenn Du diesen hier kurz posten koenntest. Scripte anpassen kann ich - nur vom selber schreiben bin ich noch ein paar Monate (Untertreibung :) entfernt.

      *geht noch mal bei hotscripts.com auf die Suche nach tar pit*

      Vielen Dank,

      Frank

      1. Moin!

        Besser: Schreibe ein Script (Per oder PHP), welches die "Besucher" eine ganze Weile (denke an die Beschränkungen für die Skriptlaufzeiten) warten lässt,...
        Falls Du zufaellig einen Link zu einem solchen Script haben solltest,

        Da ist er:
        http://www.selfphp.info/funktionsreferenz/sonstige_funktionen/sleep.php

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Meinereinerselbst ist auf der Suche nach Aufträgen
        1. Moin!

          Es wäre nett, dem guten würde jetzt jemand, der sich damit gut auskennt, mit dem Redirect vom Apache helfen und ihn so ob seiner angemessenen Bescheidenheit belohnen.

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Meinereinerselbst ist auf der Suche nach Aufträgen
          1. Hallo,

            Es wäre nett, dem guten würde jetzt jemand, der sich damit gut auskennt, mit dem Redirect vom Apache helfen und ihn so ob seiner angemessenen Bescheidenheit belohnen.

            also hier ein beispiel für das script:

            ertsmal eine leere .htaccess (die mit notepad erstellt wurde auf den server laden.
            Dann dieses (mein selbstgeschriebenes)script namens formmail.pl oder eben so benennen wie es aufgerufen wird von den spamern:

            #!/usr/bin/perl -Tw

            Copyright 2003 by LegFan and is free

            Last Modified 28/Aug/2003

            $logfile ='/DeinHomeVerzeichniss/public_html/.htaccess';

            $ip_now         = $ENV{'REMOTE_ADDR'};

            print "Content-type: text/html\n\n";

            Deine IP unten eingeben um Deine oder andere vom sperren auszuschliessen

            @ip_check = ('64.32.333.7','25.49.452.');

            foreach(@ip_check)  {
                if ($ip_now =~ /^$_/)  {

            &Dead();
                 }
                 }

            sleep(2);

            &check();

            sub check
            {
            use Fcntl ':flock';
            $Zugriffe = 0;
            open(DATEN,"<$logfile") || &Dead('Cannot open file');
            flock(DATEN,LOCK_SH);
            while (<DATEN>){
             /$ip_now/ ? $Zugriffe = $Zugriffe + 1 : $Zugriffe = $Zugriffe;
                 }
                 if ($Zugriffe >= 1)
                 {
                 close (DATEN);
                 &Dead();
                 }
                 else
                 {
                 close (DATEN);
                 &log();
                 }
                 }

            sub log {
                    use Fcntl ':flock';
                    open(LOG,">>$logfile") || &Dead();
                    flock(LOG,LOCK_EX);
                    print LOG "deny from $ip_now\n";
                    close (LOG);
                    &Dead();
                    }

            sub Dead

            {
                    #' print a header

            print "not ok";
                    exit;
            }

            ---------
            Gruss vom Alain

            --
            ...wenn das gehirn so einfach wäre,es zu vestehen,
            wären wir zu dumm um es zu begreifen...
            1. Sorry fuer die spaete Antwort - war unterwegs. Vielen Dank fuer die Hilfe!!

              Gruss,

              Frank

  2. Hallo,

    Kann ich Besucher meiner Site je nach deren IP Adresse zu einer bestimmten Seite umleiten? Bin (leider) kein Programmierer und "spreche" kein Perl etc.

    Der Grund warum ich dies implementieren moechte ist dass ich in den letzten Tagen tonnenweise Traffic von irgendwelchen $%@#-Spammern erhalte die versuchen meine Site nach Schwachstellen zu durchforsten (formmail.pl etc. etc.). Bei traceroutes zeift sich dann, dass 90% dieses Traffics entweder aus Asien oder Suedamerika kommen. Diese Herrschaften wuerde ich gerne zu einer eigens fuer sie erstellten "goaway" Seite umleiten, die ca. 2.5mb Text enthaelt und deren Crawler dann eine weile beschaeftigen duerfte :)

    ".htaccess" und "deny" ist fuer diese jungs einfach zu zivilisiert.

    Wieso denn nicht?
    Du könntest ein perscript namens formmail.pl schreiben,dass wen es aufgerufen wird,
    die IP mit "deny from IP" in eine htaccess schreibt um genau diese aufrufe zu stoppen,die sowiso meistens
    von diesen spamern aufgerufen werden.
    Nach ner gewissen zeit löscht Du dann die Ip wieder aus der htaccess.

    Gruss vom Alain

    --
    ...wenn das gehirn so einfach wäre,es zu vestehen,
    wären wir zu dumm um es zu begreifen...
    1. Moin!

      ".htaccess" und "deny" ist fuer diese jungs einfach zu zivilisiert.

      Wieso denn nicht?
      Du könntest ein perscript namens formmail.pl schreiben,dass wen es aufgerufen wird,
      die IP mit "deny from IP" in eine htaccess schreibt um genau diese aufrufe zu stoppen,die sowiso meistens
      von diesen spamern aufgerufen werden.
      Nach ner gewissen zeit löscht Du dann die Ip wieder aus der htaccess.

      Was hat das dann für einen Sinn?

      Du erzeugst beim Aufruf des "falschen Skripts" einen Eintrag, der dem Aufrufenden aktuell und für die Zukunft den Status 403 zurückliefert. Wenn man nichts macht (und das Skript auch nicht formmail.pl nennt), erhält der Aufrufende Status 404 (und kommt wahrscheinlich nicht nochmal wieder).

      Resultat in beiden Fällen: Es passiert nichts.

      Vorteil beim Status 404: Der Server verbraucht keine zusätzliche Last, um die IP-Liste zu pflegen und zu durchforsten.

      Außerdem sammeln sich so keine IP-Adressen an, die ja irgendwann auch mal einem legitimen Benutzer gehören könnten.

      Wenn ich die Wahl habe, regelmäßige Logfile-Einträge "404 formmail.pl" zu ignorieren oder mir eine aufwendige, aber vom Effekt her identische Schutzlösung auszudenken, wähle ich das Ignorieren.

      - Sven Rautenberg

      --
      ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
      1. Hallo,

        Wenn ich die Wahl habe, regelmäßige Logfile-Einträge "404 formmail.pl" zu ignorieren oder mir eine aufwendige, aber vom Effekt her identische Schutzlösung auszudenken, wähle ich das Ignorieren.

        In diesem Fall muss ich Dir recht geben.Es wäre tatsächlich besser den client zu ignorieren.
        Es gibt aber Fälle,da ist dieses script ganz gut,um unnötige crack requests von spider clients oder von Bruteforce atacks zu vereiteln indem sie
        geblockt werden.Und wenn man weiss wie sie das script aufrufen,dann lernt man vielleicht noch was dazu.

        Gruss vom Alain

        --
        ..."Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)