Pesquise...

Últimos Posts

Arquivo de Posts

2018 - 2017 - 2016 - 2015 - 2014 - 2013 - 2012

Postagens Populares

Vem Comigo!

     
  •      
  •  
  •  
  •  
  •  
  •  
  •  
Tecnologia do Blogger.

Total de Acessos


Saudações,

Muitas vezes aproveitar a solução aplicada em um servidor sob ataque é um bom caminho para proteger servidores que ainda não enfrentaram o mesmo problema.

A ideia é parecida com a usada nos anti vírus. Uma vacina para uma maquina infectada serve para proteger N outras maquinas que, mais cedo ou mais tarde, irá se deparar com a mesma praga virtual.

A lista badIPS é um destes caso em que sysadmins podem compartilhar suas experiencias.

Lista badIPS com bloqueio via blackhole route


A lista badIPS é criada com base nos IPs que foram boqueados pelo Fail2ban em N servidores ao redor do mundo. Ela está dividida em varias categorias como por exemplo:
  • SSH bruteforce login attacks and other ssh related attacks
  • Apache webserver related attacks
  • Anti Spam SMTP Proxy Server
Todas as categorias podem ser encontradas em badips.com/get/categories. E você também pode contribuir para esta lista. Basta configurar o seu Fail2ban para relatar os IPs para o projeto badIPS.

É possível usar esta lista em conjunto com o Firewall, hosts.deny, etc, contudo, hoje eu gostaria de lhe apresentar algo diferente; o RPDB do Kernel chamado Linux.

A regra blackhole do RPDB é uma especie de /dev/null. O que ela faz é descartar silenciosamente todos os pacotes; clique aqui para saber mais.

Por exemplo vamos manusear o IP 89.46.105.251:

Testando...

#ping 89.46.105.251
PING 89.46.105.251 (89.46.105.251) 56(84) bytes of data.
 

Bloqueando...

#ip route add blackhole 89.46.105.251
 

Listando...

#ip route list 89.46.105.251
blackhole 89.46.105.251
 

Re-testando...

#ping 89.46.105.251
connect: Invalid argument
 

Notou a resposta do dois comandos PING?

E para remover o IP basta executar:

#ip route del 89.46.105.251
 

Agora que sabemos o essencial, podemos rodar um script para adicionar todos os IPs; veja:

Crie um arquivo de nome badips-blackhole-route.bash, e, dentro dele adicione o seguinte conteúdo:

#!/bin/bash

# TESTADO NO UBUNTU 16.04 LTS COM BASH 4.3.46

# CRIANDO VAR CONTA
CONTA=0;

# ARRAY DOS IPS JA BLOQUEADOS
BHIPS=($(ip route list | awk '$1 ~ /blackhole/ {print $2}'));

# LIMPANDO O BURACO NEGRO
if [[ ${BHIPS[@]} ]]
then
    echo -n "Limpando blackhole... ";
    for IP in ${BHIPS[@]}
    do
        ip route del ${IP};
        ((CONTA++));
    done;

    # IMPRIMINDO NUMERO DE IPS BLOQUEADOS
    echo "Foram removidos ${CONTA} ips da rota blackhole!";
else
    echo -e "A blackhole ja esta vazia!\n";
fi;

# USANDO LISTA DA CATERORIA "ANY" COM "SCORE 3"
# EM QUE OS IPS ESTEJAM LISTADOS A UMA SEMANA (1W)
LISTA="http://www.badips.com/get/list/any/3?age=1w";

# BIN DO WGET
WGET=$(which wget);

# ARRAY DA LISTA DE IPS A SEREM BLOQUEADOS
BADIPS=($(${WGET} ${LISTA} -q -O -));

# ZERANDO VAR CONTA
CONTA=0;

# EFETUANDO O BLOQUEIO
echo -n "Bloqueando ips... ";
for IP in ${BADIPS[@]}
do
    ip route add blackhole ${IP};
    ((CONTA++));
done;

# IMPRIMINDO NUMERO DE IPS BLOQUEADOS
echo -e "Foram adicionados ${CONTA} ips a rota blackhole!\n";

exit 0;

Salve o arquivo!

Der permissão de execução...

#chmod +x badips-blackhole-route.bash
 

Execute...

#./badips-blackhole-route.bash
A blackhole ja esta vazia!
Bloqueando ips... Foram adicionados 1718 ips a rota blackhole!
 

O numero de IPs bloqueados sempre varia, pois a lista é dinâmica! Note que eu poderia ter obtido mais IPs apenas mudando, no script, a solicitação GET; veja:

A URL badips.com/get/list/any/3?age=1w retorna quase 2000 IPs.

A URL badips.com/get/list/any/3 retorna quase 52000 IPs.

E, seguindo a recomendação do projeto, se você deseja proteger uma loja virtual por exemplo, use a lista de score 3 ou 4; clique aqui e saiba mais.

Agora é só você adicionar uma entrada no Crontab do seu sistema que execute a cada 24 horas, e aproveitar esta camada de segurança adicional.


Paz a todos!

0 comentários:

Postar um comentário