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...
Bloqueando...
Listando...
Re-testando...
Notou a resposta do dois comandos PING?
E para remover o IP basta executar:
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:
Salve o arquivo!
Der permissão de execução...
Execute...
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!
É 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