"File does not exist"-Fehlermeldungen im Apache2 error.log

  • Hallo, ich habe nun ein "Problem" mit dem ich absolut nichts anfangen kann. Ich habe eben mal in den Apache error.log reingeschaut und finde einige Fehlermeldungen:


    Das jetzt nur als Beispiel. Es sind auch andere IP's aufgelistet die anscheinend überprüfen ob etwas vorhanden ist.


    Jetzt habe ich die Frage wie ich mich verhalten soll. Diese Fehlermeldungen hatte ich bei einem anderen vServer damals nicht.
    Ich hoffe, dass mir dabei jemand helfen kann :)


    Danke schonmal
    Mfg, Neo

  • Vor 2 Tagen hat netcup eine Mail verschickt, in der auf Scans nach Sicherheitslücken hingewiesen wurde.


    Die Einträge in deinen Logs sind solche Scans...


    Eine Maßnahme wäre es die betreffenden IPs in die Datei hosts.deny einzutragen, allerdings solltest du dich natürlich vorher entsprechend darüber informieren


    http://linux.die.net/man/5/hosts.deny

  • Im Endeffekt heißt das ganze für dich nur dass du deinen Server kontrollieren solltest.


    Es gibt die Möglichkeit über bestimmte Software auf deinen Server Zugriff zu bekommen, dazu gehören unter anderem Chatrooms, phpmyadmin und mit Sicherheit noch viele andere Software.


    Eine Möglichkeit ist davon auch bereits genutzt worden, nämlich die über phpmyadmin. Daher solltest du dieses auch gut absichern, z.b. indem nicht /phpmyadmin benutzt wird.

  • Lass Dich darüberhinaus noch für die Firewallfunktion freischalten. Hier kannst Du bequem die IP's blacklisten. Kostet Dich nix, nur eine Mail an den Support.

    Ich biete gratis Remotehands (SSH) für alle Netcup Kunden - von Kunde zu Kunde!
    Dazu einfach eine an mich .

  • Zitat von Servior;5557

    Das ganze blacklisten über die Firewall wäre natürlich einfacher wenn man die Regeln endlich mal verschieben könnte ;)


    Netcup ist ja noch in der Entwicklung und Weiterentwicklung - wart mal ab :)

    Ich biete gratis Remotehands (SSH) für alle Netcup Kunden - von Kunde zu Kunde!
    Dazu einfach eine an mich .

  • Zitat von Servior;5553


    Eine Möglichkeit ist davon auch bereits genutzt worden, nämlich die über phpmyadmin. Daher solltest du dieses auch gut absichern, z.b. indem nicht /phpmyadmin benutzt wird.


    Security by Obscurity ist aber auch nicht wirklich das wahre. Wenn man schon solche Sachen benutzt, ist es imho selbstverständlich eine HTTP-Authentifizierung vorzuschalten.


    Daneben finde ich, ist ein manuelles Eintragen in eine Firewall auch nicht wirklich sinnvoll. Die Wahrscheinlichkeit öfters von der gleichen IP abgerast zu werden ist doch eher gering. Und Schutzmechanismen die erst greifen nachdem der Scan durchgeführt wurden, bringen wohl nichts.

  • Bei mir gibt sich der Bot auch schon seid mehreren Tagen mühe.
    Erfolgreich war er aber bisher nicht nicht. *g*


    Lustig finde ich auch folgendes:

    Code
    [Fri Aug 07 11:23:13 2009] [error] [client 212.40.173.55] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
    [Fri Aug 07 12:23:49 2009] [error] [client 209.51.218.232] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
    [Fri Aug 07 13:14:35 2009] [error] [client 212.40.173.55] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
    [Fri Aug 07 13:50:57 2009] [error] [client 77.92.142.205] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
    [Fri Aug 07 15:05:47 2009] [error] [client 212.40.173.55] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)
    [Fri Aug 07 16:37:20 2009] [error] [client 212.174.153.69] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:)


    Laut diesem Thread hier, http://forum.ovh.de/showthread.php?t=5748, stammt das wohl von einem Scanner der nach Lücken in Microsofts IIS sucht.
    Wie man an dem Datum erkennen kann, sind auch auch schon länger "hinter mir her".

  • Einfach einmal täglich ein Script die Logs durchsuchen lassen und die IPs im Apache blocken, muss ja nicht gleich fürs ganze System sein. Ich mache das so seit ~1 Jahr und synchronisiere es mit zig anderen Servern (nicht nur von mir), das gibt eine nette Blacklist mit der Zeit. Die IPs kommen übrigens nach einiger Zeit wieder, bringt zwar nicht viel, wenn es eh nichts zum Hacken gibt wo die Suchen. Aber für so einen Schei** verschwende ich nicht mal eine 404-er Seite, dann lieber gleich 403 durch den Block :)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Aber wenn du die IPs ständig sammelst, wird die Blacklist dann nicht irgendwann zu groß? Ich denke mal, der Apache muss die bei jedem Zugriff erneut auswerten.


    Und dann gibt es noch das Problem, dass viele IPs dynamisch zugewiesen sind. Das heißt auch ein legitimer Besucher könnte eine IP auf der Blacklist bekommen.

  • Zitat von Kinch;5576

    Aber wenn du die IPs ständig sammelst, wird die Blacklist dann nicht irgendwann zu groß? Ich denke mal, der Apache muss die bei jedem Zugriff erneut auswerten.


    Und dann gibt es noch das Problem, dass viele IPs dynamisch zugewiesen sind. Das heißt auch ein legitimer Besucher könnte eine IP auf der Blacklist bekommen.


    Viele die es bei mir versuchen sind Server.
    Ich hab knapp 15 whois Anfragen gemacht. Bis auf ein paar waren es alle Server.

  • Zitat von Kinch;5576

    Aber wenn du die IPs ständig sammelst, wird die Blacklist dann nicht irgendwann zu groß? Ich denke mal, der Apache muss die bei jedem Zugriff erneut auswerten.


    Jein, wenn du das in die globale Serverkonfiguration reinhaust braucht das kaum Ressourcen. Ich war am Anfang auch skeptisch, als ich das von jemandem gehört habe, aber mittlerweile sinds bei mir mehrere Tausend IPs (als Deny from xxx Eintrag) und einige Rewrite-Regeln für IP-Bereiche. Das läuft super schnell und verkraftet Tausende Anfragen je Minute problemlos. Und einige Tests haben auch ergeben, dass es selbst in .htaccess Dateien sehr schnell läuft ;)


    Zitat von Kinch;5576

    Und dann gibt es noch das Problem, dass viele IPs dynamisch zugewiesen sind. Das heißt auch ein legitimer Besucher könnte eine IP auf der Blacklist bekommen.


    Eher unwahrscheinlich, denn das Script fügt eine IP nicht zur Blacklist, weil eine Seite aufgerufen wird, das müssen schon mehrere sein. Außerdem sind es Suchmasken, die zu 99,9% kein Besucher aufrufen würde. Außerdem ist es leicht die Whoisdaten oder den rDNS Eintrag der IP zu prüfen, das kann man dann auswerten und wirklich nur Server hinzufügen. Dynamische IPs sind leicht filterbar, wenn man sich damit rumspielt.



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Bei mir das selbe... denke dass ich den Server relativ gut abgesichert habe (root login brauch ich für winscp), Pfad zu Phpmyadmin hab ich geändert, ssh port sowieso (ich weiß bringt nicht viel), ist es auch nötig bzw. möglich den syscp ordner umzubenenen?


    Bin dennoch etwa unsicher könnte mal bitte jemand über die Logs schauen?


    Log via Pastie


    netcup es wäre toll wenn ihr mal bitte die Anhangsgröße für .txt Datein im Forum hochstellen könntet ;)

  • Zitat von Netcup-user;5586

    Bei mir das selbe... denke dass ich den Server relativ gut abgesichert habe


    Das denke ich auch.


    Zitat von Netcup-user;5586


    (root login brauch ich für winscp)


    Wofür denn genau? Ich bezweifle, dass es nötig ist. Müssen die Daten unbedingt gepusht werden oder können sie nicht auch gepullt werden?
    1. kann man wenn man als root eingeloggt ist, ja auch die dateien per scp hochladen (es müsste dann lokal ein sshd laufen, welcher nur für die Kopieraktion gestartet werden müsste)
    2. läuft lokal ein httpd und man läd vom root-account aus die Dateien per wget herunter. Falls ohne ssl kann man es ja in ein rar-Archiv mit passwort packen.



    Zitat von Netcup-user;5586

    Pfad zu Phpmyadmin hab ich geändert


    Ich habe den Pfad geändert, den Pfad per .htaccess Passwort gesichert und über eine globale RewriteRule wird bei einem http://-Aufruf auf https:// gewechselt und zwar bevor das Passwort abgefragt wird.


    Zitat von Netcup-user;5586

    ssh port sowieso (ich weiß bringt nicht viel)

    Na zumindest die einfachen Scanbots finden den sshd nicht mehr.
    Ich habe den rootlogin verboten und einen dummy-user angelegt nach dieser anleitung. Der Dummy-user (der nicht dummy heißen sollte) darf sich nur über einen passwortgeschützen Public Key einloggen.




    Zitat von Netcup-user;5586

    ist es auch nötig bzw. möglich den syscp ordner umzubenenen?


    Ja, es müssen nur die Cronscripte angepasst werden. Desweiteren habe ich den Pfad passwortgeschützt und auch dort wird von http:// auf https:// umgeleitet.


    Ich habe per Firewall alle Ports geschlossen,nur http, https, sshd (verschoben) und ftpd (verschoben) sind offen. Ich hoste nur meine privaten domains, die mails gehen an fusemail darum brauch ich keinen smtp, die domains sind bei einem Domainhoster, so dass bind auch nicht von außen erreichbar sein muss. Das svn repository ist nur per https erreichbar und ohne projectname gibt es ein 404. Bei proftpd habe ich nicht die beiden Optionen zur Loginbeschleunigung extra nicht gesetzt, so dass ein Login ca. 10 sec dauert. So kann ich ruhig schlafen.

  • Noch mal zu PhpMyAdmin:
    pma selber bietet auch eine http Authentification. Dabei werden die MySQL User via http Abgefragt.


    Hier mal die wichtigen Ausschnitte aus der Config:
    [PHP]/* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'http';[/PHP]
    Und damit sich nun nicht jeder MySQL User anmelden kann, sollte man noch ACLs definieren.
    [PHP]/* Access Control List */
    $cfg['Servers'][$i]['AllowDeny']['order'] = 'allow,deny';
    $cfg['Servers'][$i]['AllowDeny']['rules'] = array(
    'allow xxxxxxx from all'
    );
    [/PHP]Somit kann sich nur der User xxxxxxx anmelden. Man kann auch "allow,deny" zu "deny,allow" ändern, und dann 'deny root from all' schreiben. Dann dürfen sich alle außer root anmelden.


    Ich habe phpMyAdmin übrigens auf einer Subdomain liegen.

  • Zitat von sim4000;5922

    pma selber bietet auch eine http Authentification. Dabei werden die MySQL User via http Abgefragt.


    Allerdings könnte die durch ein unbekanntes Sicherheitsleck umgangen werden, das gabs in der Vergangenheit auch schon mal, wenn ich mich richtig erinnere :(
    Und einige PMA Dateien - die Informationen über die eingesetzte Verson usw. geben - schützt man so leider auch nicht. Ist allerdings bei einem System mit mehreren Benutzern die einzige Möglichkeit, gut dass du es einmal erklärt hast :)


    Zitat von sim4000;5922

    Ich habe phpMyAdmin übrigens auf einer Subdomain liegen.


    btw: Das habe ich auch, und selbst die haben die Scan-Bots bald gefunden, wenn man nicht gerade eine unlogische Zeichenfolge nimmt :o



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Zitat von killerbees19;5924


    btw: Das habe ich auch, und selbst die haben die Scan-Bots bald gefunden, wenn man nicht gerade eine unlogische Zeichenfolge nimmt :o


    Meine Inclusiv-Domain benutze ich sowieso nur zur Administration, wenn ich die Verzeichnisse /syscp und /phpmyadmin nur über die Domain erreichbar mache, sollten das nicht allzuviele finden, oder irre ich mich?


    Der Grund ist, dass ich die Verzeichnisse umbenannt habe, aber das macht wohl bei einem Update Probleme.