Qual é a diferença entre o Port Knocking e o URL Knocking?

1

Eu sei o que é Port Knocking . Mas eu li em algum lugar escreveu URL Knocking . Não encontrei nenhum link útil sobre URL Knocking . Agora eu realmente quero saber o que é e qual é a sua diferença com Port Knocking . Agradecemos antecipadamente.

    
por Richard 07.02.2017 / 21:51

2 respostas

1

URL Knocking continuamente lendo o log do apache (ou outro servidor web) e se ele vir algum O URL (como https://example.com/TheSecretStringHere/ ) que contornou a predefinição na cadeia "TheSecretStringHere" do servidor com a URL solicitada, simplesmente manipula as regras de firewall abrindo o acesso à porta do lado do servidor especificada. Esta solução pode ser usada sem qualquer software de terceiros, utilizando apenas comumente instalado por utilitários do sistema operacional.

A vantagem desse método é: - se você usa o protocolo https , ele elimina os observadores man-in-a-middle, já que a URL real é invisível porque está criptografada. Outro - é fácil implementar sua própria solução com base em seu fluxo de trabalho.

Desvantagem - tudo com base na implementação.

No link que forneci, faça um script lendo continuamente o log do servidor da Web usando o recurso efetivo de% tail -f (que utiliza a notificação do kernel inotify nas alterações do arquivo) e filtre a URL com grep . Se a URL corresponder à sequência secreta, o script acionará alguma ação.

Há utilitários extras adicionais que podem ser usados no espaço do usuário, como inotifywait , que podem efetivamente vigiar o log do servidor web e, se houver alguma alteração, iniciar uma ação (que pode não estar abrindo a porta). / p>

Port Knocking , em contraste, geralmente são programas de terceiros dedicados e não são protegidos do intermediário, mas fazem o mesmo que URL Knocking .

Como conclusão, se você configurar qualquer servidor da Web que possa criar arquivos de log e suportar https , então IMO URL Knocking é uma maneira mais segura de abrir portas sob demanda.

Exemplo de URL Knocking (do link acima):

#!/bin/sh

open_port() {
    /sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22  
    /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT
}

close_port() {
    /sbin/iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 22 
    /sbin/iptables -D INPUT -p tcp --dport 22 -j ACCEPT 
}

tail -n0 --follow=name /var/log/apache2/access.log | 
(while read line; do 
    if echo $line | grep "/SOME SECRET THING/"; then
        echo OPEN
        open_port
        sleep 60
        echo CLOSE    
        close_port
    fi
done)

O crédito para o script vai para: Jason Spashett

    
por 08.02.2017 / 00:28
0

URL Knocking é a mesma ideia que o Port Knocking, mas em vez de procurar por tentativas de conexão a uma série secreta de portas, ele procura solicitações HTTP para uma série secreta de URLs. Foi inventado para casos em que o dispositivo externo que faz o knocking está atrás de um firewall com regras de saída restritivas, por isso não pode bater em nenhuma porta além de 80 e 443. Portanto, ele se conecta por HTTP [S] e "knock" por solicitando uma seqüência mágica de URLs.

    
por 08.02.2017 / 01:38