Todo e qualquer dispositivo conectado à rede pode ser considerado um alvo em potencial para indivíduos mal-intencionados, e essa é uma realidade que tende a piorar! O que nos resta é proteger os dispositivos da melhor forma possível. Neste post apresentarei as ferramentas de proteção DenyHosts, Fail2ban, JailKit e RKHunter, todas gratuitas e regidas por uma licença de código aberto.
Não descreverei os processos de instalação, configuração e utilização das ferramentas supracitadas – não se preocupe! Deixarei links para tutoriais que abrangem essa finalidade prática –, mas apresentarei uma breve descrição do que elas fazem, de quais são os benefícios da sua utilização e de quando devem ser utilizadas.
DenyHosts e Fail2ban
Ao criarmos um servidor e publicá-lo na internet, estamos consequentemente expondo os serviços oferecidos por ele a riscos diversos. Em grande parte, indivíduos mal-intencionados tentarão ter acesso não autorizado ao seu servidor, seja via SSH, seja via FTP ou qualquer outro protocolo de comunicação. Esse acesso pode garantir controle total ou parcial da máquina, ou apenas possibilitar o roubo de algum arquivo ou informação. Definir uma senha forte para o serviço de conexão remota é um bom começo, porém não é o bastante.
Ataques de força bruta (brute-force) e negação de serviço (DoS: Denial-of-Service) são uma preocupação constante. No primeiro vetor de ataque o objetivo é descobrir a senha de um usuário via ataque de dicionário; já o segundo tem como finalidade derrubar um serviço ao sobrecarregá-lo com milhares de requisições simultâneas.
Em outras palavras, devemos ter uma preocupação constante com a proteção de nossos serviços expostos à internet. Sendo assim, abaixo serão apresentados o DenyHosts e o Fail2ban, ferramentas voltadas especialmente para proteger serviços de conexão remota:
- DenyHosts: essa é uma ferramenta (script) voltada a proteger servidores contra ataques de força bruta que buscam adivinhar a senha de acesso do serviço de conexão remota SSH. O DenyHosts é citado por muitos como uma das melhores ferramentas do gênero;
- Fail2ban: essa ferramenta é semelhante ao DenyHosts, entretanto, diferentemente do DenyHosts, que se concentra em proteger apenas conexões SSH, o Fail2ban pode ser configurado para monitorar qualquer serviço que escreva tentativas de login em um arquivo de log. Outro ponto é que, em vez de usar o /etc/hosts.deny apenas para bloquear os hosts, o Fail2ban pode usar o Netfilter, o Iptables e o TCP Wrappers. Em outras palavras, essa ferramenta pode ser configurada para proteger basicamente qualquer serviço de rede que escreva em arquivos de log, uma ótima solução para proteger tanto conexões SSH como FTP e outras.
Links
DenyHosts: o processo de instalação, configuração e utilização foi detalhado na 5ª edição da revista Segurança Digital, p. 42. A revista está disponível gratuitamente em http://www.tinarede.com.br.
Fail2ban: o processo de instalação, configuração e utilização pode ser encontrado em: http://sysadmin.linuxdescomplicado.com.br/2016/05/como-proteger-seu-servidor-linux-contra-ataques-automatizados-usando-a-ferramenta-fail2ban/ e https://servidordebian.org/pt/wheezy/security/brute_force_attack/fail2ban.
JailKit
Certamente você já ouviu algo como “o usuário é o ponto mais vulnerável de um sistema”. Pois bem, em parte essa afirmativa está correta; sendo assim, devemos limitar o espaço de atuação e o estrago que um usuário pode porventura vir a gerar, mas como fazer isso? JailKit é a resposta! Essa ferramenta pode limitar o usuário a uma determinada árvore de diretórios e a comandos específicos, utilizando a técnica chroot (um tipo de “enjaulamento”).
Em outras palavras, não devemos deixar o usuário ter acesso a todo o sistema; quanto mais acesso ele tiver, mais perigo sua conta de usuário representa. Imagine uma hospedagem compartilhada, na qual 500 usuários compartilham um mesmo servidor e cada qual tem seu espaço de armazenamento e o direito de acessar somente esse espaço. Imagine a bagunça que seria se um usuário pudesse acessar o espaço de outro! Para evitar isso, utilizamos o JailKit. Ele cria uma “jaula” para limitar tanto o espaço destinado para cada usuário como os comandos que cada qual pode executar no sistema.
Imagine que um indivíduo consiga ter acesso não autorizado a uma das contas do servidor de hospedagem listado acima. Como as contas foram devidamente configuradas com JailKit, esse individuo terá acesso limitado ao espaço e aos comandos definidos para o usuário comprometido, ou seja, a proteção das contas dos outros usuários que compartilham o mesmo servidor estará garantida.
Links
Para mais informações, bem como para acesso ao manual de instalação, configuração e utilização do Jailkit, visite https://universidadeti.com.br/jailkit-como-configurar-um-ssh-enjaulado-bf8f021f5944 e https://sempreupdate.com.br/2017/05/como-criar-um-usuario-ssh-preso-com-jailkit-no-debian.html.
RKHunter (Rootkit Hunter)
Essa ferramenta faz uma busca no sistema à procura de rootkits e backdoors. Como ela funciona? O RKHunter utiliza hash SHA para comparar arquivos localizados na máquina com uma base de dados de arquivos catalogados como maliciosos.
Além disso, consegue localizar permissões incorretas, arquivos escondidos e strings suspeitas em módulos do kernel e conduz alguns outros testes específicos.
O chkrootkit é outro software para a mesma finalidade; utilize aquele que mais agradar você.
Links
Para mais informações, bem como para acesso ao manual de instalação, configuração e utilização, visite:
RKHunter: http://www.dicas-l.com.br/arquivo/rkhunter_the_rootkit_hunter_project.php#.WXNlbq3OonU e https://www.vivaolinux.com.br/artigo/Procurando-rootkits-no-seu-sistema
RKHunter e chkrootkit: https://www.vivaolinux.com.br/artigo/Procurando-rootkits-no-seu-sistema
Dicas de segurança
Nem toda proteção é fornecida via utilização de software; uma boa cultura voltada à segurança é sempre um adendo importante. Sendo assim, listo logo abaixo alguns pontos importantes e genéricos que podem ser adotados para aumentar a proteção do seu servidor:
SSH:
- Não permita que o usuário root faça login remoto;
- Adote a utilização de chaves para autenticação (são mais seguras);
- Não utilize nomes de usuário comuns;
- Habilite SSH somente para usuários que precisam dele;
- Assegure-se de que os pacotes SSH estão atualizados com as últimas versões disponíveis.
Sistema:
- Evite, sempre que possível, utilizar o sistema com a conta de root;
- Mantenha seu sistema atualizado;
- Evite instalar softwares desnecessários (mantenha só o essencial);
- Instale ferramentas de proteção. Caso realize acesso remoto, você já sabe que o DenyHosts ou o Fail2ban são indispensáveis dependendo dos serviços expostos;
- Limite o acesso dos usuários.
Leitura complementar: https://cryptoid.com.br/ssl/como-configurar-e-proteger-o-acesso-ao-seu-servidor-web/