derHeiko

2x " order allow,deny " bzw. " allow from all " in einer .htaccess

Recommended Posts

Moin,

ich habe ein Problem mit meiner .htaccess?

Ich möchte via .htaccess eine Witelist erstellen:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order deny,allow
Deny from all
Allow from env=AllowCountry

Das funktioniert, allerdings darf keine andere Regel in der .htacces sein wie zum Beispiel:

<Limit GET POST HEAD>
order allow,deny
deny from 185.6.8
allow from all
</Limit>

Das setzen von 2x " order allow,deny " bzw. " allow from all " in einer .htaccess funktioniert wohl nicht.

Habt ihr evtl. noch eine Lösung wie ich die zweite Regel setzen kann? 

Danke vorab 

Gruß Heiko

Share this post


Link to post
Share on other sites
1 hour ago, derHeiko said:

Das funktioniert, allerdings darf keine andere Regel in der .htacces sein wie zum Beispiel:

<Limit GET POST HEAD>
order allow,deny
deny from  
allow from all
</Limit>

Ich bin kein htaccess Spezialist das mal vorweg.

Das deny im <Limit GET POST HEAD> lässt sich nicht im GeoIPEnable On unterbringen? Die IP sieht arg kurz aus fehlt da nicht was? 

Share this post


Link to post
Share on other sites

Hi.

6 minutes ago, arnego2 said:

Die IP sieht arg kurz aus fehlt da nicht was? 

Nein, das bezieht sich dann auf den ganzen Block. Das passt.

1 hour ago, derHeiko said:

Das setzen von 2x " order allow,deny " bzw. " allow from all " in einer .htaccess funktioniert wohl nicht.

Korrekt. Denn mit der Regelung außerhalb des LIMIT-Blocks setzt du das bereits global.

Mir erschließt sich auch der Sinn nicht, warum du GET POST und HEAD noch einmal separat limitierst, wen du es vorher bereits global unterbindest?

Es ergibt auch keinen Sinn, die Regel so aufzubauen. Erst sagst du, du möchtest es einschränken auf AllowCountry, dann erlaubst du doch alle bis auf eine IP-Range...

Formuliere doch bitte mal in einfachen Sätzen, was du bezweckst.

Matthes

  • Thanks 1

Share this post


Link to post
Share on other sites

Danke für die schnelle Antwort. 
Gerne beschreibe ich es ausführlicher.

Bis vor einigen Wochen habe ich per Hand Länder ausgesperrt, welche uns Attackiert haben.

<IfModule mod_geoip.c>
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE (CN|ID|CA|HK|IN|TW|JP|RU|TR|IL|TH|EG) BlockCountry
Deny from env=BlockCountry
</IfModule>

Dann habe ich erfahren, dass man es auch umgekehrt handhaben kann, in dem man Länder freigibt. 

Also habe ich es so gelöst. 

GeoIPEnable on
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE BE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE BG AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE HR AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CY AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CZ AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE DK AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE EE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE FI AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE FR AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE GR AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE HU AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE IT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE LV AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE LT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE LU AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE MT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE NL AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE PL AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE PT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE RO AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE SK AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE SI AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE ES AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE SE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE GB AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE IR AllowCountry
Order deny,allow
Deny from all
Allow from env=AllowCountry

Ich möchte nur europäische Länder auf meine Seite lassen.
Mein Inhalt ist nur dafür interessant, alle anderen Länder (außer US|CH) sollen geblockt werden, weil von dort nur Spam und Attacken kommen. 

Davor hatte ich noch weitere Regeln. 

Zum einen gibt es auch Server innerhalb der EU die uns Attackieren. 
Diese möchte ich per IP Sperren: 

<Limit GET POST HEAD>
order allow,deny
deny from *.*.*.*
allow from all
</Limit>

Des Weiteren hatte ich noch eine Regel für Bots
 

### Anfang Blacklist-Methode

