Como posso bloquear o acesso ao meu site de determinados países usando a pilha LAMP?

3

Eu tenho um site que não quero que seja visto por países inteiros. O site está sendo executado em um servidor LAMP. Como posso conseguir isso?

    
por haim evgi 18.08.2009 / 09:49

6 respostas

10

Use o módulo mod_geoip. link

Por exemplo:

GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry

# ... place more countries here
Deny from env=BlockCountry
    
por 18.08.2009 / 09:56
3

Você pode usar a condição REMOTE_ADDR de rewrite_mod para redirecionar os usuários banidos para uma única página descrevendo o fato de que eles não podem entrar, ou simplesmente dar a eles um erro 403.

RewriteCond %{REMOTE_ADDR} ^123\.123\.123\.[0-9]{3}$ 
RewriteRule .* ...

Para obter o intervalo de IPs de um país, obtenha o banco de dados Maxmind por exemplo.

    
por 18.08.2009 / 09:53
1

Verifique o IP e determine qual país o hospeda e, em seguida, bloqueie-o. Claro que não é preciso, mas é alguma coisa. Geralmente eu não sou fã de fazer isso; mas talvez seja necessário por algum motivo legal.

    
por 18.08.2009 / 09:51
1

Você pode filtrar os endereços IP do ISP do país. Há um monte de banco de dados de geolocalização, para ajudá-lo a identificar o país dos usuários por ip.

    
por 18.08.2009 / 09:51
0

Eu encontrei este site, que afirma banir país,

IMO, a melhor maneira de bloquear usando o arquivo .htaccess

    
por 18.08.2009 / 09:55
0

Você pode usar serviços como este:

link

para extrair informações sobre quais intervalos IP pertencem a quais países e bloqueá-los. Tenha em mente que se você bloquear muitos intervalos em um site de alto tráfego, poderá ver uma utilização pesada em seus firewalls.

    
por 18.08.2009 / 10:05