PHP Sicherheitssofftware CTXtra

Sonstiges => Alles über Spam => Thema gestartet von: delta am 18 Juni 2008, 17:56:53



Titel: RBL Check
Beitrag von: delta am 18 Juni 2008, 17:56:53
Hallo Leute,

ich habe gerade ein kleines Script geschrieben, mit dem Ihr prüfen könnt ob eine IP in den gängigsten BlackLists auftaucht.
Hier der Link RBL Check (http://www.everyscript.de/cgi-bin/acControl/ip_check.pl)

Im Gegensatz zu ähnlichen Scripts die man im Netz findet, ist das Teil rasend schnell und liefert die Ergebnisse (nahezu) in Echtzeit.
Es ist derzeit nur eine Rohversion, also allein auf Funktionalität (input/output) ausgelegt.

Feedback is welcome  :)


Titel: Re: RBL Check
Beitrag von: schlumpfi am 18 Juni 2008, 18:06:21
hi,

sieht ja mal nicht schlecht aus... hat auf jedenfall speed in der function

aber ich mag kein pl  ;)



Titel: Re: RBL Check
Beitrag von: Nordin am 18 Juni 2008, 18:10:02
naja ob perl oder nicht...

Wie funktioniert das script genau?
prüft es in echtzeit die ip bei den (externen) großen listen auf existenz?

Oder hast du eine liste bei dir im hintergund laufen? Wenn ja wäre interessant zu wissen wie groß die liste ist.

Ich hab da eine Idee im Hinterkopf ;)


Titel: Re: RBL Check
Beitrag von: delta am 18 Juni 2008, 21:42:42
... hat auf jedenfall speed in der function

aber ich mag kein pl  ;)
Dann Versuch das mal mit PHP zu coden und (zumindest) genau so schnell zu sein.

prüft es in echtzeit die ip bei den (externen) großen listen auf existenz?
Genau so läuft das Teil.


Titel: Re: RBL Check
Beitrag von: Nordin am 18 Juni 2008, 21:53:50
ah ok coole sache... wenn ich mit dem coden am IP-Protector angekommen bin werde ich mir das ganze noch mal anschauen... wär sehr hilfreich!!


Titel: Re: RBL Check
Beitrag von: delta am 18 Juni 2008, 22:28:06
ah ok coole sache... wenn ich mit dem coden am IP-Protector angekommen bin werde ich mir das ganze noch mal anschauen... wär sehr hilfreich!!
Gern - ruf einfach an und wir reden mal drüber  :)


