4th Floor, 4 Tabernacle Street London EC2A 4LU

Block IPs by country – Apache

Step 1

If you are using debian or ubuntu, install the mod-geoip package.

sudo apt-get install libapache2-mod-geoip

 

Step 2
Enable GeoIPEnable, edit geoip.conf

/etc/apache2/mods-enabled/geoip.conf
GeoIPEnable On

 

Step 3
Find Country Code Lookup: https://en.wikipedia.org/wiki/ISO_3166-1

In Apache vhosts file, outside of the </Directory> tags:

<Location />
        ##ISO 3166 Country Codes
        ## Block China
        ## Block Costa Rica
        ## Block Russia
        SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
        SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
        SetEnvIf GEOIP_COUNTRY_CODE CR BlockCountry
        Deny from env=BlockCountry
</Location>

Step 4
service apache2 restart