BrowserMatchNoCase "Cliqzbot" bots
BrowserMatchNoCase "DomainCrawler" bots
BrowserMatchNoCase "MegaIndex.ru" bots
BrowserMatchNoCase "spbot" bots
BrowserMatchNoCase "AhrefsBot" bots
BrowserMatchNoCase "seokicks" bots
BrowserMatchNoCase "netEstate" bots
BrowserMatchNoCase "AlphaBot" bots
BrowserMatchNoCase "MJ12bot" bots
BrowserMatchNoCase "AlphaSeoBot" bots
BrowserMatchNoCase "SISTRIX" bots
BrowserMatchNoCase "MauiBot" bots
BrowserMatchNoCase "DotBot" bots
BrowserMatchNoCase "VelenPublicWebCrawler" bots
BrowserMatchNoCase "Seekport" bots
BrowserMatchNoCase "Linguee Bot" bots
BrowserMatchNoCase "crawler_eb_germany" bots
BrowserMatchNoCase "adscanner" bots
BrowserMatchNoCase "seoscanners" bots
Order Allow,Deny
Allow from ALL
Deny from env=bots

### Ende Blacklist-Methode

und eine Regel für Bilderklau

### Bilder-Klau Blacklist-Methode
RewriteCond %{HTTP_REFERER} megaapp.info [NC,OR]
RewriteCond %{HTTP_REFERER} resanta.info [NC,OR]
RewriteCond %{HTTP_REFERER} hitoiro.info [NC,OR]
RewriteCond %{HTTP_REFERER} boomfarm.info [NC,OR]
RewriteCond %{HTTP_REFERER} usmile.info [NC,OR]
RewriteCond %{HTTP_REFERER} stempel-bosch.ru [NC,OR]
RewriteCond %{HTTP_REFERER} bestenkasten.blogspot.com [NC,OR]
RewriteCond %{HTTP_REFERER} lacronicausa.com [NC,OR]
RewriteCond %{HTTP_REFERER} portal-nuevoleon.com [NC,OR]
RewriteCond %{HTTP_REFERER} fishzero.com
RewriteCond %{REQUEST_URI} !/warning.jpg
RewriteRule .*.(png|jpg|gif|svg|bmp)$ https://www.Domain.de/images/warning.jpg [L]
allow from all

### Ende Bilder-Klau Blacklist-Methode

Diese funktionieren leider nicht mehr, seit ich die Whitelist Regel drin habe. 

Wenn ich deine Antwort richtig verstehe, habe ich mit der Geo Regel eine Regel gesetzt, die sich über alle anderen hinwegsetzt (global). 

Das bedeutet, ich muss diese eingrenzen?
Ich bin absoluter Neuling in dem Thema und habe mir die .htaccess bis dato nur mit "Lesen" zusammen gebaut.  

Ganz vielen lieben Dank vorab für deine Antwort und Hilfe.

 

Share this post


Link to post
Share on other sites

Ok, das ist erst einmal ziemlich viel und dadurch sehr schlecht zu warten.

Wie sehen die Angriffe aus, dass das notwendig wurde? Ich habe früher einmal auch gedacht, ich müsse meinen Server auf diese Weise schützen - das ist aber meist völlig übertrieben. Da würde ich an deiner Stelle noch einmal die Notwendigkeit prüfen und evtl. in Erfahrung bringen, ob dein Anbieter serverseitig Tools wie fail2ban oder mod_security unterstützt.

 

Zu den anderen Regeln:

Aktuell mischst du eine WhiteList und eine Blacklist. Über die Länderregeln erstellst du eine WhiteList, über die individuellen IP-Sperren eine Blacklist.

Du kannst die individuellen IPs problemlos vor die folgende Zeile setzen:

Allow from env=AllowCountry

Dann sparst du dir den ganzen LIMIT-Block. Der ist unnötig. Der Teil aus dem Eingangsbeitrag sähe dann so aus:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order deny,allow
Deny from all
Deny from 185.6.8
Allow from env=AllowCountry

