0% acharam este documento útil (0 voto)
32 visualizações6 páginas

Como Proteger Seu Servidor de Ataques de Força Bruta (Brutefoce)

O documento aborda a importância de prevenir ataques de força bruta em serviços como FTP e SSH, destacando o uso do Fail2ban para bloquear IPs após tentativas falhas de login. Além disso, sugere o fechamento de portas desnecessárias e a configuração de regras de firewall para aumentar a segurança do servidor. O texto também fornece instruções detalhadas para a instalação e configuração do Fail2ban e do firewall no sistema operacional GNU/Linux.

Enviado por

Paulo Augusto
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
32 visualizações6 páginas

Como Proteger Seu Servidor de Ataques de Força Bruta (Brutefoce)

O documento aborda a importância de prevenir ataques de força bruta em serviços como FTP e SSH, destacando o uso do Fail2ban para bloquear IPs após tentativas falhas de login. Além disso, sugere o fechamento de portas desnecessárias e a configuração de regras de firewall para aumentar a segurança do servidor. O texto também fornece instruções detalhadas para a instalação e configuração do Fail2ban e do firewall no sistema operacional GNU/Linux.

Enviado por

Paulo Augusto
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

Impedir ataques de força bruta em portas de serviços como

FTP e SSH pode ser essencial para evitar uma invasão em


seu servidor

Um ataque de força bruta ocorre quando alguém (humano ou robô) tenta acessar determinado
serviço fazendo inúmeras requisições por segundo, tentando as mais diversas combinações de
senhas e usuários.
Utilizar uma senha que envolva letras, números e símbolos dificulta muito a invasão, porém não é
o suficiente para garantir com segurança a exposição de portas de serviços na web, como por
exemplo o protocolo SSH.
Através do protocolo SSH é possível acessar e configurar todo o seu servidor, imagine o estrago
que um invasor poderia causar se obtivesse acesso a seu login e senha nesta porta.

Lista de tentativas de bruteforce em apenas 2 horas no site Tec Dicas


Engana-se quem acredita que nunca sofreu um bruteforce. Mesmo sem expor diretamente o IP
deste servidor na internet, recebemos inúmeras tentativas de todos os dias, a maioria partindo da
China e Russia. Estes computadores são destinados a sequestrar servidores e utiliza-los sem que
o administrador perceba. Os fins são diversos, como ataques flood, espalhar vírus ou
espionagem.
Para saber se alguém está tentando lhe fazer um bruteforce, acesse seu servidor e digite o
seguinte comando (pressione q para sair)
grep sshd.\*Failed /var/log/auth.log | less

Se alguém já tentou, provavelmente uma grande lista irá aparecer. Agora imagine que esses
servidores estão todos os dias, a meses tentando invadir seu servidor. Acredite ou não mas um
dia eles irão conseguir, então qual seria a forma ideal de se proteger?

Bloqueio de IP por tentativas falhas


O Fail2ban (Fail to Ban) é um software que monitora todas as tentativas falhas de login em um
servidor, e realiza o bloqueio assim que determinado número de erros forem alcançados por um
IP.
Em outras palavras, se alguém errar o login durante determinado número de tentativas, o servidor
irá rejeitar automaticamente qualquer conexão daquele IP, liberando somente depois de um
tempo determinado.
A liberação ocorre pois é possível que um usuário também erre sua senha várias vezes a ponto
de se bloquear pra fora.
Bloquear o IP pode ser burlado apenas obtendo um novo endereço, porém isso já quebra o
conceito de um ataque bruteforce, pois as tentativas estarão limitadas e o usuário perderá tempo
trocando seu endereço, além de que no caso do IPv4 a disponibilidade é um problema sério.

Requisitos para a instalação

 Sistemas operacionais baseados em GNU/Linux Debian (Ubuntu e derivados)


 Possuir acesso ao superusuário.
 Ter atenção para não se trancar para fora do servidor
Para instalar o Fail2ban, utilize o seguinte comando.
apt-get install fail2ban

Para que o Fail2ban funcione corretamente é necessário configurar suas regras, para isso
execute os seguintes comandos.
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local

Leia atentamente os comentários do arquivo (em inglês), e faça algumas alterações de acordo
com seus serviços utilizados.
Sugestões para alterar.
# Não copie e cole este código
# Localize os itens em seu arquivo de configuração e modifique-os manualmente

# BANTIME
# Este é o tempo que um host fica banido
# Altere o bantime para 86400 (exatamente 24 horas)

bantime = 86400

