» robots.txt für Honeypot-Firewall nutzen

Komprimierung bei Hetzner aktivierenNeuen Thread eröffnenNeue Antwort erstellenBraucht man für file_put_contents ein LOCK_EX bei FILE_APPEND?
AutorNachricht
Administrator 

Name: Marc
Geschlecht:
Anmeldedatum: 28.08.2004
Beiträge: 52420
Wohnort: Lohmar


Meine eBay-Auktionen:
22.02.2017, 21:25
zitieren

In unserem Forum nutzen wir eine PHP Firewall, die hier näher beschrieben wird:
http://www.maxrev.de/php-firewall-blockt-nun-ips-von-spam-bots-t234957.htm

Diese haben wir nun so erweitert, dass alle Zugriffe auf Verzeichnisse, die nicht auf unserem Server existieren, ebenfalls zur Sperre der IP führen.

Da ich keine Lust hatte jedes dieser Verzeichnisse real als Honeypot anzulegen und darin dann Skripte zu installieren, die die IP blockieren, bin ich schlussendlich auf die robots.txt gekommen. Wir haben z.B. kein Wordpress installiert, aber es erreichen uns täglich Angriffsversuche auf deren Dateien. Also habe ich nun folgendes in unserer robots.txt ergänzt:
Disallow: /wp-admin/
Disallow: /wp-content/
Disallow: /wp-includes/

