Tutoriais
Tutoriais HostMídia

Como bloquear acessos de IP de outros países via .htaccess

Introdução

Ameaças na Internet, como ataques e invasões, são bastante comuns, particularmente quando se tem um site vulnerável ou com alguma falha de programação.

É desnecessário dizer que quando isso acontece, é fundamental adotar as correções para que o site não fique vulnerável. No entanto, há vezes em que identificar quais as medidas necessárias e a implantação delas, pode levar algum tempo e enquanto isso não é feito, o site estará inseguro.

Não é raro que um site que tenha sido invadido, ser novamente alvo de um cracker, minutos após uma restauração de backup e antes que se consiga identificar e corrigir o problema.

Mas é razoavelmente simples implantar uma medida provisória que pode lhe dar o tempo necessário para reagir e que constitui o bloqueio do range de endereço IPs de onde as invasões estão ocorrendo, usando para isso o arquivo .htaccess

Devemos ressaltar que esta pode não ser uma medida 100% eficaz e, sobretudo, de caráter permanente, pelas seguintes razões:

  • Se há uma vulnerabilidade na programação do site ou no CMS que você utiliza, tal falha poderá ser explorada por qualquer pessoa em qualquer lugar do mundo, inclusive a partir do seu próprio país. Assim, bloquear um país, não garante que a invasão não ocorra a partir de outro;

  • Dependendo do país bloqueado, a quantidade de ranges de endereços IP, pode ser bastante grande e que vai resultar em um arquivo .htaccess também grande, aumentando o tempo de carregamento do site;

  • Bloquear determinados países – como por exemplo, os EUA – pode ser um problema, já que você também estará bloqueando servidores como os do Google e Bing, entre outros que são importantes;

  • Esta “técnica” trás resultados apenas para tentativas de invasão. Um ataque DDoS, por exemplo, deixará o site inacessível a depender das suas proporções, pelo consumo da largura de banda do link que ele usa;

  • Se por trás da invasão há um cracker e não um script que realiza automaticamente a invasão, o cracker pode usar um proxy ou outro meio de acesso, por um IP de outro país que não esteja bloqueado.

Portanto, é importante enfatizar que essa é uma medida que deve ser adotada em caráter temporário apenas e não constitui uma solução para um site eventualmente inseguro ou com problemas na programação.

Pré-requisitos para bloquear acesso de IPs ao site

Este é um procedimento simples e razoavelmente rápido, mas que exige que algumas poucas condições sejam atendidas para ser realizado:

  • Um cliente de FTP, sendo que recomendamos o uso do Filezilla;

  • Dados de acesso ao FTP da conta de hospedagem;

  • Um editor de texto como o Notepad do Windows;

  • Saber o IP responsável pelas invasões, que normalmente é possível consultando logs de acesso. Se necessário, o serviço de hospedagem pode ajudar a obter tal informação

  • Uma ferramenta que gera ranges de IPs, sendo que indicamos a IP2Location, embora existam outras boas opções.

OBS: dependendo da escolha da ferramenta de ranges de IP, poderá haver pequenas diferenças nos passos a seguir

Passos para bloquear acesso de IPs ao site

Embora esse tutorial seja destinado ao bloqueio de ranges de um país inteiro ou até mesmo mais do que um país, o princípio mantém-se o mesmo para apenas poucos ranges ou até mesmo um único IP e serve para bloqueio independente da razão que se queira implantá-lo.

Também convém ressaltar que apesar de ser possível editar diretamente o arquivo .htaccess, para tornar mais fácil e rápida a reversibilidade do processo, vamos renomear o original e criar um novo a partir dele. Portanto, quando desejar remover o bloqueio, bastará renomear o .htaccess que contém o bloqueio e o original.

  1. Descubra o país de onde tem partido as invasões, usando um serviço como o LocalizaIP;

  2. Acesse o site IP2Location e role até a parte inferior da página, onde consta “Download List”;

  3. No primeiro campo, selecione o país cujos IPs deseja bloquear. No campo select à direita, mantenha a versão do IP, que por padrão é IPv4. No terceiro, selecione “Apache 2.0 – 2.3 .htaccess deny”;

  4. Clique em “Download” e um arquivo de texto será baixado para a pasta padrão de downloads configurada no seu navegador;

  • Usuários não registrados podem escolher apenas um país por lista. Caso não se interesse em realizar o registro – que é gratuito – deverá repetir o procedimento tantas vezes quanto o número de países que deseja bloquear, aproveitando apenas as linhas que contém os IPs, nos segundos e posteriores downloads;

  1. Conecte-se por FTP à sua conta de hospedagem;

  2. Acesse a pasta public_html, onde está localizado o arquivo .htaccess e faça o download do mesmo;

  3. Abra o .htaccess com o Notepad, bem como o arquivo baixado do IP2Location;

  4. Selecione todo o conteúdo do arquivo, pressionando CTRL + A e copie-o, usando CTRL + C;

  5. Vá até a última linha do .htaccess e cole o conteúdo copiado, usando CTRL + V;

  6. Salve o .htaccess;

  7. Renomeie o arquivo .htaccess contido na public_html para .htaccess.old, através do Filezilla;

  8. Envie o .htaccess alterado para a public_html.

Pronto! A partir do upload do .htaccess com a lista de IPs que foi gerada, todo tráfego que chegar ao site a partir dos endereços que foram incluídos, não conseguirá acesso a nenhum conteúdo da public_html e sub-pastas nela contida.

Conclusão

O bloqueio de IPs ou mesmo ranges inteiros de IPs por questões de segurança ou outras, é um procedimento simples e rápido, bastando a edição do arquivo .htaccess da sua conta de hospedagem.