Para restringir o bloquear el acceso de uno o varios paises con tu archivo .htaccess de forma fácil y sin tener que agregar miles de líneas con los rangos de IP, puedes usar la librería geoip de apache y php solo con usar el código del país que deseas bloquear tienes todo el trabajo hecho, para instalarla debemos ejecutar los siguientes comandos en nuestro servidor:
sudo apt-get install php-geoip
cd /usr/share/GeoIP/
sudo wget https://mirrors-cdn.liferay.com/geolite.maxmind.com/download/geoip/database/GeoIP.dat.gz
sudo gunzip GeoLiteCity.dat.gz
sudo apt-get install -y geoip-bin geoip-database libgeoip-dev libgeoip1 libapache2-mod-geoip
Luego editar el #archivo geoip.conf
sudo vim /etc/apache2/mods-available/geoip.conf
Reemplazar el contenido por el siguiente:
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPScanProxyHeaders On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat
GeoIPDBFile /usr/share/GeoIP/GeoLiteCity.dat
</IfModule>
Luego guardar y agregar en el archivo .htaccess del sitio que quieres restringir el acceso
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE <CODIGO_PAIS> DenyCountry
Deny from env=DenyCountry
Ejemplo para restringir el acceso desde Rusia y Corea
GeoIPEnable On
SetEnvIf GEOIP_COUNTRY_CODE KR DenyCountry
SetEnvIf GEOIP_COUNTRY_CODE RU DenyCountry
Deny from env=DenyCountry
Reiniciar el servicio de apache
sudo /etc/init.d/apache2 restart
Puedes consultar el listado de los códigos de cada país en el siguiente link: https://es.wikipedia.org/wiki/ISO_3166-
NOTA: El servicio de apache lo debes reiniciar solo la primera vez debido a la instalación realizada, luego puedes hacer los cambios que quieras en tu archivo .htaccess sin necesidad de reiniciar nuevamente el servicio.
Comentarios