Home » Programação » Como bloquear acesso de um site para outros países

Como bloquear acesso de um site para outros países

Hoje me deparei com uma situação. Recebi uma solicitação de um cliente que não queria que o site dele abrisse em outros países, eles queriam que somente internautas do Brasil tivessem acesso ao site.

Confesso que nunca tinha pegado algo nesse sentido. Fui então investigar sobre o caso e descobri uma forma para realizar o bloqueio de acesso ao usuários de outros países, falo usuário, pois você também pode impedir que os spiders, que são os sistemas de buscas, acessem o seu site ou blog.

Esse bloqueio pode ser realizado através da criação de uma lista branca de IPs , por exemplo, se você deseja que somente internautas do Brasil acessem sua página, você precisa então criar uma lista branca de IPs do Brasil, os outros IPs que não constam na lista serão bloqueados.

Ok, mas e agora, como vou gerar essa lista? Ela deve ser imensa? Por sorte descobri um site que gera essa lista automaticamente, segue o link http://www.countryipblocks.net/

Como bloquear acesso de um site para outros países

Crie um arquivo htaccess, e insira o ragers de IPS do Brasil com allow, sendo assim os ips que não constarem nessa lista serão bloqueados.

Exemplo de configuração para bloquear o acesso de todos os IP’s, exceto 200.234.206.251, 200.243.90.2 e 189.53.70.141

Order deny,allow
deny from all
allow from 200.234.206.251
allow from 200.243.90.2
allow from 189.53.70.141
# deny from all é o mesmo que bloqueio para todos, exceto para os que estiverem em 'allow from'

Exemplo para bloquear o acesso somente para os IPs, 200.243.90.2 e 189.53.70.141

Order allow,deny
deny from 200.243.90.2
deny from 189.53.70.141
allow from all
# allow from all é o mesmo que libere para todos, exceto para os que estiverem em 'deny from'

É possível fazer manipulação de ranges de IP’s também, ou seja: 200.243.90.*, 189.53.*.* ou 200.*.*.*, conforme exemplos abaixo:

deny from 200.243.90. # Bloquear acesso de todos os IP's entre 200.243.90.0 e 200.243.90.255
allow from 189.53.    # Liberar acesso de todos os IP's entre 189.53.0.0 e 189.53.255.255
# Obs: Tem o ponto depois do número, pois ele indica ao Apache que se trata de range

Dica: Através do site countryipblocks você pode fazer isso de uma forma bem mais fácil via .htaccess:

Para Bloquear:

Caso você queira bloquear poucos países, recomenda-se a opção BLOQUEAR

Setembro 2014 – OBS: Countryipblocks está fora do ar, segue endereço alternativo para gerar a lista de IPS http://services.ce3c.be/ciprg/

  • Acesse https://www.countryipblocks.net/country_selection.php
  • Escolha o(s) País(es) que deseja bloquear
  • Selecione a opção “.htaccess Deny”
  • Clique em “Create ACL”
  • Copie o código que irá aparecer no campo ao lado
  • Em seu site, suba o código em um arquivo .htaccess

Para Liberar:

Caso você queira bloquear muitos países, se você usar a opção “BLOQUEAR”  alista de IPs será imensa, então nesse caso recomenda-se a opção Liberar, onde você irá selecionar e gerar a ista de IPs dos Países e que deseja liberar o acesso.

Setembro 2014 – OBS: Countryipblocks está fora do ar, segue endereço alternativo para gerar a lista de IPS http://services.ce3c.be/ciprg/

  • Acesse https://www.countryipblocks.net/country_selection.php
  • Escolha o(s) País(es) que deseja Liberar o acesso
  • Selecione a opção “.htaccess Allow”
  • Clique em “Create ACL”
  • Copie o código que irá aparecer no campo ao lado
  • Em seu site, suba o código em um arquivo .htaccess
Total Views: 1395 ,

