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