SlideShare a Scribd company logo
1 of 6
Download to read offline
Block Hosts: Bloqueando ataques de força-bruta (b...   http://www.vivaolinux.com.br/artigos/impressora....




         Block Hosts: Bloqueando ataques de força-bruta (brute force)
         em FTP, SSH e outros

         Autor: Alexandro Corrêa <alex.linux at gmail.com>
         Data: 17/11/2009


         Introdução

         Resumidamente, ataques de força-bruta (brute-force, em inglês) são aqueles
         onde o atacante tenta descobrir senhas à base de tentativa e erro. Estes
         ataques consistem em tentar acessar sistemas utilizando usuários e senhas
         aleatórias, ou mesmo utilizar um "dicionário" que contenham os usuários e
         senhas mais prováveis. Normalmente os serviços que mais sofrem este tipo de
         ataque são SSH, FTP e e-mail.

         Outra característica deste tipo de ataque é que, dependendo da capacidade e
         da utilização do servidor atacado, este pode ficar muito lento, já que podem ser
         realizadas centenas de conexões simultâneas tentando acertar o usuário e
         senha. Esta lentidão e ocupação do número de conexões pode fazer com que
         usuários legítimos não consigam acessar o sistema, gerando outro tipo famoso
         de ataque que é o de Negação de Serviço (Denial of Service).



         Como identificar se estou sendo
         atacado
         A identificação deste tipo de ataque ocorre lendo os logs de cada serviço. É
         uma boa prática de segurança periodicamente fazer a leitura dos logs. Segue
         abaixo um exemplo de ataque a um servidor FTP:

         Nov 08 16:31:41 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): FTP session opened.
         Nov 08 16:31:42 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): no such user 'Administrator'
         Nov 08 16:31:42 gateway proftpd[9920] gateway



1 de 6                                                                                   06-12-2009 12:53
Block Hosts: Bloqueando ataques de força-bruta (b...   http://www.vivaolinux.com.br/artigos/impressora....



         (61.152.239.49[61.152.239.49]): USER Administrator: no such user found
         from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21
         Nov 08 16:31:45 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): no such user 'Administrator'
         Nov 08 16:31:45 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): USER Administrator: no such user found
         from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21
         Nov 08 16:31:48 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): no such user 'Administrator'
         Nov 08 16:31:48 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): USER Administrator: no such user found
         from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21
         Nov 08 16:31:48 gateway proftpd[9920] gateway
         (61.152.239.49[61.152.239.49]): FTP session closed.

         A principal característica é que as linhas de log com "erro de conexão" se
         repetem dezenas ou até mesmo milhares de vezes.



         Como evitar este tipo de ataque na
         prática
         Como proteger-se?

         Existem diversas técnicas e recomendações para minimizar o risco de sofrer um
         ataque de força bruta, normalmente estas recomendações são muito difundidas
         para o serviço de SSH. É recomendável ler o artigo do CERT.BR, que trata do
         assunto, para ter um bom embasamento:

             Sugestões para defesa contra ataques de força bruta para SSH




         Ferramenta prática para proteção:
         Block Hosts
         Se mesmo seguindo as práticas mais recomendadas seus servidores continuam
         sendo atacados, está na hora de tomar alguma atitude mais drástica, pois mais
         cedo ou mais tarde alguém vai acertar um usuário e senha e a segurança do seu