39 comentários

  1. Fábio, boa tarde!

    Encontrei seu site pelo google, e ele fala sobre exatamente o que queria fazer no meu blog, queria bloquear acesso para fora do Brasil, pelo menos para o EUA. Seria possível? Como crio o arquivo htaccess? E onde insiro no código do blog?

    Poderia me ajudar? Obrigado!

    • Olá Hernani, se o seu blog é um blogspot, acredito que não será possível bloquear, pois para para realizar o bloqueio é necessário ter acesso a pasta no servidor de onde estão os arquivos.
      Se o seu blog fosse wordpress e você tivesse acesso ao FTP da hospedagem do seu domínio, seria fácil.
      Se o bloqueio realmente for importante para você, recomendo que migre seu blog para uma plataforma wordpress, e hospede seu blog em um hospedagem que lhe de acesso ao FTP, sendo assim é possivel realizar o bloqueio.

  2. Olá Fábio,
    Gostaria de saber como eu bloqueio os Ips que começam apenas com 200, e habilitar os ips que começam com 201, 197, etc?

    O seu site esta de parabéns, muito obrigado.

    • Olá Diogo, agradeço.
      Sobre sua dúvida, se sua lista de IP que deseja bloquear é somente essa (200.*.*.*) então você pode criar um comando assim:

      Order deny,allow
      allow from all
      deny from 200.*.*.*

      Esse código ira liberar todos os IP, exceto todos os ips da faixa 200.*.*.*

      Se não der certo me avise.

  3. Show este post, já até gerei a listagem de IP’s liberados para acesso!

    Algum tempo atrás estava sofrendo com vários ataques em um de meus sites; acompanhava os acessos – e ip’s – através do plugin Wassup e bloqueava via IP Filter + Login Lockdown, ambos excelentes plugins para WP.
    Agora com essa técnica direto no .htaccess fica mais rápido e prático! Bloqueei qualquer acesso externo ao Brasil.

    Só uma dúvida: é certo que ninguém do Brasil ficará com acesso bloqueado ao meu site? Ou seja, como sei quais ip’s são de fato do Brasil? Existe uma faixa “de X a X ip” que correspondem a cada nação/país? Como isso funciona?

    Mais uma vez obrigado pelo post 🙂

  4. Ola amigo.
    Muito boa sua dica. No me caso, tenho um cliente aqui em Portugal que nao quer que o seu site seja visto pelo brasil, como seria esse código? Quais seriam as faixas de ips do brasil? e como adicionar no site?
    Miuto bom o teu blog, parabens!!

  5. Olá achei muito bom esse artigo testei aqui e funcionou, agora seguindo essa linha é possivel mostrar uma pagina especifica apenas para outros paises e o resto do site deixar bloqueado.
    Por exemplo aqui no brasil se tem acesso intreiro ao site e para outros paises mostrar uma pagina em construção ou em manutenção
    Obrigado

    • Olá Fabio,
      Para bloquear uma pagina específica, acredito que você tenha que fazer isso via JavaScript. Faça uma pesquisa na internet e irá encontrar algumas informações sobre isso.

      Assim que tiver um tempo vou publicar no blog uma forma de bloqueio via JavaScript.

  6. Como eu poderia bloquear um país no meu blogspot. Eu quero que um determinado país não tenha acesso ao meu blog. O que posso fazer ? É possível ?

  7. Olá, muito útil esse post, adicionado aos favoritos.

  8. Josimar de Souza Teixeira

    Valeuuuuuuu amigo, muito útil essa informação… há tempos queria bloquear IPs de fora do Brasil pois o meu site recebe sentenas de atacks todos os dias, usuários falsos que cadastravam aos montes todos os dias pra postar apenas spam… desativei a opção de cadastro pois não aguentava mais ficar excluindo essas pragas… mas depois dessa sua dica configurei para apenas ips do Brasil ter acesso e resolveu o problema! Valeeeeuu!!!

  9. boa tarde, me interessei pelo assunto mais ainda tenho dúvidas, quando você diz: Em seu site, suba o código em um arquivo .htaccess”

    voce quer dizer que é para criar uma nova página no site? Poderia eu colar o código no css ou html, funcionaria ?

  10. Uma observação: Esse site indicado ( http://www.countryipblocks.net ) parece que não esta mais no ar.

  11. Segue site encontrado que já gera o arquivo .htaccess

    http://incredibill.me/htaccess-block-country-ips

  12. Olá!
    Tenho um VPS e gostaria de bloquear para todos os sites.
    Sei que posso usar CSF e definir no CC_DENY os países que quero bloquear porem requer recursos no servidor que meu plano não possibilita devido ao enorme número de ips.
    A ideia do htaccess é ótima, mas colocar essas regras em todos os sites fica inviável.
    Teria alguma ideia de como posso fazer utilizando a sua dica? Alguma configuração tipo uma máscara que sirva para todos os sites do meu VPS?
    Obrigado

  13. Olá!

    Achei esse tópico muito interessante.
    Estou precisando bloquear todos os acessos partindo da França.
    Estou recebendo muitos spans daquele país e pelo meu Cpanel consegui rastrear as faixas de IPs todos da França.

    Então eu usei a função de negação de IP do Cpanel, mas toda vez que eu bloqueio um IP eles acessam com um IP novo, deve ser algum robots

    Então eu fui nesse site que você indicou, selecioneu Denny Acess e ele gerou uma lsista imensa
    Eu cloquei toda essa lista no meu arquivo httpacess só que ficou imenso o arquivo.

    Foi de 600 kbps para quase 2MB.

    Isso não vai deixar a abertura do meu site lento?
    Não tem uma forma mais simples de bloquear a França?

    Tem como verificar pra mim se o arquivo ficou certo?

    Será que esta certo? Esta funcionando?

    Não entendo de programação então fiquei na dúvida

  14. Olá, estou tendo alguns problemas com usuários de outros paises com tentativas de injeção sql, ja fiz o bloqueio e resolvel.

    eu gostaria de manter os acessos para meu sit apenas para o brasil e direcionar o acesso de outros paises para outro site como eu poderia fazer isso no .httacess ?

    por exemplo direcionar todos os ips diferentes de uma lista que eu especificar do brasil

    tudo que não estiver na lista ser direcionado para outro site.

    um abraço

    Obrigada Fernanda

  15. Maxwell J. Rodrigues

    Excelente seu site, tem como me passar o doc de texto para bloquear apenas EUA ?

  16. Boa noite Fabio,

    Eu tenho uma loja virtual que está sendo atacada. E queria deixar apenas para os brasileiros terem acesso, só que a loja é no servidor do Iluria. Que monta as lojas virtualmente etc..

    O que eu devo fazer ? como não tenho acesso ao arquivo.

  17. Olá amigo, gostaria de uma informação / ajuda:
    Tenho um site de vendas e consequentemente diversos concorrentes, teria como “bloquear” o acesso do computador desses “concorrentes” para o meu site ?
    att
    FABIO

    • Olá Fabio,
      O bloqueio é feito por IP, portanto se tiver o IP dessa pessoa você pode realizar o bloqueio.
      Lembgrando que geramente os IP de usuários são dinâmicos, ou seja, são alteração sempre que a internet é reiniciada, então esse procedimento irá funciona somente caso de IP fixo.

  18. Olá, achei muito interessante.
    Gostaria de saber se tem a possibilidade de bloquear acesso pela região. Por exemplo: Na ogreja em que congrego vamos transmitir os cultos aovivo, mas gostaria de bloquear o acesso para quem mora na região. Teria como?

  19. Fala Fabio, gostaria de tirar uma dúvida antes de fazer, bloqueando alguns países, posso ter problemas de atualização com os plugins? tanto para aviso de atualização, quanto para baixá-los? Tipo, se for WordPress instalado em domínio próprio com ftp e etc… abraços e parabéns pelas informações.

  20. Oi tenho um site de vendas plataforma prestashop, o engraçado que tenho muitas visitas de fora do Brasil como E.U.A,CHINA,ETC…Mas do Brasil muito,muito pouco eu não sei dizer porque mais de fora ,do que do Brasil.

  21. Usei o bloqueio usando htaccess deny de todos os paises com exceção do Brasil. ocorreu que depois de 30 minutos meu ip foi bloqueado pelo provedor e eles me informaram que houve grandes tentativas de acesso e então pensando ser tentativa de invasão eles bloquearam o meu ip. Acontece tambem que meu servidor enviou um e-mail com a seguinte descrição.
    ————————————————————
    Prezado cliente,

    Infelizmente, fomos obrigados a remover as diretivas do .htaccess encontrados nos seguintes locais:

    /home/shalo093/public_html/********.com.br/.htaccess

    O número de regras estavam causando uma alta carga com a quantidade de pedidos de análise / alimentado através de directivas.

    Cada pedido a este local seria necessário para carregar todas as regras encontrados neste arquivo (incluindo todas as imagens, css, e cargas normais de página), que pode rapidamente causar uma carga. Você precisará remover regras desnecessárias, ou mover um grande número de blocos de IPs para os scripts que são usados para o próprio site.
    ———————————————————————–
    Minha pergunta é. Se eu fizer o contrário ao invés de usar o bloqueio htaccess Deny eu usar o allow somente para Brasil, China, Usa. o problema citado acima vai continuar? Caso eu bloquei o acesso aos estados unidos o google ou outros indexadires conseguirão indexar meu site?

  22. Olá Fabio, achei interessante seu post. Eu tenho um site hospedado com o uolhost, mas é da plataforma blogspot, eu queria saber se consigo por lá ter aceso ao FTP para liberar acesso somente para o Brasil e Portugal.
    Obrigada!!!

  23. Fala meu brother,

    Tua dica é tão legal, útil e importante que está valendo até o momento. Pessoas como vc, facilitam a vida de muitas outras pessoas. Sucesso, paz e evolução. Att, Alex

  24. Ótima dica, valeu Fábio parabéns pel oconteúdo

  25. Olá boa tarde!
    Obrigado por essas informações, são realmente muito bem explicadas e de uma utilidade fora de sério.
    Eu quero deixar meu site disponivel só para o Brasil, porém por causa do google bots, bing e yahoo, tenho que deixar os EUA liberados ou esses bots nao vao ter problemas de acesso?

Deixe uma resposta