Apache – Bloqueia países específicos usando mod_geoip

Aqui está um conjunto realmente simples de comandos para bloquear o acesso de certos países ao conteúdo servido via Apache. Você pode usar isso em seu vps para aceitar apenas solicitações do Reino Unido, por exemplo.

Aqui está o topo de um virtualhost padrão de 000 modificado :

<VirtualHost *:80>
DocumentRoot /var/www


<Directory /var/www/>
# Default Config

Options Indexes FollowSymLinks MultiViews

AllowOverride None


# Only allow specific countries

GeoIPEnable On

SetEnvIf GEOIP_COUNTRY_CODE GB AllowCountry

Deny from all

Allow from env=AllowCountry

</Directory>
... etc

Depois de reiniciar o apache ( sudo service apache2 restart), qualquer IP que não seja da Grã-Bretanha (GB) receberá um 403 – é ótimo ver um monte deles aparecer em seus /var/log/apache2/access.logarquivos.