Segurança SSH: Bloqueie Tentativas de Login com PyFilter no Ubuntu 16.04

O protocolo SSH (Secure Shell) é uma ferramenta fundamental para o gerenciamento remoto de servidores, permitindo conexões seguras. Entretanto, essa mesma funcionalidade o torna um alvo para ataques de força bruta, nos quais invasores tentam repetidamente adivinhar as credenciais de acesso. Essas tentativas incessantes podem comprometer a segurança e a disponibilidade do seu servidor.

Para fortalecer a proteção contra essas ameaças, apresentamos o PyFilter, uma solução de firewall baseada em Python que possibilita a criação de regras de filtragem personalizadas. Este artigo detalha o processo de instalação e configuração do PyFilter no Ubuntu 16.04, visando bloquear acessos SSH não autorizados.

Instalação do PyFilter

Antes de tudo, é preciso instalar o gerenciador de pacotes Python-pip:


sudo apt-get update
sudo apt-get install python-pip

Com o pip instalado, prossiga com a instalação do PyFilter:


sudo pip install pyfilter

Configuração do PyFilter

Após a instalação, crie o arquivo de configuração /etc/pyfilter.conf com as seguintes diretrizes:


[DEFAULT]
filter = pvfilter.filters.DropFilter()

[ssh]
accept = pvfilter.filters.AcceptFilter()
accept.tcp_dport = 22
accept.tcp_sport = [1024:65535]
accept.icmp_type = 8

deny = pvfilter.filters.RejectFilter()
deny.tcp_dport = 22
deny.tcp_sport = [1:1023, 65536:65535]
deny.icmp_type = 0
deny.icmp_code = 3

[dhcp]
accept = pvfilter.filters.AcceptFilter()
accept.udp_dport = 67
accept.udp_sport = 68

Entendendo as Regras de Filtragem

Vamos detalhar cada seção e regra do arquivo de configuração:

  • [DEFAULT]: Estabelece o filtro padrão para todo o tráfego.
  • [ssh]: Configura as regras específicas para o tráfego SSH.
  • accept: Autoriza conexões SSH provenientes de portas de origem acima de 1024.
  • deny: Bloqueia todas as demais conexões SSH.
  • [dhcp]: Define as regras para o tráfego DHCP.
  • accept: Permite tráfego DHCP da porta UDP 68 para a porta UDP 67.

Aplicando as Regras do PyFilter

Para ativar as regras, carregue o módulo do kernel do PyFilter:


sudo modprobe pyfilter

Verificação do Funcionamento

Use o comando abaixo para confirmar se o PyFilter está em operação:


sudo pyfilter-show

Este comando exibirá uma lista das regras ativas, incluindo aquelas que você definiu no arquivo de configuração.

Considerações Finais

Com este guia, você aprendeu a implementar o PyFilter para proteger seu servidor Ubuntu 16.04 contra tentativas de login SSH não desejadas. O PyFilter é uma ferramenta eficiente e fácil de usar, que adiciona uma camada crucial de segurança ao seu servidor.

É recomendável monitorar os logs do PyFilter para identificar atividades suspeitas e ajustar as regras de acordo com as suas necessidades. Ao utilizar o PyFilter, você contribui para a segurança e estabilidade do seu servidor, prevenindo interrupções causadas por ataques de força bruta.

Perguntas Frequentes (FAQs)

  1. O PyFilter consegue bloquear outros tipos de tráfego além de SSH e DHCP?
    Sim, ele pode ser usado para qualquer tráfego de rede, bastando configurar as regras adequadas.
  2. Posso restringir conexões SSH a endereços IP específicos?
    Sim, adicione uma regra na seção [ssh] do arquivo de configuração para permitir apenas conexões de endereços IP autorizados.
  3. O PyFilter oferece suporte à filtragem de tráfego IPv6?
    Sim, a filtragem de tráfego IPv6 é suportada.
  4. Como desabilito o PyFilter?
    Execute o seguinte comando:
    sudo rmmod pyfilter
  5. Onde posso encontrar mais informações sobre o PyFilter?
    Consulte a página do PyFilter no GitHub.
  6. O PyFilter funciona em outras distribuições Linux?
    Sim, ele é compatível com diversas distribuições, como CentOS, Debian e Fedora.
  7. O PyFilter é seguro para uso?
    Sim, o PyFilter é seguro. No entanto, é importante revisar as regras antes de aplicá-las para garantir que tráfego legítimo não seja bloqueado acidentalmente.
  8. Quais são outras aplicações do PyFilter, além do bloqueio de tentativas de login SSH?
    O PyFilter pode ser utilizado para diversas tarefas, como controle de largura de banda, monitoramento de tráfego e proteção contra ataques DoS.