GeoIP Konfiguration in Apache 2.4 vHosts

Apache, Lighttpd, nginx, Cherokee
doublem
Posts: 38
Joined: 2008-12-03 11:37

GeoIP Konfiguration in Apache 2.4 vHosts

Post by doublem » 2016-01-25 12:57

Hallo zusammen,

auf einem OpenSUSE 13.2 Server mit Apache 2.4x mit GeoIP 1.5.1 möchte ich einige Länder + Crawler whitelisten, alles andere sperren.

Hier die /etc/apache2/conf.d/mod_geoip.conf:

Code: Select all

<IfModule mod_geoip.c>
    GeoIPEnable On
    GeoIPEnableUTF8 On
    # GeoIPOutput [Notes|Env|All]
    GeoIPOutput All

    <IfModule prefork.c>
        GeoIPDBFile /var/lib/GeoIP/GeoIP.dat MemoryCache
    </IfModule>
    <IfModule !prefork>
        GeoIPDBFile /var/lib/GeoIP/GeoIP.dat MMapCache
    </IfModule>
</IfModule>


Die /var/lib/GeoIP/GeoIP.dat ist vorhanden.

Und hier der vHost:

Code: Select all

<VirtualHost *:80>
        ServerName domain.eu
        UseCanonicalName Off
        DocumentRoot /srv/www/vhosts/csi203/domain.eu/httpdocs/web
        ErrorLog  /srv/www/vhosts/csi203/domain.eu/logs/error_log
        <Directory /srv/www/vhosts/csi203/domain.eu/httpdocs/web>
         <IfModule sapi_apache2.c>
               php_admin_value open_basedir "/srv/www/vhosts/csi203/domain.eu/httpdocs:/tmp"
         </IfModule>
         <IfModule mod_php5.c>
               php_admin_value open_basedir "/srv/www/vhosts/csi203/domain.eu/httpdocs:/tmp"
         </IfModule>
         <IfModule mod_rewrite.c>
               Options +SymLinksIfOwnerMatch
         </IfModule>
         AllowOverride None
         <IfModule !mod_geoip.c>
         Require all granted
         </IfModule>
         <IfModule mod_geoip.c>
               Require all granted
               # Whitelist
               SetEnvIfNoCase User-Agent (googlebot|bingbot|yahoo!\sslurp) AllowCountry
               SetEnvIf GEOIP_COUNTRY_CODE DE AllowCountry
               SetEnvIf GEOIP_COUNTRY_CODE AT AllowCountry
               SetEnvIf GEOIP_COUNTRY_CODE CH AllowCountry
               Allow from env=AllowCountry
               # Freigabe Loopback
               Require ip 192.168.0.1
         </IfModule>
        </Directory>
</VirtualHost>


Leider führt der Aufruf des vHosts zu einem

client denied by server configuration
.

Mit einem

Code: Select all

GeoIPEnable Off


funktioniert der Aufruf einwandfrei.

Was übersehe ich?

Vielen Dank!

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: GeoIP Konfiguration in Apache 2.4 vHosts

Post by Joe User » 2016-01-25 14:24

Nach Deiner Config zu urteilen, solltest Du https://github.com/maxmind/geoip-api-mod_geoip2 Troubleshooting lesen und beachten.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

doublem
Posts: 38
Joined: 2008-12-03 11:37

Re: GeoIP Konfiguration in Apache 2.4 vHosts

Post by doublem » 2016-01-25 16:42

Hallo Joe User,

danke für Dein Feedback.

Die /var/lib/GeoIP/GeoIP.dat ist lesbar und die Domain wird nicht über das interne Netz aufgerufen.

Hast Du weitere Anhaltspunkte für mich?

doublem
Posts: 38
Joined: 2008-12-03 11:37

Re: GeoIP Konfiguration in Apache 2.4 vHosts

Post by doublem » 2016-01-25 17:24

Fehler gefunden ;)

Im Apachen 2.4+ muss es natürlich

Code: Select all

Require env AllowCountry

statt

Code: Select all

Allow from env=AllowCountry

heißen.

User avatar
Joe User
Project Manager
Project Manager
Posts: 11599
Joined: 2003-02-27 01:00
Location: Hamburg

Re: GeoIP Konfiguration in Apache 2.4 vHosts

Post by Joe User » 2016-01-25 18:41

Require all ... und Require ip ... sind dort wohl eher unerwünscht ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.