Order deny, allow bedeutet, dass "allow" Standard ist und Deny-Rules gesetzt werden müssen.

Sinnvoller ist bei dir, da du eine WhiteList etablieren willst, Order allow, deny zu verwenden.

D.h. es wird erst einmal alles blockiert, außer es gibt eine explizite Allow-Regel. Folgender Block setzt das um:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order allow, deny #alles, was nicht freigegeben wurde, wird blockiert
Allow from env=AllowCountry #du gibst alle Länder, die du oben definiert hast, frei
Deny from 185.6.8 #du blockierst speziell noch einmal diese IP, alle weiteren erhalten jeweils eine zusätzliche Zeile darunter

Beim Bilderklau fügst du einfach eine "allow from all"-Regel ein, die braucht es da aber nicht. Die bezieht sich nie auf den vorherigen Block, die braucht es nur einmal (wenn überhaupt).

Den Bilderklau würde ich auch über eine WhiteList lösen, es gibt prinzipiell sicher weniger erlaubte als verbotene Domains:

### Bilder-Klau WhiteList-Methode
RewriteCond %{HTTP_REFERER} !domain.de[NC]
RewriteCond %{REQUEST_URI} !/warning.jpg
RewriteRule .*.(png|jpg|gif|svg|bmp)$ https://www.Domain.de/images/warning.jpg [L]

Ist weit weniger wartungsintensiv. Wenn es mehrere Domains gibt, nicht per OR integrieren, denn es ist ja keine Oder-Regelung, sondern eine Und-Regelung.

Dann würde es so lauten:

### Bilder-Klau WhiteList-Methode
RewriteCond %{HTTP_REFERER} !domain.de[NC]
RewriteCond %{HTTP_REFERER} !domain2.de[NC]
RewriteCond %{HTTP_REFERER} !domain3.de[NC]
RewriteCond %{REQUEST_URI} !/warning.jpg
RewriteRule .*.(png|jpg|gif|svg|bmp)$ https://www.Domain.de/images/warning.jpg [L]

 

Die Bot-Regeln KANN man machen. Aber du darfst davon ausgehen, dass ein wirklich böser Bot sich im Zweifelsfall gar nicht identifiziert, so dass die Regeln eh nutzlos sind.

 

Insgesamt würde ich aber eher auf meine eingangs erwähnte Vorgehensweise zurückgreifen und die Sache entspannter sehen. Wenn du magst, kannst du mir die fragliche URL einmal schicken und ich schaue mir an, ob da ein Gefährdungspotential besteht, das diese Maßnahmen rechtfertigt.

 

 

 

Edited by Matthes
Kleine Korrektur
  • Like 1

Share this post


Link to post
Share on other sites

Lieber Mattes, ganz vielen lieben dank für die schnelle Hilfe.

Ich bin über die weihnachtstage unterwegs, werde es aber sobald wie möglich ausprobieren und dir darauf und deine anderen fragen Antworten.

Gruss Heiko

Share this post


Link to post
Share on other sites

Keine Hektik, Heiko. Ich bin auch nächstes Jahr noch hier. 😉

Schreib einfach irgendwann, frag einfach irgendwann, antworte einfach irgendwann - nichts eilt.

Share this post


Link to post
Share on other sites

Hallo Matthes, 

entschuldige bitte meine verspätete Rückmeldung, aber ich bin jetzt endlich dazu gekommen mich damit auseinander zu setzen. 
Danke auch für die detaillierte Erklärung. 

Weiter unten komme ich auf deine Lösung zu sprechen, aber ich wollte mir kurz die Zeit nehmen und dir die Frage beantworten, warum ich diese Art von Sperren machen möchte. 

Zitat

