Blockieren des Zugriffs aus einem bestimmten Land: Unterschied zwischen den Versionen

(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[category:ueberarbeiten]]
[[category:fertig]]


'''Dieser Artikel befindet sich zur Zeit in Bearbeitung'''
Falls man gewisse Länder aufgrund von vielen Bot-Aktivitäten sperren möchte, kann man hierbei die Ländererkennung bei apache2 in der '''.htaccess''' verwenden. Hierzu braucht man nur ein paar Zeilen mit dem jeweiligen Land (siehe [https://www.geonames.org/countries/ '''hier''']), was man sperren möchte, einfügen:


Falls man gewisse Länder aufgrund von vielen Bot-Aktivitäten sperren möchte, kann man hierbei die Ländererkennung bei apache2 in der '''.htaccess''' verwenden. Hierzu braucht man nur ein paar Zeilen mit dem jeweiligen Land (siehe [https://dev.maxmind.com/geoip/legacy/codes '''hier''']), was man sperren möchte, einfügen:
== Mithilfe von mod_geoip in der .htaccess: ==
 
=== Syntax ab Apache 2.3: ===
 
'''Grundsätzlich:'''  
 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]


== Mithilfe von mod_maxminddb in der .htaccess: ==
'''Beispiel: Russland & China & Südkorea''':


'''1. Beispiel: China
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN|KR)$
'''
  RewriteRule ^(.*)$ - [F,L]
<IfModule mod_maxminddb.c>
MaxMindDBEnable On
MaxMindDBFile COUNTRY_DB /usr/local/share/maxminddb/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code
SetEnvIf MM_COUNTRY_CODE ^(CN) BlockCountry
  Deny from env=BlockCountry
</IfModule>


'''2. Beispiel: Russland & China'''
==== Erlauben von IPs eines Landes ====


<IfModule mod_maxminddb.c>
'''Grundsätzlich:'''
MaxMindDBEnable On
MaxMindDBFile COUNTRY_DB /usr/local/share/maxminddb/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE COUNTRY_DB/country/iso_code
SetEnvIf MM_COUNTRY_CODE ^(RU|CN) BlockCountry
Deny from env=BlockCountry
</IfModule>


== Mithilfe von mod_geoip in der .htaccess: ==
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(Country_Code)$
'''VERALTET: Nur auf älteren Webservern möglich. (Apache HTTPD 2.2.x). Wenn Sie überprüfen möchten, welche Webserver-Version bei Ihnen vorhanden ist, schauen Sie im DCP unter Webspace -> Server-Infos.'''
RewriteRule ^(.*)$ - [F,L]
 
'''Beispiel: Deutschland''':
 
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(DE)$
RewriteRule ^(.*)$ - [F,L]
 
=== Syntax unter Apache 2.3: ===
 
Wenn Sie überprüfen möchten, welche Webserver-Version bei Ihnen vorhanden ist, schauen Sie im DCP unter Webspace -> Server-Infos.


'''1. Beispiel: China'''  
'''1. Beispiel: China'''  
Zeile 37: Zeile 40:
  Deny from env=DenyCountry
  Deny from env=DenyCountry


'''2. Beispiel: Russland & China & Südkorea'''
''2. Beispiel: Russland & China & Südkorea''


  GeoIPEnable On   
  GeoIPEnable On   
Zeile 45: Zeile 48:
  Allow from all  
  Allow from all  
  Deny from env=DenyCountry
  Deny from env=DenyCountry


==== Aktivierung mittels PHP: ====
==== Aktivierung mittels PHP: ====
Zeile 53: Zeile 58:




'''Eine Liste für die verschiedenen Ländercodes: https://countrycode.org/
'''Eine Liste für die verschiedenen Ländercodes (ISO-3166 alpha2): https://www.geonames.org/countries/'''
'''

Version vom 17. Juli 2023, 14:51 Uhr


Falls man gewisse Länder aufgrund von vielen Bot-Aktivitäten sperren möchte, kann man hierbei die Ländererkennung bei apache2 in der .htaccess verwenden. Hierzu braucht man nur ein paar Zeilen mit dem jeweiligen Land (siehe hier), was man sperren möchte, einfügen:

Mithilfe von mod_geoip in der .htaccess:

Syntax ab Apache 2.3:

Grundsätzlich:

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]

Beispiel: Russland & China & Südkorea:

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(RU|CN|KR)$
RewriteRule ^(.*)$ - [F,L]

Erlauben von IPs eines Landes

Grundsätzlich:

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(Country_Code)$
RewriteRule ^(.*)$ - [F,L]

Beispiel: Deutschland:

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !^(DE)$
RewriteRule ^(.*)$ - [F,L]

Syntax unter Apache 2.3:

Wenn Sie überprüfen möchten, welche Webserver-Version bei Ihnen vorhanden ist, schauen Sie im DCP unter Webspace -> Server-Infos.

1. Beispiel: China

GeoIPEnable On   
SetEnvIf GEOIP_COUNTRY_CODE CN DenyCountry 
Allow from all 
Deny from env=DenyCountry

2. Beispiel: Russland & China & Südkorea

GeoIPEnable On   
SetEnvIf GEOIP_COUNTRY_CODE CN DenyCountry 
SetEnvIf GEOIP_COUNTRY_CODE RU DenyCountry 
SetEnvIf GEOIP_COUNTRY_CODE KR DenyCountry  
Allow from all 
Deny from env=DenyCountry


Aktivierung mittels PHP:

Hierbei einfach in die php.ini folgendes einfügen:

extension=geoip.so


Eine Liste für die verschiedenen Ländercodes (ISO-3166 alpha2): https://www.geonames.org/countries/