# FINDTIME
# Altere para 3600, é o intervalo tempo que o Fail2ban irá utilizar para
# monitorar as tentativas que falharam
findtime = 3600

# MAXRETRY
# Altere para 10, é o número de tentativas que o usuário pode falhar em um período de 1
hora
maxretry = 10

Em seguida localize as sessões ssh, ssh-ddos e proftpd e coloque true em "enabled" de cada
uma delas. Caso utilize mais serviço, basta adaptar para suas necessidades.

Arquivo de configurações do Fail2ban


Após as modificações, salve o arquivo pressionando Ctrl+X, digitando Y e pressionando ENTER.
Reinicie o serviço e o fail2ban já estará funcionando.
service fail2ban restart

Para monitorar os endereços banidos, use o comando.


cat /var/log/fail2ban.log

Lembre-se que caso for banido, terá que esperar 24 horas para voltar ao seu servidor!

Fechando portas de serviços


Bloquear as portas que não precisam ficar expostas publicamente em seu servidor também é
uma boa ideia para reduzir as tentativas de flood e bruteforce. Para isso criaremos um script
chamado firewall.sh na pasta do superusuário;
cd /root
touch firewall.sh
chmod a+x firewall.sh

Em seguida iremos editar o arquivo e acrescentar nossas regras.


nano /root/firewall.sh

Copie, adapte e cole as regras abaixo em seu arquivo firewall.sh.


#!/bin/bash

# Limpa todas as regras existentes


iptables -F
iptables -X

# Aceita todas as conexões (será filtrado depois)


iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

# Bloqueia alguns tipos de ataque flood mais simples


iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

# permite tráfego TCP nas portas 80 e 443 (acrescente outras portas se utilizar)
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT

# desativa a resposta do comando ping


iptables -A OUTPUT -p icmp -o eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -s 0/0 -i eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type destination-unreachable -s 0/0 -i eth0 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type time-exceeded -s 0/0 -i eth0 -j ACCEPT
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p icmp -i eth0 -j DROP

# permite o SSH, FTP e portas passivas


# as portas passivas foram configuradas em nosso tutorial do servidor ftp
# modifique para corresponder as suas portas caso seja necessário
# lembre-se de acrescentar as portas adicionais que utilizar
iptables -A INPUT -p tcp --dport ssh --jump ACCEPT
iptables -A INPUT -p tcp --dport 20 --jump ACCEPT
iptables -A INPUT -p tcp --dport 21 --jump ACCEPT
iptables -A INPUT -p tcp --dport 60000:60005 --jump ACCEPT
iptables -A INPUT -s 127.0.0.1/32 --jump ACCEPT
# nega qualquer conexão que não esteja na regra
# TENHA CERTEZA QUE NÃO SE ESQUECEU DE NADA!
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -L -n

Salve pressionando Ctrl+X, digite Y e tecle ENTER. Ao executar o script, as regras do iptables
serão definidas, portando caso seja bloqueado para fora caso tenha algo errado, entre no seu
provedor que disponibiliza o acesso ao VPS e reinicie o servidor. Desta forma as regras serão
limpas.
Execute o comando.
/root/firewall.sh

Caso não tenha ficado preso para fora de seu servidor, acrescente essas regras na inicialização
do sistema.
nano /etc/rc.local

Adicione a seguinte linha no arquivo, depois dos comentários e antes do exit 0.

Script
de execução do Debian
/root/firewall.sh &

Lembre-se de terminar com &.


Sempre que reiniciar o servidor, estas regras serão executadas, evitando assim que portas
fiquem acessíveis na web sem necessidade.
Caso deseje reforçar ainda mais a segurança de seu servidor, leia nossa análise de
vulnerabilidades em sistemas web com PHP.

Índice: Como criar uma hospedagem VPS completa no Ubuntu ou Debian:


 Introdução - Criando e configurando uma hospedagem VPS completa (Debian ou Ubuntu)
 Capítulo 2 - Criando um servidor FTP
 Capítulo 3 - Instalando e configurando o Apache2 e Virtual Hosts
 Capítulo 4 - Instalação do PHP (5.6 ou 7.0)
 Capítulo 5 - Instalação e configuração do MySQL Server
 Capítulo 6 - Proteção contra burteforce em portas de serviços
Tutoriais e artigos recomendados

 Como acessar um servidor VPS


 Como criar usuários e grupos no Linux
 Como acessar um servidor FTP
 Como acessar um servidor MySQL
 Análise de Vulnerabilidades em Sistemas Web com PHP

Você também pode gostar