Wie sehen die Angriffe aus, dass das notwendig wurde? Ich habe früher einmal auch gedacht, ich müsse meinen Server auf diese Weise schützen - das ist aber meist völlig übertrieben. Da würde ich an deiner Stelle noch einmal die Notwendigkeit prüfen und evtl. in Erfahrung bringen, ob dein Anbieter serverseitig Tools wie fail2ban oder mod_security unterstützt.

Eines vorweg, ich bin kein Fachmann. Aus der Idee und Notwendigkeit heraus habe ich vor 15 Jahren angefangen mir die Dinge anzueignen, die ich wissen muss und für alles andere habe ich Fachpersonen beauftragt. Daher entschuldige bitte, wenn ich mich hier und da Laienhaft ausdrücke ;)

Ich bin bei All-inkl und die waren auch nach vielen Jahren des Wechsels der Hoster, die Ersten die meinen kleinen Shop stabil und sicher Online halten konnten.
Fail2Ban und co laufen auf meinem Server und meine Seite hat seit dem Wechsel vor 4 Jahren auch 100% Ontime. 

Ich vertreibe zwar nur Ersatzteile für Heizungen, aber dennoch werde ich oft "angegriffen".
Wobei ich mit Angriff nicht nur das klassische Hacken meine. 

DDOS Attacken sind mir *drei mal auf Holz klopfen* erspart geblieben.
Aber die vielen Bots, die nach Lücken scannen, die Brute Force Attacken, die BadBots und so weiter - sind die welche meinem Shop das Leben schwer machen.
Ich habe schon immer einen eigenen Server genommen und kein kleines Hostingpaket, aber die Last der Bots machte meinen Shop langsam. 

Das hat unser Hoster soweit gut im Griff. Vor allem was Bruteforce und Flooder angeht, haben wir seit dem ruhe.  

Was übrig geblieben ist, sind die vielen Bots - die trotz robots.txt scannen wie die irren. 
In der Regel sind es Suchmaschinen Bots, die eigentlich Daten sammeln oder die nach Logins (wp-admin, ect.) suchen. 

Vieles kann man filtern, aber nicht alles. Vor allem, wenn es darum geht Verzeichnisse nach Lücken zu scannen. 
Das verursacht viele abfragen und eine hohe Last auf der Datenbank. Trotz gutem Cache. 

Sogenannte XSS Scriptanfragen und ähnliches sperrt schon der Shop aus. Aber es bleibt manches übrig.

Ich habe dann als Erstes die ganzen 404 anfragen, die durch die Verzeichnis Scans entstehen - über die htaccess umgeleitet (ErrorDocument 404 /404.html) und auf eine statische Seite ohne Datenbankverbindung weitergeleitet. Wenn dann Bots per Bruteforce nach logins (wp-admin, ect.) oder Verzeichnissen suchen, dann bekommen sie eine einfache html ausgeliefert.
Dies nimmt schon ordentlich Last vom Server. 

Dennoch kommen viele Bots die einfach nur Datensammeln, den ganzen Shop durchforsten. 
Marketing Firmen, Datensammler und wahrscheinlich auch Mitbewerber. 

In einer Geschwindigkeit das die "Firewall" nicht greift, aber wenn dann gleich 10 davon kommen wird es langsam. 

Ganze Botnetzwerke greifen dann auf einmal auf meine Seite zu. Laut Logs rund 90% außerhalb der EU. 
Darum habe ich, seit dem ich nur europäischen Seiten zugriff erlaube, ein entlasteten Server ;)

Nun bleiben nur noch die paar Suchmaschinen/BadBots und ein paar IP Adressen zu sperren, um die Last zu verringen.  

Darum möchte ich gerne Ip Adressen sperren. 

Den Bilderklau möchte ich grundsätzlich nicht verbieten. Zum einen haben wir ein Wasserzeichen was Werbung für uns ist. 
Zum anderen werde ich bzw. die Bilder oft in Handwerker Foren verlinkt. Die kenne ich alle nicht und möchte diese dann nicht aussperren. 
Ist ja Werbung für mich ;)