2 de 6                                                                                   06-12-2009 12:53
Block Hosts: Bloqueando ataques de força-bruta (b...   http://www.vivaolinux.com.br/artigos/impressora....



         sistema pode ficar comprometida.

         A ferramenta Block Hosts tem a função de monitorar os logs dos serviços e caso
         existam muitas conexões inválidas de uma mesma origem ele trata de bloquear
         através de TCP_WRAPPERS (/etc/hosts.deny). Toda ação pode ser configurada:
         número máximo de erros de senha, tempo que o "atacante" deve ficar
         bloqueado, "Whitelist" com endereços que nunca poderão ser bloqueados,
         "Blacklist" etc.

         Site oficial da ferramenta: http://www.aczoom.com/cms/blockhosts

         A seguir os passos para instalação e configuração.



         Instalação do Block Hosts

         Para descrever a instalação está sendo considerado como base um sistema
         Debian Linux versão 5.0.3 com Kernel 2.6.26-2-486. Segue abaixo descrição
         passo-a-passo em 4 itens.

         PASSO 1: Faça download do arquivo ZIP da última versão do Block Hosts
         disponível em:

             http://www.aczoom.com/cms/blockhosts/download


         Hoje a última versão disponível é 2.4.0.

         PASSO 2: Instale os pacotes que são requisitos básicos necessários para o
         funcionamento. São eles:

             logwatch
             python
             python-optcomplete


         No Debian, utilize o comando "apt-get install logwatch python python-
         optcomplete", que irá instalar tudo automaticamente para você. Para outros
         sistemas, basta adaptar o processo de instalação destes pacotes.

         PASSO 3: Edite o arquivo "/etc/hosts.deny" e insira no início do arquivo duas
         linhas, conforme descrito abaixo:




3 de 6                                                                                   06-12-2009 12:53
Block Hosts: Bloqueando ataques de força-bruta (b...   http://www.vivaolinux.com.br/artigos/impressora....



         #---- BlockHosts Additions

         #---- BlockHosts Additions

         Esta é a marcação de qual parte do arquivo "hosts.deny" o Block Hosts vai
         inserir suas entradas de bloqueio de IPs.

         PASSO 4: Descompacte o arquivo "BlockHosts-2.4.0.zip" ou equivalente à sua
         versão e acesse o diretório descompactado.

         Para executar a instalação, rode o seguinte comando como root:

         # python setup.py install --force

         Este comando instalará automaticamente todos os arquivos necessários.

         Se não ocorreu nenhuma mensagem de erro, a instalação está finalizada! Agora
         basta configurar.



         Configuração e execução do Block Hosts

         Toda a configuração está concentrada no arquivo /etc/blockhosts.cfg . O arquivo
         de configuração tem muitos comentários e explicação de cada item (em inglês).
         Na prática você precisa apenas remover o caractere de comentário (#) e
         modificar o valor de cada item conforme sua necessidade. Mesmo assim vou
         comentar os principais itens:

         HOSTS_BLOCKFILE = "/etc/hosts.deny"
         -> Onde está localizado o arquivo 'hosts.deny'

         HOST_BLOCKLINE = ["ALL: ", " : deny"]
         -> Esta precisa apenas remover o comentário e deixar padrão, é a linha de
         bloqueio que será inserida no arquivo 'hosts.deny'.

         VERBOSE = Log.MESSAGE_LEVEL_INFO
         -> Define o nível de log. Para minhas necessidades o nível "info" é suficiente.

         COUNT_THRESHOLD = 7
         -> Número de vezes que o usuário pode errar a senha. Neste caso, se errar 7
         vezes, será bloqueado.

         AGE_THRESHOLD = 48


4 de 6                                                                                   06-12-2009 12:53
Block Hosts: Bloqueando ataques de força-bruta (b...   http://www.vivaolinux.com.br/artigos/impressora....



         -> Quanto tempo o IP de origem ficará bloqueado. Neste caso, 48 horas.

         WHITELIST = [ "127.0.0.1", "192.168..*..*", ]
         -> Lista de IPs ou range de IPs que nunca serão bloqueados. Na maioria das
         vezes é interessante listar aqui a sua rede interna. Podem ser utilizadas
         expressões regulares para a definição. Para saber mais sobre expressões
         regulares, acesse: http://www.vivaolinux.com.br/artigo/Iniciando-no-mundo-
         das-expressoes-regulares-%28parte-1%29/

         BLACKLIST = [ "192.168.10.1", "10..*", ]
         -> Se deseja manter um IP ou range de IPs sempre bloqueados, este é o local.
         Também podem ser utilizadas expressões regulares.

         LOGFILES = [ "/var/log/auth.log", "/var/log/proftpd/proftpd.log", ]
         -> Aqui você define quais serão os logs analisados. Neste caso está verificando
         o log do SSH e do ProFTPd.

         LOCKFILE = "/tmp/blockhosts.lock"
         -> Arquivo temporário de lock. Pode deixar o padrão.

         Este é o básico da configuração... o restante pode ficar na configuração padrão
         que já vai funcionar muito bem!

         Agora o último passo... rodando via cron!



         Executando o Block Hosts
         Para execução do Block Hosts você deve adicionar uma linha no agendador de
         tarefas Cron. Para isto edite o arquivo /etc/crontab e insira no final dele as
         seguintes linhas:

         # Executa Block Hosts a cada 5 minutos
         */5 * * * * root /usr/bin/blockhosts.py --verbose >> /var/log/blockhosts.log
         2>&1

         Após isto basta monitorar o arquivo de log armazenado em "/var/log
         /blockhosts.log" que tudo deve estar funcionando corretamente! Se tudo deu
         certo, pode respirar aliviado, você já está mais seguro...

         Espero que seja útil!




5 de 6                                                                                   06-12-2009 12:53
Block Hosts: Bloqueando ataques de força-bruta (b...   http://www.vivaolinux.com.br/artigos/impressora....



         Att,
         Alexandro Corrêa - Porto Alegre - RS




         http://www.vivaolinux.com.br/artigo/Block-Hosts-Bloqueando-ataques-
         de-forcabruta-(brute-force)-em-FTP-SSH-e-outros

         Voltar para o site




6 de 6                                                                                   06-12-2009 12:53

More Related Content

What's hot

GDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosGDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosCaio Cutrim
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Invasaocom exploits
Invasaocom exploitsInvasaocom exploits
Invasaocom exploitsNauber Gois
 
Vps manager 2.0 documentação e intalação
Vps manager 2.0   documentação e intalaçãoVps manager 2.0   documentação e intalação
Vps manager 2.0 documentação e intalaçãoManim Edições
 
Tutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelTutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelManim Edições
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e HardeningBruna Griebeler
 
SNMP - Rafael Rodriques
SNMP - Rafael RodriquesSNMP - Rafael Rodriques
SNMP - Rafael Rodriquesmarleigrolli
 
Ferramentas hack wifi aircrack
Ferramentas hack wifi aircrackFerramentas hack wifi aircrack
Ferramentas hack wifi aircrackPedro Verissimo
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoAndré Déo
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploitRoberto Soares
 
Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]João Augusto
 
Seguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticasSeguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticasFernando Beltrao
 

What's hot (18)

GDG NodeJS Sem Segredos
GDG NodeJS Sem SegredosGDG NodeJS Sem Segredos
GDG NodeJS Sem Segredos
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Invasaocom exploits
Invasaocom exploitsInvasaocom exploits
Invasaocom exploits
 
Squid
SquidSquid
Squid
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 
Vps manager 2.0 documentação e intalação
Vps manager 2.0   documentação e intalaçãoVps manager 2.0   documentação e intalação
Vps manager 2.0 documentação e intalação
 
Tutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunelTutorial open vpn_setup ssh tunel
Tutorial open vpn_setup ssh tunel
 
Debian 6: Instalação e Hardening
Debian 6: Instalação e HardeningDebian 6: Instalação e Hardening
Debian 6: Instalação e Hardening
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 
Aula 2
Aula 2Aula 2
Aula 2
 
SNMP - Rafael Rodriques
SNMP - Rafael RodriquesSNMP - Rafael Rodriques
SNMP - Rafael Rodriques
 
Apostila metasploit
Apostila metasploitApostila metasploit
Apostila metasploit
 
Ferramentas hack wifi aircrack
Ferramentas hack wifi aircrackFerramentas hack wifi aircrack
Ferramentas hack wifi aircrack
 
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André DéoZabbix e SNMP - Zabbix Conference LatAm - André Déo
Zabbix e SNMP - Zabbix Conference LatAm - André Déo
 
Slide curso metasploit
Slide curso metasploitSlide curso metasploit
Slide curso metasploit
 
Zabbix livro para ubuntu
Zabbix livro para ubuntuZabbix livro para ubuntu
Zabbix livro para ubuntu
 
Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]Automatizar backup no pf sense [dica]
Automatizar backup no pf sense [dica]
 
Seguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticasSeguranca da informação seguranca em_redes_parte_03praticas
Seguranca da informação seguranca em_redes_parte_03praticas
 

Viewers also liked

Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windowsCompartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windowsFelipe Santos
 
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security PluginMonitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security PluginAlessandro Silva
 
Uma introdução ao Powershell
Uma introdução ao PowershellUma introdução ao Powershell
Uma introdução ao Powershelldemetrioi
 
Virtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia LinuxVirtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia LinuxFernando Costa
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
Segurança na Internet
Segurança na InternetSegurança na Internet
Segurança na Internetelliando dias
 
Shell Script - Luz e trevas
Shell Script - Luz e trevasShell Script - Luz e trevas
Shell Script - Luz e trevasOsvaldo Filho
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015Flávia Santos
 
Programacao c shell
Programacao c shellProgramacao c shell
Programacao c shellMatheus Lima
 
Curso Básico/Intermediário Linux - Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux -  Colmeia 2008 - EmacsCurso Básico/Intermediário Linux -  Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux - Colmeia 2008 - EmacsMarco Carvalho de Oliveira
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell scriptbrunobione
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell ScriptReinaldo Lima
 
Apresentando Virtualização de computadores (vmware)
Apresentando Virtualização de computadores (vmware)Apresentando Virtualização de computadores (vmware)
Apresentando Virtualização de computadores (vmware)PEDRO DELFINO
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell ScriptLuís Eduardo
 

Viewers also liked (20)

Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windowsCompartilhando Internet Via Rádio entre m servidor linux e clientes windows
Compartilhando Internet Via Rádio entre m servidor linux e clientes windows
 
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security PluginMonitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
Monitoramento de Vulnerabilidades com Zabbix, RHEL e Yum Security Plugin
 
Uma introdução ao Powershell
Uma introdução ao PowershellUma introdução ao Powershell
Uma introdução ao Powershell
 
PowerShell
PowerShellPowerShell
PowerShell
 
Virtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia LinuxVirtualização de servidores com tecnologia Linux
Virtualização de servidores com tecnologia Linux
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
Segurança na Internet
Segurança na InternetSegurança na Internet
Segurança na Internet
 
Shell Script - Luz e trevas
Shell Script - Luz e trevasShell Script - Luz e trevas
Shell Script - Luz e trevas
 
Shell script
Shell scriptShell script
Shell script
 
12 aula - shell script-2015
12   aula - shell script-201512   aula - shell script-2015
12 aula - shell script-2015
 
Programacao c shell
Programacao c shellProgramacao c shell
Programacao c shell
 
Curso Básico/Intermediário Linux - Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux -  Colmeia 2008 - EmacsCurso Básico/Intermediário Linux -  Colmeia 2008 - Emacs
Curso Básico/Intermediário Linux - Colmeia 2008 - Emacs
 
Tutorial sobre iptables
Tutorial sobre iptablesTutorial sobre iptables
Tutorial sobre iptables
 
Shell script
Shell scriptShell script
Shell script
 
Lpi autodidata Flisol Florianopolis
Lpi autodidata Flisol FlorianopolisLpi autodidata Flisol Florianopolis
Lpi autodidata Flisol Florianopolis
 
Oficina de shell script
Oficina de shell scriptOficina de shell script
Oficina de shell script
 
Programação em Shell Script
Programação em Shell ScriptProgramação em Shell Script
Programação em Shell Script
 
Apresentando Virtualização de computadores (vmware)
Apresentando Virtualização de computadores (vmware)Apresentando Virtualização de computadores (vmware)
Apresentando Virtualização de computadores (vmware)
 
Minicurso Shell Script
Minicurso Shell ScriptMinicurso Shell Script
Minicurso Shell Script
 
Virtualização - Máquinas Virtuais
Virtualização - Máquinas VirtuaisVirtualização - Máquinas Virtuais
Virtualização - Máquinas Virtuais
 

Similar to Bloqueando ataques de força-bruta com Block Hosts

SegurançA BáSica Do Apache
SegurançA BáSica Do ApacheSegurançA BáSica Do Apache
SegurançA BáSica Do ApacheFelipe Santos
 
Microsoft word linux-03-03-prefis moveis
Microsoft word   linux-03-03-prefis moveisMicrosoft word   linux-03-03-prefis moveis
Microsoft word linux-03-03-prefis moveisCarlos Melo
 
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Elizabete Bahia
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisconogueira
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTecla Internet
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)GuilhermeDutra48
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteUilson Souza
 
Redes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesRedes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesSoftD Abreu
 

Similar to Bloqueando ataques de força-bruta com Block Hosts (20)

SegurançA BáSica Do Apache
SegurançA BáSica Do ApacheSegurançA BáSica Do Apache
SegurançA BáSica Do Apache
 
Introdução ao Ssh
Introdução ao SshIntrodução ao Ssh
Introdução ao Ssh
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Unidade5 roteiro
Unidade5 roteiroUnidade5 roteiro
Unidade5 roteiro
 
Usuarios linux
Usuarios linuxUsuarios linux
Usuarios linux
 
Microsoft word linux-03-03-prefis moveis
Microsoft word   linux-03-03-prefis moveisMicrosoft word   linux-03-03-prefis moveis
Microsoft word linux-03-03-prefis moveis
 
Vírus no Linux
Vírus no LinuxVírus no Linux
Vírus no Linux
 
Dhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamentoDhcp com controle_ip_compartilhamento
Dhcp com controle_ip_compartilhamento
 
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01Linux comandosgeraiseservidoresderede-120930000057-phpapp01
Linux comandosgeraiseservidoresderede-120930000057-phpapp01
 
1os passoscisco
1os passoscisco1os passoscisco
1os passoscisco
 
Tutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos LinuxTutorial - Cloud Computing Primeiros Acessos Linux
Tutorial - Cloud Computing Primeiros Acessos Linux
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)Vulnerabilidade Out-of-bounds-Write (CWE-787)
Vulnerabilidade Out-of-bounds-Write (CWE-787)
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 
Forefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamenteForefront TMG - Planejando corretamente
Forefront TMG - Planejando corretamente
 
Redes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redesRedes Linux comandos gerais e servidores de redes
Redes Linux comandos gerais e servidores de redes
 
Apostilaredeslinux
ApostilaredeslinuxApostilaredeslinux
Apostilaredeslinux
 
Hardening
HardeningHardening
Hardening
 
Tutorial Shell Script
Tutorial Shell ScriptTutorial Shell Script
Tutorial Shell Script
 

More from Felipe Santos

ConheçA O Apache 2.0 Parte 2
ConheçA O Apache 2.0   Parte 2ConheçA O Apache 2.0   Parte 2
ConheçA O Apache 2.0 Parte 2Felipe Santos
 
Quero Slack! (Parte 3)
Quero Slack! (Parte 3)Quero Slack! (Parte 3)
Quero Slack! (Parte 3)Felipe Santos
 
Quero Slack! (Parte 1)
Quero Slack! (Parte 1)Quero Slack! (Parte 1)
Quero Slack! (Parte 1)Felipe Santos
 
Quero Arch! (Parte 2)
Quero Arch! (Parte 2)Quero Arch! (Parte 2)
Quero Arch! (Parte 2)Felipe Santos
 
Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 6
Conceitos BáSicos Sobre SegurançA   Parte 6Conceitos BáSicos Sobre SegurançA   Parte 6
Conceitos BáSicos Sobre SegurançA Parte 6Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 4
Conceitos BáSicos Sobre SegurançA   Parte 4Conceitos BáSicos Sobre SegurançA   Parte 4
Conceitos BáSicos Sobre SegurançA Parte 4Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 3
Conceitos BáSicos Sobre SegurançA   Parte 3Conceitos BáSicos Sobre SegurançA   Parte 3
Conceitos BáSicos Sobre SegurançA Parte 3Felipe Santos
 
Conceitos BáSicos Sobre SegurançA Parte 2
Conceitos BáSicos Sobre SegurançA   Parte 2Conceitos BáSicos Sobre SegurançA   Parte 2
Conceitos BáSicos Sobre SegurançA Parte 2Felipe Santos
 
Curso De Shell Aula 6
Curso De Shell   Aula 6Curso De Shell   Aula 6
Curso De Shell Aula 6Felipe Santos
 
Curso De Shell Aula 5
Curso De Shell   Aula 5Curso De Shell   Aula 5
Curso De Shell Aula 5Felipe Santos
 
Curso De Shell Aula 3
Curso De Shell   Aula 3Curso De Shell   Aula 3
Curso De Shell Aula 3Felipe Santos
 
Curso De Shell Aula 1
Curso De Shell   Aula 1Curso De Shell   Aula 1
Curso De Shell Aula 1Felipe Santos
 
Acesso Remoto Para Principiantes
Acesso Remoto Para PrincipiantesAcesso Remoto Para Principiantes
Acesso Remoto Para PrincipiantesFelipe Santos
 
Curso De Algoritmo Aula 10
Curso De Algoritmo   Aula 10Curso De Algoritmo   Aula 10
Curso De Algoritmo Aula 10Felipe Santos
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9Felipe Santos
 
Curso De Algoritmo Aula 8
Curso De Algoritmo   Aula 8Curso De Algoritmo   Aula 8
Curso De Algoritmo Aula 8Felipe Santos
 

More from Felipe Santos (20)

ConheçA O Apache 2.0 Parte 2
ConheçA O Apache 2.0   Parte 2ConheçA O Apache 2.0   Parte 2
ConheçA O Apache 2.0 Parte 2
 
Quero Slack! (Parte 3)
Quero Slack! (Parte 3)Quero Slack! (Parte 3)
Quero Slack! (Parte 3)
 
Quero Slack! (Parte 1)
Quero Slack! (Parte 1)Quero Slack! (Parte 1)
Quero Slack! (Parte 1)
 
Quero Arch! (Parte 2)
Quero Arch! (Parte 2)Quero Arch! (Parte 2)
Quero Arch! (Parte 2)
 
Quero Arch! (Parte 1)
Quero Arch! (Parte 1)Quero Arch! (Parte 1)
Quero Arch! (Parte 1)
 
Conceitos BáSicos Sobre SegurançA Parte 6
Conceitos BáSicos Sobre SegurançA   Parte 6Conceitos BáSicos Sobre SegurançA   Parte 6
Conceitos BáSicos Sobre SegurançA Parte 6
 
Conceitos BáSicos Sobre SegurançA Parte 4
Conceitos BáSicos Sobre SegurançA   Parte 4Conceitos BáSicos Sobre SegurançA   Parte 4
Conceitos BáSicos Sobre SegurançA Parte 4
 
Conceitos BáSicos Sobre SegurançA Parte 3
Conceitos BáSicos Sobre SegurançA   Parte 3Conceitos BáSicos Sobre SegurançA   Parte 3
Conceitos BáSicos Sobre SegurançA Parte 3
 
Conceitos BáSicos Sobre SegurançA Parte 2
Conceitos BáSicos Sobre SegurançA   Parte 2Conceitos BáSicos Sobre SegurançA   Parte 2
Conceitos BáSicos Sobre SegurançA Parte 2
 
Curso De Shell Aula 6
Curso De Shell   Aula 6Curso De Shell   Aula 6
Curso De Shell Aula 6
 
Curso De Shell Aula 5
Curso De Shell   Aula 5Curso De Shell   Aula 5
Curso De Shell Aula 5
 
Curso De Shell Aula 3
Curso De Shell   Aula 3Curso De Shell   Aula 3
Curso De Shell Aula 3
 
Curso De Shell Aula 1
Curso De Shell   Aula 1Curso De Shell   Aula 1
Curso De Shell Aula 1
 
Sniffers Parte 3
Sniffers   Parte 3Sniffers   Parte 3
Sniffers Parte 3
 
Sniffers Parte 1
Sniffers   Parte 1Sniffers   Parte 1
Sniffers Parte 1
 
Sniffers Parte 2
Sniffers   Parte 2Sniffers   Parte 2
Sniffers Parte 2
 
Acesso Remoto Para Principiantes
Acesso Remoto Para PrincipiantesAcesso Remoto Para Principiantes
Acesso Remoto Para Principiantes
 
Curso De Algoritmo Aula 10
Curso De Algoritmo   Aula 10Curso De Algoritmo   Aula 10
Curso De Algoritmo Aula 10
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Curso De Algoritmo Aula 8
Curso De Algoritmo   Aula 8Curso De Algoritmo   Aula 8
Curso De Algoritmo Aula 8
 

Bloqueando ataques de força-bruta com Block Hosts

  • 1. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... Block Hosts: Bloqueando ataques de força-bruta (brute force) em FTP, SSH e outros Autor: Alexandro Corrêa <alex.linux at gmail.com> Data: 17/11/2009 Introdução Resumidamente, ataques de força-bruta (brute-force, em inglês) são aqueles onde o atacante tenta descobrir senhas à base de tentativa e erro. Estes ataques consistem em tentar acessar sistemas utilizando usuários e senhas aleatórias, ou mesmo utilizar um "dicionário" que contenham os usuários e senhas mais prováveis. Normalmente os serviços que mais sofrem este tipo de ataque são SSH, FTP e e-mail. Outra característica deste tipo de ataque é que, dependendo da capacidade e da utilização do servidor atacado, este pode ficar muito lento, já que podem ser realizadas centenas de conexões simultâneas tentando acertar o usuário e senha. Esta lentidão e ocupação do número de conexões pode fazer com que usuários legítimos não consigam acessar o sistema, gerando outro tipo famoso de ataque que é o de Negação de Serviço (Denial of Service). Como identificar se estou sendo atacado A identificação deste tipo de ataque ocorre lendo os logs de cada serviço. É uma boa prática de segurança periodicamente fazer a leitura dos logs. Segue abaixo um exemplo de ataque a um servidor FTP: Nov 08 16:31:41 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): FTP session opened. Nov 08 16:31:42 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): no such user 'Administrator' Nov 08 16:31:42 gateway proftpd[9920] gateway 1 de 6 06-12-2009 12:53
  • 2. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... (61.152.239.49[61.152.239.49]): USER Administrator: no such user found from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21 Nov 08 16:31:45 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): no such user 'Administrator' Nov 08 16:31:45 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): USER Administrator: no such user found from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21 Nov 08 16:31:48 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): no such user 'Administrator' Nov 08 16:31:48 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): USER Administrator: no such user found from 61.152.239.49 [61.152.239.49] to 201.37.10.10:21 Nov 08 16:31:48 gateway proftpd[9920] gateway (61.152.239.49[61.152.239.49]): FTP session closed. A principal característica é que as linhas de log com "erro de conexão" se repetem dezenas ou até mesmo milhares de vezes. Como evitar este tipo de ataque na prática Como proteger-se? Existem diversas técnicas e recomendações para minimizar o risco de sofrer um ataque de força bruta, normalmente estas recomendações são muito difundidas para o serviço de SSH. É recomendável ler o artigo do CERT.BR, que trata do assunto, para ter um bom embasamento: Sugestões para defesa contra ataques de força bruta para SSH Ferramenta prática para proteção: Block Hosts Se mesmo seguindo as práticas mais recomendadas seus servidores continuam sendo atacados, está na hora de tomar alguma atitude mais drástica, pois mais cedo ou mais tarde alguém vai acertar um usuário e senha e a segurança do seu 2 de 6 06-12-2009 12:53
  • 3. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... sistema pode ficar comprometida. A ferramenta Block Hosts tem a função de monitorar os logs dos serviços e caso existam muitas conexões inválidas de uma mesma origem ele trata de bloquear através de TCP_WRAPPERS (/etc/hosts.deny). Toda ação pode ser configurada: número máximo de erros de senha, tempo que o "atacante" deve ficar bloqueado, "Whitelist" com endereços que nunca poderão ser bloqueados, "Blacklist" etc. Site oficial da ferramenta: http://www.aczoom.com/cms/blockhosts A seguir os passos para instalação e configuração. Instalação do Block Hosts Para descrever a instalação está sendo considerado como base um sistema Debian Linux versão 5.0.3 com Kernel 2.6.26-2-486. Segue abaixo descrição passo-a-passo em 4 itens. PASSO 1: Faça download do arquivo ZIP da última versão do Block Hosts disponível em: http://www.aczoom.com/cms/blockhosts/download Hoje a última versão disponível é 2.4.0. PASSO 2: Instale os pacotes que são requisitos básicos necessários para o funcionamento. São eles: logwatch python python-optcomplete No Debian, utilize o comando "apt-get install logwatch python python- optcomplete", que irá instalar tudo automaticamente para você. Para outros sistemas, basta adaptar o processo de instalação destes pacotes. PASSO 3: Edite o arquivo "/etc/hosts.deny" e insira no início do arquivo duas linhas, conforme descrito abaixo: 3 de 6 06-12-2009 12:53
  • 4. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... #---- BlockHosts Additions #---- BlockHosts Additions Esta é a marcação de qual parte do arquivo "hosts.deny" o Block Hosts vai inserir suas entradas de bloqueio de IPs. PASSO 4: Descompacte o arquivo "BlockHosts-2.4.0.zip" ou equivalente à sua versão e acesse o diretório descompactado. Para executar a instalação, rode o seguinte comando como root: # python setup.py install --force Este comando instalará automaticamente todos os arquivos necessários. Se não ocorreu nenhuma mensagem de erro, a instalação está finalizada! Agora basta configurar. Configuração e execução do Block Hosts Toda a configuração está concentrada no arquivo /etc/blockhosts.cfg . O arquivo de configuração tem muitos comentários e explicação de cada item (em inglês). Na prática você precisa apenas remover o caractere de comentário (#) e modificar o valor de cada item conforme sua necessidade. Mesmo assim vou comentar os principais itens: HOSTS_BLOCKFILE = "/etc/hosts.deny" -> Onde está localizado o arquivo 'hosts.deny' HOST_BLOCKLINE = ["ALL: ", " : deny"] -> Esta precisa apenas remover o comentário e deixar padrão, é a linha de bloqueio que será inserida no arquivo 'hosts.deny'. VERBOSE = Log.MESSAGE_LEVEL_INFO -> Define o nível de log. Para minhas necessidades o nível "info" é suficiente. COUNT_THRESHOLD = 7 -> Número de vezes que o usuário pode errar a senha. Neste caso, se errar 7 vezes, será bloqueado. AGE_THRESHOLD = 48 4 de 6 06-12-2009 12:53
  • 5. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... -> Quanto tempo o IP de origem ficará bloqueado. Neste caso, 48 horas. WHITELIST = [ "127.0.0.1", "192.168..*..*", ] -> Lista de IPs ou range de IPs que nunca serão bloqueados. Na maioria das vezes é interessante listar aqui a sua rede interna. Podem ser utilizadas expressões regulares para a definição. Para saber mais sobre expressões regulares, acesse: http://www.vivaolinux.com.br/artigo/Iniciando-no-mundo- das-expressoes-regulares-%28parte-1%29/ BLACKLIST = [ "192.168.10.1", "10..*", ] -> Se deseja manter um IP ou range de IPs sempre bloqueados, este é o local. Também podem ser utilizadas expressões regulares. LOGFILES = [ "/var/log/auth.log", "/var/log/proftpd/proftpd.log", ] -> Aqui você define quais serão os logs analisados. Neste caso está verificando o log do SSH e do ProFTPd. LOCKFILE = "/tmp/blockhosts.lock" -> Arquivo temporário de lock. Pode deixar o padrão. Este é o básico da configuração... o restante pode ficar na configuração padrão que já vai funcionar muito bem! Agora o último passo... rodando via cron! Executando o Block Hosts Para execução do Block Hosts você deve adicionar uma linha no agendador de tarefas Cron. Para isto edite o arquivo /etc/crontab e insira no final dele as seguintes linhas: # Executa Block Hosts a cada 5 minutos */5 * * * * root /usr/bin/blockhosts.py --verbose >> /var/log/blockhosts.log 2>&1 Após isto basta monitorar o arquivo de log armazenado em "/var/log /blockhosts.log" que tudo deve estar funcionando corretamente! Se tudo deu certo, pode respirar aliviado, você já está mais seguro... Espero que seja útil! 5 de 6 06-12-2009 12:53
  • 6. Block Hosts: Bloqueando ataques de força-bruta (b... http://www.vivaolinux.com.br/artigos/impressora.... Att, Alexandro Corrêa - Porto Alegre - RS http://www.vivaolinux.com.br/artigo/Block-Hosts-Bloqueando-ataques- de-forcabruta-(brute-force)-em-FTP-SSH-e-outros Voltar para o site 6 de 6 06-12-2009 12:53