Port Knocking: Protegendo serviços com FWKnop

Port Knocking: Protegendo serviços com FWKnop
  • Ambiente:
    • Distribuição: Slackware Linux 13.0 (32 bits)
    • Categorias de pacotes instaladas: A, AP, D, L e N.
  • Softwares utilizados:
    • FWKnop (1.9.12);
  • Bibliotecas utilizadas:
    • LibPCap (0.9.8);

Introdução

A utilização de serviços de rede criptografados como o OpenSSH é de extrema importância na administração remota de servidores.

Entretanto, a utilização de boas práticas de segurança, como por exemplo, alteração de portas padrão, bloqueio do acesso direto ao usuário root e uso de senhas fortes não eliminam a tentativa de exploração de falhas de segurança nesses serviços, fato que se agrava quando um exploit foi implementado para uma falha recém descoberta e ainda não foi divulgada, situação essa conhecida como zero-day exploit.

Este tutorial apresenta como implantar um serviço de Port Knocking através do software FWKnop (FireWall KNock Operator) permitindo autorizar conexões a serviços através de autenticação passiva.

A autorização passiva utilizada neste tutorial fará uso da biblioteca Pcap para realizar a captura dos pacotes.

Port Knocking

Port Knocking consiste no envio de uma sequência de pacotes com destino a determinadas portas (knock sequence), conhecida como sequencia de batidas. O envio de uma sequencia específica permitirá disparar a execução de uma tarefa no servidor, tarefa essa que tipicamente realiza a permissão de acesso a uma determinada porta através da manipulação de regras no firewall.

Deste modo, o administrador teria que enviar pacotes numa sequencia específica de portas, para que o servidor ao detectar a sequencia correta, executasse um script que criaria uma regra autorizando a conexão a um determinado serviço. Como analogia, seria a ideia de utilizar a sequência correta para abrir uma das portas do cofre de um banco.

Como exemplo, suponha que a sequência esta caracterizada pelo envio de quatro pacotes UDP com destino as portas 1001, 2002 e 3003, deste modo, dependendo da implementação do software, e claro, da sua configuração, teríamos por exemplo que enviar essa sequencia (na ordem correta) e também em um intervalo máximo de tempo.

A ideia por trás do Port Knocking não é tão nova, sendo utilizada a um bom tempo por rootkits, permitindo assim que apenas o individuo que instalou o rootkit e/ou conheça a sequencia de portas a serem “batidas” pudesse fazer uso do serviço na máquina do rootkit instalado.

O uso da técnica de Port Knocking permite que o firewall seja configurado em modo altamente restritivo, ou seja, bloqueie conexões a qualquer serviço.

Outra utilidade para este tipo de técnica é proteger serviços que ainda não tiveram seus patches de segurança aplicados. Vale salientar que independente dos serviços vulneráveis não estarem expostos devido o uso da técnica de Port Knocking, aplicar patches regularmente é uma boa prática de segurança e não deve ser deixada de lado.

Como exemplo de implementações da técnica de Port Knocking, temos o software knockd e módulo recent do Iptables.

Entretanto, iremos utilizar o software FWKnop pois o mesmo permite a utilização de mecanismos que aumentam a segurança, como por exemplo, criptografia simétrica e assimétrica, através do envio de um único pacote SPA (Single Packet Authorization).

A figura 1 mostra o uso da técnica de Port Knocking para obter autorização do firewall para realizar conexão a um serviço específico.

img

Figura 1 – Funcionalidade de port knocking implementada no Firewall para proteger serviços.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X