Aber es gibt Seiten die einfach nur einen Haufen Bilder verlinken und dazwischen Adwords schalten. 
Teilweise auch mit Inhalt. Seo Seiten aus dem Ausland. Wenn ich Beispiele davon nennen darf: 

https://123arbeitsplatten.blogspot.com/2019/11/10-das-beste-von-diana-badewannen.html
http://ljndawson.org/vaillant-vcw-240-xeu-explosionszeichnung.html

Die möchte ich manuell aussperren, bzw. ein Wasserzeichen Bild automatisch einblenden, daher die Bilderregel. 
Es gibt so ein schönes Tool zum Auslesen der Apache.log, die mir dann die Seiten anzeigt, die darauf zurückgreifen. 
HTTP LogStat - falls du es noch nicht kennen solltest.  

Und zuletzt eben das aussperren von Bad Bost, die ich auch über die Apache log finde :)

BrowserMatchNoCase "Cliqzbot" bots

Nun zu deiner Lösung

Wenn ich dich richtig verstehe, dann sollte meine .htaccess dann so aussehen? 

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order allow, deny
Allow from env=AllowCountry
Deny from 111.111.111.111

 

Dabei erhalte ich folgende Fehlermeldung:

Error 500

Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.
 

Wenn ich deine Anleitung richtig verstanden habe, dann soll ich das Allow from hinter die IP Adressen setzen: 

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order allow, deny
Deny from 111.111.111.111
Allow from env=AllowCountry

Aber auch da erhalte ich leider die Error 500 meldung. 

Daher wäre ich dir dankbar, wenn du noch einmal drüber schauen könntest was ich falsch verstanden habe. 

Danke dir vorab.

Gruß Heiko

 

Share this post


Link to post
Share on other sites

Meinst du nicht es wäre einfacher die beiden Abgreifer individuel zu sperren. 

https://123arbeitsplatten.blogspot.com
http://ljndawson.org

Deine beiden beispielseiten. 

Bei All Inkl ist noch intern was weiter-umleiten da bekommt man öfter mal eine 500 Fehlermeldung. 

Share this post


Link to post
Share on other sites

Einen Monat zu warten ist aber echt lang. Jetzt muss ich mir das alles noch einmal ansehen...

Zum ersten Teil: Die Bots, die dir was Böses wollen, wirst du mit den ganzen Regeln gar nicht erwischen. Wenn du einen sicheren Shop hast, müssen die dich gar nicht groß stören. Aber wenn du das machen möchtest, machs. Das ist mir gleich.

1 hour ago, derHeiko said:

Die möchte ich manuell aussperren, bzw. ein Wasserzeichen Bild automatisch einblenden, daher die Bilderregel.

Ja, das ist ok. Kann man so machen. Die Variante, die ich vorgestellt habe, ist sinnvoller, weil wartungsärmer, aber auch da ist es deine Entscheidung. In meinen Augen ist da gewaltig was schief gelaufen, wenn du einen kleinen Nischenshop betreibst und solchen Problemen ausgesetzt bist.

1 hour ago, derHeiko said:

DDOS Attacken sind mir *drei mal auf Holz klopfen* erspart geblieben.

Die gehen dich gar nichts an, da ist der Hoster gefragt. Darüber würde ich mir keine Sorgen machen.

1 hour ago, derHeiko said:

Aber auch da erhalte ich leider die Error 500 meldung. 

Waren das die einzigen Änderungen, die du ausgeführt hast? Bitte die ganze .htaccess zeigen und bestenfalls einmal ins error-Log sehen, was genau der Fehler ist. Erspart uns locker drei Antworten des Rätselratens.

16 minutes ago, arnego2 said:

Meinst du nicht es wäre einfacher die beiden Abgreifer individuel zu sperren.

Das hat er ja vor. 😉

Edited by Matthes

Share this post


Link to post
Share on other sites
1 hour ago, arnego2 said:

