Hallo, ich möchte mal hier einwerfen, wie ich mit Angriffsversuchen verfahre. Eventuell kann ich dem einen oder anderen noch was mitgeben Allerdings weiss ich nicht, ob das auch auf fertige Shoplösungen verschiedener Provider abzubilden ist. Ich betreibe meinen Shop auf einem Root-Server mit vollen Rootrechten. Dadurch ist man um einiges flexibler. 1. "live"-Beobachtungen: Wie hier schon mehrfach gepostet, kann man ja über "wer ist online ?" im Gambioadmin anzeigen, welche Seiten aufgerufen werden. Sind dort URLs gelistet, die es so nicht gibt, oder die niemanden was angehen bzw. der Verdacht eines Hackversuches wecken, gehe ich wie folgt vor: Über die URL https://www.countryipblocks.net und der Eingabe der IP-Adresse erhalte ich den "Ursprung", meist China oder irgendwas im Osten. Beispiel des Ergebnisses (diesesmal Canada): Wichtig ist nun der Eintrag CIDR: 209.172.32.0/19. Dieser gibt mir das Netzwerk und nicht nur den Host. Da viele Hacker innerhalb des Netzwerkes, über das sie ihr Unwesen treiben, die IP-Adresse häufig wechseln, sperre ich das gesamte Netzwerk wir folgt: Mit putty oder einem anderen SSH-Client melde ich mich als root am Server an. IPTABLES ist eigendlich bei jedem LINUX standardmäßig installiert. Daher benötige ich nur einen Befehl, um obiges Netzwerk zu sperren. Für ALLE Protokolle. Also auch für Mail, http, https usw.... iptables -A INPUT -s 209.172.32.0/19 -j REJECT Ab jetzt ist ruhe, bis zum nächsten Sturm. Handelt es sich um eine IP-Adresse aus Deutschland oder einem Land, in das ich meine Waren verkaufe, verzichte ich darauf, das ganze Netz zu sperren sondern eben nur die IP. Im Anschluss schreibe ich einen kurzen Abuse-Report an den Provider. Eine IP wieder freigeben kann man mit dem gleichen Befehl, dann allerdings das -A durch ein -D ersetzen. Nach kurzer Zeit gebe ich zumindest die Deutschen IP-Adressen wieder frei. 2. Anhand der Log Wenn Euer Shop "irgendwie langsam" wird, muss das nicht an Gambio liegen. Es kann auch ein Kompromittierungsversuch über SSH oder auf den SQL sein. Der Server kann auch angegriffen werden ohne, das der Server spürbar langsamer wird (nur zur Ergänzung). Ich schaue in regelmäßigen Abständen immer über die URL http://www.html-world.de/tools/server.php nach der Geschwindigkeit der Serverantwort nach. Im Schnitt immer unter 1Sek.. ABER... man sollte immer wieder in die Datei /var/log/messages schauen und wird sich wundern, was da so alles abgeht: Das ist nur ein kleiner Auszug und kann stundenlang dauern. Im obigen Beispiel sind es "nur" Angriffe auf SSH. Sowas gibt es aber auch auf alle anderen Protokolle und auf den SQL-Server. Die IP bzw. das Netzwerk sperre ich genau so, wie oben beschrieben mit iptables. Es gibt auch ein Tool, das die logdatei überwacht und nach vorgegebenen Kriterien die entsprechenden IPs und Netzwerke sperrt oder nach einer gewissen Zeit wieder freigibt. Es heisst Fail2Ban http://www.fail2ban.org/wiki/index.php/Main_Page . So lässt sich beispielsweise einstellen, das nach einer bestimmten Anzahl an Anmeldeversuche via SSH o.ä. das Netz/IP gesperrt wird. Ich verfahre so, seitdem ich mit dem Shop online bin. Anfangs hatte ich einiges zu tun, meine aber, das es mit der Zeit weniger wurde. Zusätzlich empfehle ich immer diese Adminoberflächen wie PLESK- und oder WEBADMIN-Dienst abzuschalten und nur bei Bedarf zu starten. Zum einen hat man mehr Performance zur Verfügung und zum anderen hat man ein Gefahrenpotential weniger.
Gibt es keine einfach Methode ganze Länder zu sperren? Ich meine, wenn ich keine Geschäfte mit Korea oder RUS machen will, dann tut mir das doch nicht weh, wenn die nicht dürfen. Oder umgekehrt: Sperre für alle bis auf z.B. DE, AT, CH? Der Eintrag CIDR xxx wirkt der auch in der .htaccess?
Das ist doch schon mal ne richtig gute Anleitung. Plesk & Co. haben bei uns nix verloren. Erstens aus Performance-Gründen und dann die Sicherheit! Weiter empfehlen würde ich die Ports für SSH, FTP usw abzuändern und nicht die Standartports zu verwenden. Wenn man dies tut und dann mal im LOG.File nachsieht wer da alles auf die Standartports Angriffe macht, zeichnet es ein leichtes grinsen ins Gesicht. Aber ACHTUNG, wenn ich nen Server tot legen will, reicht ne gescheite DOS-Atacke. Dann geht nix mehr.
Hallo Hans, ich hatte auch schon mal über so eine Länder-Sperre nachgedacht, habe den Gedanken aber verworfen. Deutschland ist eine Multi-Land und ein Chinese, der in Deutschland wohnt, nutzt vermutlich nicht google.de sondern eine chinesische Suchmaschine. Aber die Netzwerk-Sperre würde mich auch interessieren.
Sollte machbar sein mit: Code: order allow,deny deny from 222 allow from all Die 222 steht für China. Kann natürlich auch sein das China noch mehrere IP Ranges hat. Müsste man ergooglen. Wichtig! für jede IP eine neue Zeile. Sieht dann so aus: Code: order allow,deny deny from 222 deny from 223 deny from 234 allow from all Das Ganze in eine .htaccess und ab in dein Stammverzeichnis. Könnt Euch ja selbst mal aussperren. Keine Angst per ftp kann man die Sperre ja wieder raus nehmen.
Hallo, .htaccess halte ich insofern für keine Superlösung, da diese nur auf Anfragen an den Webserver nützlich ist. Zumal glaube ich, wird die .htaccess bei jeder URL neu eingelesen. Wenn diese dann immer länger wird, wird ja auch der Seitenaufbau länger dauern. Ein weiteres Problem ist, das meist der Weg eines Kompromittierungsversuch bei den Protokollen auf Anwendungsebene anfängt. Also FTP, SSH, SMTP, HTTP und so weiter. Erst dann werden "bekannte" Fehler im PHP, SQL, Shopsoftware etc versucht zu finden. Das "große" Programm lässt sich wohl kaum mit .htaccess lösen :-/
Schon richtig. Aber Du hast dann vor solchen Dingen erst mal Ruhe: Code: 184.107.179.242 - - [17/Jul/2012:19:24:19 +0200] "GET //3rdparty/phpMyAdmin/scripts/setup.php HTTP/1.1" 404 10115 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:20 +0200] "GET //admin/mysql/scripts/setup.php HTTP/1.1" 404 297 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:21 +0200] "GET //admin/phpmyadmin/scripts/setup.php HTTP/1.1" 404 302 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:21 +0200] "GET //admin/pma/scripts/setup.php HTTP/1.1" 404 295 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:21 +0200] "GET //_admin/scripts/setup.php HTTP/1.1" 404 10134 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:22 +0200] "GET //admin/scripts/setup.php HTTP/1.1" 404 291 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:22 +0200] "GET /admin/scripts/setup.php HTTP/1.1" 404 291 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:22 +0200] "GET //admm/scripts/setup.php HTTP/1.1" 404 10089 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:23 +0200] "GET //admn/scripts/setup.php HTTP/1.1" 404 10058 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:24 +0200] "GET //backup/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10125 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:25 +0200] "GET //backup/phpMyAdmin/scripts/setup.php HTTP/1.1" 404 10104 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:25 +0200] "GET //bbs/data/scripts/setup.php HTTP/1.1" 404 10054 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:26 +0200] "GET //bkup/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10085 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:27 +0200] "GET //bkup/phpMyAdmin/scripts/setup.php HTTP/1.1" 404 10090 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:27 +0200] "GET //cpadmindb/scripts/setup.php HTTP/1.1" 404 10108 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:28 +0200] "GET //cpadmin/scripts/setup.php HTTP/1.1" 404 10070 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:30 +0200] "GET //cpanelmysql/scripts/setup.php HTTP/1.1" 404 10042 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:31 +0200] "GET //cpanelphpmyadmin/scripts/setup.php HTTP/1.1" 404 10127 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:32 +0200] "GET //cpanelsql/scripts/setup.php HTTP/1.1" 404 10047 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:32 +0200] "GET //cpdbadmin/scripts/setup.php HTTP/1.1" 404 10121 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:33 +0200] "GET //cpphpmyadmin/scripts/setup.php HTTP/1.1" 404 10105 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:34 +0200] "GET //databaseadmin/scripts/setup.php HTTP/1.1" 404 10095 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:34 +0200] "GET //dbadmin/scripts/setup.php HTTP/1.1" 404 10114 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:35 +0200] "GET //db/scripts/setup.php HTTP/1.1" 404 10102 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:41 +0200] "GET //myadmin/scripts/setup.php HTTP/1.1" 404 10132 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:42 +0200] "GET //MyAdmin/scripts/setup.php HTTP/1.1" 404 10121 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:43 +0200] "GET //mysqladminconfig/scripts/setup.php HTTP/1.1" 404 10075 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:44 +0200] "GET //mysql-admin/scripts/setup.php HTTP/1.1" 404 10054 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:45 +0200] "GET //mysqladmin/scripts/setup.php HTTP/1.1" 404 10138 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:45 +0200] "GET //MySQLAdmin/scripts/setup.php HTTP/1.1" 404 10110 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:46 +0200] "GET //mysqlmanager/scripts/setup.php HTTP/1.1" 404 10105 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:47 +0200] "GET //mysql/scripts/setup.php HTTP/1.1" 404 10050 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:48 +0200] "GET //phpadmin/scripts/setup.php HTTP/1.1" 404 10048 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:48 +0200] "GET //phpmanager/scripts/setup.php HTTP/1.1" 404 10101 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:49 +0200] "GET //phpm/scripts/setup.php HTTP/1.1" 404 10112 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:50 +0200] "GET //phpmyadmin1/scripts/setup.php HTTP/1.1" 404 10072 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:51 +0200] "GET //phpMyAdmin1/scripts/setup.php HTTP/1.1" 404 10071 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:51 +0200] "GET //_phpmyadmin/scripts/setup.php HTTP/1.1" 404 10076 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:52 +0200] "GET //php-my-admin/scripts/setup.php HTTP/1.1" 404 10094 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:52 +0200] "GET //php-myadmin/scripts/setup.php HTTP/1.1" 404 10107 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:53 +0200] "GET //phpmy-admin/scripts/setup.php HTTP/1.1" 404 10116 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:54 +0200] "GET //phpmyadmin/scripts/setup.php HTTP/1.1" 404 10072 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:54 +0200] "GET //_phpMyAdmin/scripts/setup.php HTTP/1.1" 404 10114 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:55 +0200] "GET //phpMyAdmin/scripts/setup.php HTTP/1.1" 404 10047 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:56 +0200] "GET //pHpMyAdMiN/scripts/setup.php HTTP/1.1" 404 10118 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:56 +0200] "GET //PHPMYADMIN/scripts/setup.php HTTP/1.1" 404 10075 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:57 +0200] "GET //phpMyAdmi/scripts/setup.php HTTP/1.1" 404 10069 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:59 +0200] "GET //phpmyad/scripts/setup.php HTTP/1.1" 404 10127 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:24:59 +0200] "GET //phpMyAds/scripts/setup.php HTTP/1.1" 404 10068 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:00 +0200] "GET //phpmyad-sys/scripts/setup.php HTTP/1.1" 404 10078 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:01 +0200] "GET //phpmya/scripts/setup.php HTTP/1.1" 404 10126 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:01 +0200] "GET //phpMyA/scripts/setup.php HTTP/1.1" 404 10039 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:02 +0200] "GET //phpmy/scripts/setup.php HTTP/1.1" 404 10047 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:03 +0200] "GET //pHpMy/scripts/setup.php HTTP/1.1" 404 10047 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:03 +0200] "GET //php/scripts/setup.php HTTP/1.1" 404 10111 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:04 +0200] "GET //pma2005/scripts/setup.php HTTP/1.1" 404 10114 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:05 +0200] "GET //PMA2005/scripts/setup.php HTTP/1.1" 404 10126 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:05 +0200] "GET //p/m/a/scripts/setup.php HTTP/1.1" 404 10062 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:06 +0200] "GET //pma/scripts/setup.php HTTP/1.1" 404 10116 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:07 +0200] "GET //pMA/scripts/setup.php HTTP/1.1" 404 10124 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:08 +0200] "GET //~/PMA/scripts/setup.php HTTP/1.1" 404 10115 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:09 +0200] "GET //PMA/scripts/setup.php HTTP/1.1" 404 10107 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:09 +0200] "GET //roundcube/scripts/setup.php HTTP/1.1" 404 10112 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:10 +0200] "GET //scripts/setup.php HTTP/1.1" 404 10039 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:11 +0200] "GET //sl2/data/scripts/setup.php HTTP/1.1" 404 10076 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:11 +0200] "GET //sqladmin/scripts/setup.php HTTP/1.1" 404 10051 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:12 +0200] "GET //sqlmanager/scripts/setup.php HTTP/1.1" 404 10066 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:12 +0200] "GET //sql/scripts/setup.php HTTP/1.1" 404 10099 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:13 +0200] "GET //SQL/scripts/setup.php HTTP/1.1" 404 10072 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:14 +0200] "GET //sqlweb/scripts/setup.php HTTP/1.1" 404 10069 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:15 +0200] "GET //SSLMySQLAdmin/scripts/setup.php HTTP/1.1" 404 10053 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:15 +0200] "GET //typo3/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10142 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:16 +0200] "GET //vhcs2/tools/pma/scripts/setup.php HTTP/1.1" 404 10151 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:16 +0200] "GET //webadmin/scripts/setup.php HTTP/1.1" 404 10090 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:17 +0200] "GET //webdb/scripts/setup.php HTTP/1.1" 404 10066 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:18 +0200] "GET //web/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10090 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:19 +0200] "GET //web/phpMyAdmin/scripts/setup.php HTTP/1.1" 404 10121 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:19 +0200] "GET //web/scripts/setup.php HTTP/1.1" 404 10065 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:20 +0200] "GET //websql/scripts/setup.php HTTP/1.1" 404 10104 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:21 +0200] "GET //wp-content/plugins/wp-phpmyadmin/wp-phpmyadmin/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10120 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:22 +0200] "GET //wp-phpmyadmin/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10132 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:22 +0200] "GET //wp-phpmyadmin/scripts/setup.php HTTP/1.1" 404 10106 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:23 +0200] "GET //xampp/phpmyadmin/scripts/setup.php HTTP/1.1" 404 10144 "-" "-" 184.107.179.242 - - [17/Jul/2012:19:25:24 +0200] "GET / HTTP/1.1" 200 13891 "-" "-"
Hi, da die meisten Angriffe bzw. dessen Versuche jedoch auf die Manipulation der eigentlichen Website basieren, gebe ich mich derzeit mit meiner Lösung zufrieden. Wir sind derzeit nebenbei noch an einer Routine dran, welche auf Basis der erstellten error.html sowie den gespeicherten logs von Gambio eine Art eigene Rule erzeugt, nachdem die vorher angesetzten "Angriffe" automatisch in eine Sperrliste fallen. Momentan reicht mir meine Lösung jedoch vollkommen aus, da ich bereits hier in den ersten 24 Stunden Angriffe=0 habe...
Habe mir gerade die Log-Datei angesehen und diesen Eintrag gefunden. / HTTP/1.0" 200 11868 "http://www.gambio-forum.de/threads/6958-DB-Eintr%E4ge-werden-1-Tag-weniger!?p=43065" Uhrzeit 06:06:05 Kann mir das jemand erklären?
Kann sein, dass wenn mon aus diesem Thread über deinen Shoplink auf deinen Shop geht, der Ursprung des Backlinks mit übergeben wird.
Das würde ich mir genau überlegen! Wir haben einen Stamm-KD der kommt über eine vietnamesische IP ... mit Wohnort München!
@britodo: Wieso rejectest du die Angriffe? Ich droppe diese einfach. die hack-robots denken dann, Sie wären noch immer auf dem Server und werden nicht abgelehnt. ;-) iptables -I INPUT -p tcp -j DROP -s IP-Adresse/32 BTW: hab übrigens mehrmals täglich, dass die autom. hack-robots 0815 verzeichnisse wie wordpress o.ä. auf gut glück versuchen.
@Danny Hast Du mal versucht die Produktdetailseite im checkout zu öffnen? Kommt ja dann ein Popup. Mit Deiner Abwehrlösung kommt die Errorseite! Habs erstmal bei mir wieder rausgenommen und beschränke mich auf IP´s blocken. Hab Dir die Nachricht nochmal über dein Kontaktformular auf deiner Seite geschickt. Dabei ist mir aufgefallen das dein SSL nicht verschlüsselt.
Hi, kann ich irgendwie nicht nachvollziehen das ganze. Bei mir geht am Ende in der checkout der Produktdetaillink problemlos auf...siehe Bilder
Wie geht das denn? Im checkoutstring sind doch auch "{" drin? Bei mir hat es auf die error Seite geschaltet. https://tueren-leichtkauf.de/request_port.php?module=ProductDetails&id=16{1}1{2}4{22}96{11}62{10}60{9}56{8}58
Was deine Verschlüsselung angeht..:: Na klar verschlüsselt die...warum auch nicht. Da ich einen SSL proxy verwende, werden nur jeweils die Übertragungen kurz gesichert....das siehst Du, wenn man auf senden klickst...genauso wie bei der Anmeldung am Shop... EDIT: An ALLE, welche die von mir beschrieben Lösung eingebaut haben: Bitte überprüft in eurer checkout am Ende der Bestellung, ob ihr eure Produktdetailseite aufrufen könnt oder wie bei Ingo da ebenfalls die error.html erscheint und sagt mir hier bitte kurz Bescheid. Ich werde dann mal schauen, ob und wie man das speziell für die checkout anpassen könnte.
@Danny Ich hab mal eben bezüglich SSL 2 Screens gemacht. Einmal von meiner Kontaktseite und einen von Deiner. Vertrauensfördernd ist deine Lösung nicht gerade... Nicht Böse gemeint. Ist mir nur grad aufgefallen.