Und da der Server PHP spricht und kein ASP.NET können wir auch gleich die Zugriffe auf solche Dateien unterbinden:
Disallow: /*.asp$
Disallow: /*.aspx$
Disallow: /*.asp?
Disallow: /*.aspx?

Alle Suchmaschinen halten sich an diese Regeln und werden keine Links wie z.B.
example.com/wp-admin/index.php
aufrufen. Aber die bösen Bots tun es, da sie Sicherheitslücken aufdecken möchten. Doch wie blockieren wir nun deren IPs?

Ich habe dazu in der .htaccess diese Regel definiert:
ErrorDocument 404 /?404

Das führt dazu, dass alle 404 Fehler (Seite nicht gefunden) auf die Startseite, also die index.php geleitet werden. Und in der index.php mache ich nun einfach das:
// 404 not found errors
if (isset($_GET['404'])) {
$robots = file_get_contents('robots.txt');
preg_match_all('/Disallow: (.*?)\n/', $robots, $rows);
foreach ($rows[1] as $disallow) {
$disallow = str_replace(array('\\*', '\\$'), array('.*', '$'), preg_quote($disallow));
if (preg_match('#^' . $disallow . '#', $_SERVER['REQUEST_URI'], $pos, PREG_OFFSET_CAPTURE) && $pos[0][1] === 0) {
touch('firewall/' . $_SERVER['REMOT_ADDR']);
break;
}
}
}

Ich lese also die komplette robots.txt ein, extrahiere daraus alle Verbote, vergleiche sie mit dem Link der nicht gefundenen Seite und wenn es zu einem Fund kommt dann... Bämm: Die IP wird dank der restlichen Einstellungen in der .htaccess gesperrt:
# redirect if ip has been banned
ErrorDocument 403 /
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond /usr/www/firewall/%{REMOTE_ADDR} -f
RewriteRule . - [F]

Einfach und effektiv.

P.S. Wie sich ein versehentlich gesperrter Besucher wieder freischalten kann steht in dem oben verlinkten Thread.



Verfasst am: 22.02.2017, 22:29
zitieren

Hast Du diese Wildcard- / Dollar-Regeln nicht verstanden?
Disallow: /*.asp$
Disallow: /*.aspx$
Disallow: /*.asp?
Disallow: /*.aspx?

Dann lies dir dazu die FAQ von Google durch:
https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt?hl=de#bereinstimmungen-von-beispielpfaden


 
2017-02-22 23_29_49-2017 02 22 23 27 50 Robots.txt Spezifikationen     Webmasters     Google Develop.png
2017-02-22 23_29_49-2017 02 22 23 27 50 Robots.txt Spezifikationen     Webmasters     Google Develop.png - [Bild vergrößern]

 3x  bearbeitet
pn email
Gast 
22.02.2017, 22:29
zitieren

Mach mit!

Wenn Dir die Beiträge zum Thread "robots.txt für Honeypot-Firewall nutzen" gefallen haben oder Du noch Fragen hast oder Ergänzungen machen möchtest, solltest Du Dich gleich bei uns anmelden:



Registrierte Mitglieder genießen die folgenden Vorteile:
✔ kostenlose Mitgliedschaft
keine Werbung
✔ direkter Austausch mit Gleichgesinnten
✔ neue Fragen stellen oder Diskussionen starten
✔ schnelle Hilfe bei Problemen
✔ Bilder und Videos hochladen
✔ und vieles mehr...


Neuen Thread eröffnenNeue Antwort erstellen
Ähnliche BeiträgeRe:
Letzter Beitrag
Windows Firewall
Den kannte ich noch gar nicht....
von mgutt
4
101
11.09.2015, 09:03
mgutt
PHP Firewall blockt nun IPs von Spam-Bots
Dies ist eine simple aber sehr effiziente Firewall aus einer Kombination von PHP und .htaccess. Funktionsweise Bei jedem Aufruf unserer Seite prüft die .htaccess ob die Datei "firewall/{IP-Adresse}.txt" existiert und wenn ja dann stoppt das...
von mgutt
19
2.501
29.03.2017, 07:44
mgutt
Firewall Architekt (m/w/d) | HYDAC INTERNATIONAL GmbH
Bewerben Sie sich bis zum 13.12.2023. Jetzt bewerben!(https://api.relaxx.center/r/0e35ec19ccb14441b0b0888fdbf5be83?pid=1998303&mpid=1294699&prid=1021081&tid=30) Zur Stellenanzeige auf Mein IT Job(https://s.jobboarddeutschland.de/1g14) Ihre...
[Jobs & Stellenangebote]von kimjob
0
48
18.10.2023, 19:10
kimjob
Firewall Administrator (m/w/d) | HYDAC INTERNATIONAL GmbH
Bewerben Sie sich bis zum 13.12.2023. Jetzt bewerben!(https://api.relaxx.center/r/3d547d2eb1fb45b4a650f2e5d8f59816?pid=1998317&mpid=1294703&prid=1021081&tid=30) Zur Stellenanzeige auf Mein IT Job(https://s.jobboarddeutschland.de/1g2s) Ihre...
[Jobs & Stellenangebote]von kimjob
0
49
19.10.2023, 18:08
kimjob
Junior Firewall- und Netzwerkadministrator (m/w/d) in Bremen gesucht
think energy Gemeinsam gestalten wir die Energieversorgung der Zukunft! Sie möchten nachhaltig etwas bewegen? Den Ausbau der erneuerbaren Energien in einem wachsenden und zukunftsfähigen Geschäftsfeld weiter voranbringen? wpd bietet Ihnen die...
[Jobs & Stellenangebote]von ExpressJ
0
128
25.08.2023, 09:25
ExpressJ
Firewall-Regeln fehlerhaft: fw3_ipt_rule_append(): Can't find target
Nach Änderungen in der Firewall eines OpenWRT Routers bekomme ich diverse Fehlermeldungen: root@GL-AR150:/etc/config# /etc/init.d/firewall reload * Clearing IPv4 filter table * Clearing IPv4 nat table * Clearing IPv4...
von mgutt
4
758
04.05.2017, 18:36
Walter1337
OBD-II-Interface im CN2 nutzen
da mache ich einfach noch mal einen neuen Thread auf. eigentlich gibt es den ja schon mal [URL=http://www.maxrev.de/obd-ii-interface-im-cn2-nutzen-t93091.htm]hier[/URL] aber da scheint es keiner zu sehen. Ich habe 2 verschiedene OBD-2-Interfaces zur...
von felline
4
438
02.04.2009, 14:18
felline
OBD-II-Interface im CN2 nutzen
da mache ich einfach mal einen neuen Thread auf. Ich habe 2 verschiedene OBD-2-Interfaces zur Hand, einmal ein rein lesend nutzbares (irgendso ein Billigkram, der wohl ein wenig kompatibel mit dem KWP2000 zu sein scheint, als weiteres einen Flasher,...
von felline
0
1.452
27.03.2009, 10:41
felline
Server als PC nutzen
Hallo, ich könnte auf Arbeit unsere alten Server umsonst bekommen. Zuerst war der Gedanke, diese Zuhause als Server zu verwenden. Naja.. Es hat keiner Interesse daran... Aber da mein PC schon ziemlich alt ist, kam mir die Idee. Vll kann ich das Ding als...
von khena
13
2.458
12.03.2013, 20:49
D-HZSD
Nivelliermasse nutzen
Moin, hab mal ein paar Fragen zu Nivelliermasse/Bodenausgleichsmasse. Folgende Situation, habe Trockenestrich auf Schüttung verlegt. Die Abziehlehre war leider Mist, hat sich in der Mitte durchgebogen und hat dann dafür gesorgt das ich in einem Raum...
von Zachan
4
334
17.10.2019, 15:47
Zachan
© 2004 - 2024 www.programmierer-forum.de | Communities | Impressum |