Meinst du nicht es wäre einfacher die beiden Abgreifer individuel zu sperren. 

https://123arbeitsplatten.blogspot.com
http://ljndawson.org

Deine beiden beispielseiten. 

Bei All Inkl ist noch intern was weiter-umleiten da bekommt man öfter mal eine 500 Fehlermeldung. 

Das sind mittlerweile so 20 Seiten die mich abgreifen. Und ja, ich würde sie auch lieber individuell sperren. 
Daher finde ich die Blacklist Lösung für mich einfacher als die Whitelist. Ist zwar mehr Wartungsaufwand, aber das ist dann eben so ;)

Edited by arnego2

Share this post


Link to post
Share on other sites

die beiden bildergrabber bekommst du doch mit dem whitelist beispiel von matthes gegriffen?

### Bilder-Klau WhiteList-Methode
RewriteCond %{HTTP_REFERER} !domain.de[NC]
RewriteCond %{HTTP_REFERER} !domain2.de[NC]
RewriteCond %{HTTP_REFERER} !domain3.de[NC]
RewriteCond %{REQUEST_URI} !/warning.jpg
RewriteRule .*.(png|jpg|gif|svg|bmp)$ https://www.Domain.de/images/warning.jpg [L]

deine domains da rein eventuell noch google und alles ist schön.

die anderen nervensägen habe ich auch. also referrerspam, absauger, chinatraffic. das ganze gelumpe habe ich mit der "htaccess firewall" in den griff bekommen: https://perishablepress.com/6g/

wenn dann tatsächlich noch was übrig bleibt, kannst du immer noch komplette ip(blöcke) mit deny aussperren.

Share this post


Link to post
Share on other sites

Das Problem bei der Whitelist-Lösung spricht er ja hier an:

Vor 8 Stunden, derHeiko said:

Den Bilderklau möchte ich grundsätzlich nicht verbieten. Zum einen haben wir ein Wasserzeichen was Werbung für uns ist. 
Zum anderen werde ich bzw. die Bilder oft in Handwerker Foren verlinkt. Die kenne ich alle nicht und möchte diese dann nicht aussperren. 
Ist ja Werbung für mich

Die Whitelist-Lösung sperrt aber generell alles, was nicht erlaubt ist. Von daher kann er da nur die Blacklist-Lösung nehmen.

Ich sehe auch gar nicht das Problem, die Blacklist-Lösung war ja bereits in der ursprünglichen .htaccess vorhanden.

Problematisch sind die 500er, die sollten nicht passieren, das müssen wir klären.

Share this post


Link to post
Share on other sites

*grml* text zu lang. kurz und knackig ist da besser. wo sind eigentlich bulletpoints, wenn man die mal braucht? 🤪

 

Share this post


Link to post
Share on other sites

Danke für die Antworten. 

Mein Text war wirklich was zu lang ;)
Ich fasse noch mal mein Hauptproblem zusammen:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order allow, deny
Deny from 111.111.111.111
Allow from env=AllowCountry

Ich erhalte eine Error 500 Meldung. 
Auch, wenn ich nichts anderes in der .htaccess drin stehen habe. 

Habe ich etwas falsch verstanden/falsch gemacht oder liegt es an meinem Hoster. 
Ich habe leider keinen anderen Hoster wo ich dies einmal ausprobieren könnte. 

In der accsess.log steht folgendes: 

Meine.IP - - [30/Jan/2020:13:09:34 +0100] "GET / HTTP/1.1" 500 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1687 OUT:4036" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:09:38 +0100] "GET /favicon.ico HTTP/1.1" 500 360 "https://meinedomain.de" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1785 OUT:836" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:09:52 +0100] "GET / HTTP/1.1" 500 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1836 OUT:836" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:09:52 +0100] "GET /favicon.ico HTTP/1.1" 500 360 "https://meinedomain.de" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1785 OUT:836" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:11:27 +0100] "GET / HTTP/1.1" 500 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1687 OUT:4036" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:11:28 +0100] "GET /favicon.ico HTTP/1.1" 500 360 "https://meinedomain.de" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1785 OUT:836" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:14:20 +0100] "GET / HTTP/1.1" 500 360 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1687 OUT:4036" "ReqTime:0 sec"
Meine.IP - - [30/Jan/2020:13:14:20 +0100] "GET /favicon.ico HTTP/1.1" 500 360 "https://meinedomain.de" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36" "Traffic IN:1785 OUT:836" "ReqTime:0 sec"