Titel: Re: RBL Check
Beitrag von: delta am 19 Juni 2008, 17:10:53
Zu Lasten der Geschwindigkeit, hab ich das Teil jetzt mit einigen HTML Tags ausgestattet.
Hier der Link: RBL Check 01 (http://www.everyscript.de/cgi-bin/acControl/ip_check_10.pl)
Seltsamerweise wartet der IE7 bis alle Zeilen der Tabelle aufgebaut sind, während der Firefox die Tabelle Zeile für Zeile darstellt.


Titel: Re: RBL Check
Beitrag von: Nordin am 19 Juni 2008, 17:20:18
ja jaa der IE... ich fand den immer ganz gut... aber der neu Firefox is ja mal mega... naja lassen wir das thema!

Also ich hab da mal ne idee wäre es möglich das du das ergebniss als XML ausgeben könntest.. so könnte man das script per post ansprechen und das Ergebniss dann aus dem XML sehr leicht parsen.

Aber is nur so ne idee...



Titel: Re: RBL Check
Beitrag von: delta am 19 Juni 2008, 18:42:15
Also ich hab da mal ne idee wäre es möglich das du das ergebniss als XML ausgeben könntest.. so könnte man das script per post ansprechen und das Ergebniss dann aus dem XML sehr leicht parsen.
Das ist nicht der Weg der mit diesem Script eingeschlagen ist.
Das Teil ist (bisher) nur eine Insellösung (und ist lediglich auf Speed ausgelegt).
Ich kaspere da im Augenblick noch mit IPC rum - aber damit verliere ich offensichtlich doch zu viel an Geschwindigkeit.
Mal sehen ob das nicht doch irgendwie optimierbar ist.

Wir hatten ja bereits (telefonisch) über ein gemeinsames Melde-Interface gesprochen.
Das Sccript (also die Rohversion) wird dort eingebunden und die ermittelten Sperrdaten zu den jeweiligen IPs können in einer schlichten Textdatei gespeichert werden - damit hast Du dann einen sehr einfachen Zugriff.
Aber ich arbeite noch an einem Gesamtkonzept ...

Hier noch ein Link zu einem Script mit dem Du CIDR Adressen in IP-Ranges umrechnen kannst.
http://jodies.de/ipcalc



Titel: Re: RBL Check
Beitrag von: delta am 25 Juni 2008, 16:31:03
Die Anzahl der abzufragenden RBLs wurde jetzt auf 87 erhöht.
Gleichzeitig konnte ich beide Scripte bedeutend schneller machen.
Wie bereits w.o. angedeutet, war der IPC-Gedanke denn doch nicht so sehr das Gelbe vom Ei; ein gezielter Einsatz der wait Funktion (statt waitpid) hat es aber dann schließlich gebracht.

Hier nochmal die Links:
Textversion: RBL Check (http://www.everyscript.de/cgi-bin/acControl/ip_check.pl)
HTML Version: RBL Check 01 (http://www.everyscript.de/cgi-bin/acControl/ip_check_10.pl) (FireFox liefert die schnellsten Ergebnisse)

Falls noch jemand eine Blacklist kennt die zusätzlich abgefragt werden sollte ...
einfach hier posten.

Was jetzt noch fehlt, dass ist die Möglichkeit festzustellen, ob eine IP statisch oder dynamisch ist.
Wer weiß zu dem Thema was?


Titel: Re: RBL Check
Beitrag von: schlumpfi am 25 Juni 2008, 18:09:19
Was jetzt noch fehlt, dass ist die Möglichkeit festzustellen, ob eine IP statisch oder dynamisch ist.
Wer weiß zu dem Thema was?

auslesen über latitude und longitude?
http://api.hostip.info/get_html.php?ip=12.216.42.19&position=true

ich weis nicht genau, hab noch keine gedanken gemacht ::)


Titel: Re: RBL Check
Beitrag von: delta am 25 Juni 2008, 19:06:02
Hmm ...
wie soll ich da festellen ob's ne dynamische IP ist?
Hast Du mal Code?


Titel: Re: RBL Check
Beitrag von: Nordin am 25 Juni 2008, 23:18:10
zu dyn oder statisch hab ich mich schlau gemacht...
Ergebniss: Nicht möglich.


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 11:29:50
Schau mal hier (http://www.google.de/search?hl=de&client=firefox-a&rls=org.mozilla%3Ade%3Aofficial&hs=xD8&q=%22identify+dynamic+IP+addresses%22&btnG=Suche&meta=) rein.

P.S.
RBL Check 01 (http://www.everyscript.de/cgi-bin/acControl/ip_check_10.pl) zeigt jetzt zu der IP auch den Hostnamen an.
Damit läßt sich dann (in vielen Fällen) schon per Augenschein bestimmen ob es sich um eine dynamische IP handelt.
Das muss jetzt noch automatisiert und (selbstverständlich) auch erweitert werden.


Titel: Re: RBL Check
Beitrag von: Nordin am 26 Juni 2008, 13:17:59
Das Problem ist, dass eine IP ist nicht statisch oder dynamisch ist, sondern eine IP wird statisch oder dynamisch vergeben...


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 13:56:19
Das Problem ist, dass eine IP ist nicht statisch oder dynamisch ist, sondern eine IP wird statisch oder dynamisch vergeben...
So hab ich das auch gemeint ...
wo siehst Du da ein Problem?


Titel: Re: RBL Check
Beitrag von: Nordin am 26 Juni 2008, 14:19:17
na das man nicht von ausserhalb abfragen kann ob eine IP statisch oder dynamisch vergeben wurde...


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 15:13:09
na das man nicht von ausserhalb abfragen kann ob eine IP statisch oder dynamisch vergeben wurde...
Doch doch - das kann man (andere machen es ja auch).

Die Möglichkeiten sind:
1. per Auflösung des Hostnamens (wie w.o. beschrieben)
2. über SORBS (und es gibt da wohl noch ein paar andere Dienste - muß ich mal checken)
3. über den Algorithmus der in diesem Artikel (http://www.sigcomm.org/ccr/drupal/files/fp179-xie.pdf) veröffentlicht wurde (gefällt mir am besten).

Ziffer 1. ist die einfachste Methode, deckt aber nur einen Teil der möglichen IPs ab.
Ziffer 2. kommt als Ergänzung zu Ziffer 1. in Betracht
Ziffer 3. muß vollständig programmiert werden (Umsetzung des Algorithmus)

Daneben - und das erleichtert die Sache - sind IPs die dynamisch vergeben werden, immer in bestimmten Blöcken vorhanden.


Titel: Re: RBL Check
Beitrag von: Nordin am 26 Juni 2008, 15:37:43
Zitat
1. per Auflösung des Hostnamens (wie w.o. beschrieben)
Das versteh ich nicht ganz... was hab ich davon wenn ich die ip in den Hostname auflöse? Im aktuellen Bot-Filter verfahre ich ähnlich. ich löse die ip in den hostnamen auf und cheke ihn mit meiner liste... das erste Problem ist bereits bei msn aufgetreten... wenn ich versuche eine MSN-IP in den Host aufzulösen dann wird das nix.. ich bekomme die IP zurück...

Das nächste ist wenn ich meine IP in den Hostnamen auflöse bekomme ich einen Hostnamen zurück... und meine ist nicht festvergeben... ich denke diese möglichkeit fliegt schonmal raus.


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 16:09:42
Zitat
1. per Auflösung des Hostnamens (wie w.o. beschrieben)
Das versteh ich nicht ganz... was hab ich davon wenn ich die ip in den Hostname auflöse?
Nunja - Du erhälst einen Hostnamen aus dem Du schließen kannst ob es sich um eine dynamisch IP handelt.
Beispiel:
Host: tmo-117-2.customers.d1-online.com
kann keinesfalls eine statische IP sein

Im aktuellen Bot-Filter verfahre ich ähnlich. ich löse die ip in den hostnamen auf und cheke ihn mit meiner liste...
Check besser die IP - das reicht völlig aus und ist schneller.

das erste Problem ist bereits bei msn aufgetreten... wenn ich versuche eine MSN-IP in den Host aufzulösen dann wird das nix.. ich bekomme die IP zurück...
Da machst Du irgendetwas falsch

Das nächste ist wenn ich meine IP in den Hostnamen auflöse bekomme ich einen Hostnamen zurück... und meine ist nicht festvergeben... ich denke diese möglichkeit fliegt schonmal raus.
Du bekommst immer einen Hostnamen zurück wenn Du eine IP in Richtung Host auflöst.
Es kommt also darauf an, den Hostnamen (im Programm) verständig zu interpretieren.
Beispiel:
Host: 77-208-62-129.red-acceso.airtel.net
kann keine statische IP sein.



Titel: Re: RBL Check
Beitrag von: Nordin am 26 Juni 2008, 17:21:31
echo "MSN-IP-To-HOST (65.55.25.141): ".gethostbyaddr('65.55.25.141');
Ergebniss:
Code:
MSN-IP-To-HOST (65.55.25.141): 65.55.25.141


Titel: Re: RBL Check
Beitrag von: Nordin am 26 Juni 2008, 17:26:28
Zitat
Check besser die IP - das reicht völlig aus und ist schneller.
Stimmt hast recht...
Aber dafür muss ich die IP-Ranges kennen. Yahoo hat ja zwei Ranges einmal glaub in den 74ern und einmal glaub in den 65ern

Hmm mist ich muss meinen Botfilter nochmal überdenken...


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 17:35:33
Irgendwo hier im Forum hat mahakala einen Link zu seiner IP-Liste der Suchmaschinen veröffentlicht.
Das Teil kannst Du doch verwenden.


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 17:43:09
echo "MSN-IP-To-HOST (65.55.25.141): ".gethostbyaddr('65.55.25.141');
Ergebniss:
Code:
MSN-IP-To-HOST (65.55.25.141): 65.55.25.141

Ja, die IP 65.55.25.141 läßt sich nicht auflösen (kein DNS Eintrag)


Titel: Re: RBL Check
Beitrag von: Nordin am 26 Juni 2008, 17:51:12
Zitat
Ja, die IP 65.55.25.141 läßt sich nicht auflösen (kein DNS Eintrag)
Somit hatte ich doch recht...
Anhand des hostnamen bekommt man nicht raus ob die IP statisch oder dynamisch ist...


Titel: Re: RBL Check
Beitrag von: delta am 26 Juni 2008, 18:06:41
Zitat
Ja, die IP 65.55.25.141 läßt sich nicht auflösen (kein DNS Eintrag)
Somit hatte ich doch recht...
Anhand des hostnamen bekommt man nicht raus ob die IP statisch oder dynamisch ist...
Wenn der Hostname aus der IP nicht aufgelöst werden kann (weil kein DNS-Entrag vorhanden ist) dann geht's natürlich nicht - wie auch?
Im Script (bei mir heißt das Teil AccessControl) blocke ich grundsätzlich jeden Zugriff der über eine IP reinkommt deren Hostnamen per DNS-Abfrage (gethostbyaddr) nicht ermittelt werden kann.
In Sachen Suchmaschinen ist da eine Funktion vorgeschaltet die 'erwünschte Suchmaschinen' durchläßt - die DNS-Abfrage also unterdrückt.


Titel: Re: RBL Check
Beitrag von: delta am 07 Juli 2008, 16:46:08
Hab die von Dir genannte IP 65.55.25.141 jetzt nochmal ausführlich getestet.
Seltsamerweise geben alle anderen MSn IPs, klaglos ihren Hostnamen zurück - nur eben diese nicht.
Entweder ist da was abgrundtief faul (und damit die Sperre unbedingt gerechtfertigt) oder MSN hat das Teil für besondere Zwecke reserviert.

Was auch immer ...
solange eine IP sich nicht nach dem Host auflösen läßt, blockiere ich ganz rigoros.


Titel: Re: RBL Check
Beitrag von: Nordin am 07 Juli 2008, 17:17:44
Ach is ja interessant... das is mir auch noch nicht aufgefallen.


Titel: Re: RBL Check
Beitrag von: olobollo am 24 Januar 2009, 07:11:16
man kann nicht vom Hostnamen ausgehen ob die IP Dynamisch oder Statisch vergeben wurde!

bsp. von Delta

Zitat
Beispiel:
Host: 77-208-62-129.red-acceso.airtel.net
kann keine statische IP sein.

Kann wohl eine statische IP sein. Ich denke da grade an so Root Server Anbieter die ähnlich die Kunden Roots vorbenennen:

66-111-21-113.rz6.rootserveranbieter.tld
somit eine statische IP

 :o

Nordin hat sich da schon richtig schlau gemacht und das ergebniss ist eben das man an hand des Hostnamens nicht sagen kann ob Dynamisch oder Statisch. ;)

Und zu gewissen IP Adressen kann kein Hostname aufgelöst werden solange kein Reverse DNS (RDNS) beim Betreiber der IP eingetragen ist. ;)

Das ist auch oftmals das Problem von E-Mail adressen. Existiert kein RDNS so wird die mail nicht zu gelassen. Siehe: hotmail oder sonstige anbieter, die ihre Spamfilter sehr scharf eingestellt haben.