Aber die hilft mir da leider auch nicht weiter. 

Danke weiterhin für die Hile. 

Share this post


Link to post
Share on other sites

Darauf war ich bereits eingegangen.

Das error.log wird benötigt, nicht das access.log.

Setz die allow-Zeile mal vor die deny-Zeile, wie es in meinem Beispiel auch steht. Syntaktisch ist der Code aber korrekt und entspricht dem, was du bereits in der .htaccess hattest, mit kleiner Modifikation.

Share this post


Link to post
Share on other sites

Entschuldige bitte, das habe ich überlesen. 

Wenn ich die allow-Zeile vor die deny-Zeile setze, erhalte ich auch die Error 500 Meldung. 

Du hast recht, an die error.log habe ich gar nicht mehr gedacht.
Die habe ich bei meinem Hoster angefordert. 

Sobald ich sie habe, melde ich mich zurück. 

Share this post


Link to post
Share on other sites

Das ist aber doch der Code, den du im Eingangsbeitrag gepostet hast, lediglich mit veränderter Reihenfolge von allow und deny. Der im Eingangsbeitrag hat funktioniert, korrekt?

Share this post


Link to post
Share on other sites

Wenn ich es richtig verstehe, dann nein. 
 

On 24.12.2019 at 12:11, derHeiko said:

Ich möchte via .htaccess eine Witelist erstellen:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order deny,allow
Deny from all
Allow from env=AllowCountry

Das funktioniert, allerdings darf keine andere Regel in der .htacces sein wie zum Beispiel:

<Limit GET POST HEAD>
order allow,deny
deny from 185.6.8
allow from all
</Limit>

Laut deiner Analyse mische ich so WhiteList und eine Blacklist durcheinander. 

Du meintest, ich soll folgendes machen:

On 24.12.2019 at 14:25, Matthes said:

D.h. es wird erst einmal alles blockiert, außer es gibt eine explizite Allow-Regel. Folgender Block setzt das um:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order allow, deny #alles, was nicht freigegeben wurde, wird blockiert
Allow from env=AllowCountry #du gibst alle Länder, die du oben definiert hast, frei
Deny from 185.6.8 #du blockierst speziell noch einmal diese IP, alle weiteren erhalten jeweils eine zusätzliche Zeile darunter

 

Und dabei erhalte ich eben den Error 500 Fehler. 

Oder ich verstehe was falsch, dann bitte ich dies zu entschuldigen. 

Share this post


Link to post
Share on other sites
2 minutes ago, derHeiko said:

GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order deny,allow
Deny from all
Allow from env=AllowCountry

Das ist dein Code.

3 minutes ago, derHeiko said:
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
Order allow, deny #alles, was nicht freigegeben wurde, wird blockiert
Allow from env=AllowCountry #du gibst alle Länder, die du oben definiert hast, frei
Deny from 185.6.8 #du blockierst speziell noch einmal diese IP, alle weiteren erhalten jeweils eine zusätzliche Zeile darunter

Das ist der geänderte. Der einzige Unterschied ist die Reihenfolge von allow und deny.

Share this post


Link to post
Share on other sites

erledigt! Bitte löschen!

Edited by DARO75
erledigt!

Share this post


Link to post
Share on other sites
Vor 2 Stunden, DARO75 said:

erledigt! Bitte löschen!

Warum löschen? Lösungswege sind auch für andere interessant.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now