Port knocking, aprenda a melhorar as política de segurança de seu firewall Linux e Mikrotik

Port knocking é um método de abrir portas externamente em um firewall, realizando tentativas de conexões em uma sequemcia de portas fechadas pré-especificadas, e depois que esta sequência estiver correta as regras de firewall são modificadas temporariamente para permitir que o host que “bateu” nas portas tenha acesso.

Vou ensinar realizar Port knocking no Linux com nftables e iptables e Mikrotik 🙂

Primeiramente precisamos escolher 4 portas que iremos bater para ganhar acesso.
No meu exemplo irei usar as portas: 52341, 28001, 60541, 30951

Neste exemplo vou estar liberando as portas 22 e 23 após “batermos” nas portas 52341, 28001, 60541, 30951, e por 1min após bater nas portas teremos acesso as portas 22 e 23.

Se você é amante de linux, e seu desktop é um lindo linux instale o “batedor” knockd, não vamos usa-lo ainda, mas já podemos instala-lo!

Ele funciona assim:

Linux Nftables

Primeiramente tenha o nftables instalado. Para distribuição baseadas em Debian use:

O arquivo de configuração padrão do nftables fica em /etc/nftables.conf, então vamos edita-lo:

Lembre-se de criar o seu padrão de sequencia e portas, e adicione ao final do arquivo:

Restarte o nftables

Se você não usa linux em seu deskop 🙁 para usar o knock, basta você jogar no seu navegador ip:porta, ex 192.168.1.1:52341 192.168.1.1:28001 192.168.1.1:60541 192.168.1.1:30951, lembre-se que você tem 1 minuto para bater nas portas e realizar sua conexão. Já já ensino como ter um servido web e liberar a porta em um click!

Para acompanhar os logs:

Realize o SSH (ou acesse o a porta que tenha protegido para testar)

Linux Iptables

Vou deixar um modelo com iptables, mas recomendo você ir migrando para nftables que em um futuro sera seu sucessor. Não esqueça de alterar as portas para sua realidade, em seu arquivo de firewall tenha:

Pode realizar os mesmo procedimento anteriores

Mikrotik

Aqui vai uma observação muito importante para quem usa routerOS, FIREWALL TEM LUGAR PARA SER FEITO, então não sai aplicando Port Knocking em todo o lugar. Por exemplo, muitos provedores tem o costume de deixar na sua borda routerOS o serviço PPTP ativo para fazer uma conexão quando esta fora da sua rede, este é um bom exemplo de NÃO se seguir, routerOS tem q ter muito cuidado quando se cria firewall, recomendo que para esse tipo de serviço como PPTP Server, seja rodado em um router paralelo (pode ser uma hAP lite, uma VM com o routerOS mas nunca em uma borda) até por que é muito fácil de quebrar o PPTP, então para não deixar a porta 1723/PPTP aberta iremos realizar o Port Knocking, aproveitei e inclui a porta 22, altere de acordo com suas necessidades.

Se você não usa linux em seu deskop 🙁 para usar o knock, basta você jogar no seu navegador ip:porta, ex 192.168.1.1:52341 192.168.1.1:28001 192.168.1.1:60541 192.168.1.1:30951, lembre-se que você tem 1 minuto para bater nas portas e realizar sua conexão. Já já ensino como ter um servido web e liberar a porta em um click!

para acompanhar, abra os Log sempre que um host acertar as sequencias de porta um log com Portknock bem-sucedido será exibido. Verifique também em IP-> Firewall -> Address List.

Realize o sua conexão PPTP ou SSH (ou acesse o a porta que tenha protegido para testar)

Que tal uma central “toc toc” para nosso Port knocking 😛

Leituras recomendadas:
Como ter diversos sub/domínios no mesmo servidor?
Passo-a-passo como criar um servidor WEB
Servidor DNS seguro com Bind9
Crie um subdomínio em exemplo toctoc em seu servidor DNS apontando para algum servidor web que você tenha rodando.
Ajustes o subdomíno em seu servidor web, neste ex com apache estou estarei incluído uma senha para acesso.

E defina a senha para seu acesso.

Criei uma paginazinha com php + javascript para executar nosso trabalho para não precisar decorar portas, sinta-se a vontade para melhorar o código: https://github.com/remontti/PortKnockingPHP

Edite o arquivo index.php e altere a lista de seus servidores…

Agora acesse seu “toctoc.remontti.com.br” e seja feliz, e não se preocupe em estar decorando portas, basta você clicar em Toc Toc.

Aplicativos para Celular/PC Windows

Dica dos leitores
Para iPhone: https://apps.apple.com/us/app/knockond/id333206277
Para Android: https://play.google.com/store/apps/details?id=com.xargsgrep.portknocker&hl=pt_BR&gl=US
Para PC Win.: http://gregsowell.com/?p=2020

Espero que tenha gostado! 🙂

Se quiser fazer uma doação para o café ficarei muito feliz pelo seu reconhecimento!

Participe do canal no telegram para ficar atualizado sempre que publicar um novo tutorial.

Se não puder doar pode deixar seu agradecimento nos comentário também ficarei feliz em saber que ajudei. Se tiver qualquer pergunta deixe-a também. Se preferir entrar em Contato clique aqui.

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

5 Resultados

  1. Jorge Ciriaco disse:

    Fala Remontti, tava pensando em uma forma de tentar mitigar alguns ataques nos mikrotiks aqui da rede. Mesmo eu tendo exceção dos endereços que podem acessar, por exemplo, via Winbox aqui na rede, ainda assim fica o log todo azul em alguns casos. Pensei em adicionar o src-address em uma address list com drop se por exemplo quem tiver tentando autenticar falhar x quantidade de vezes. Já viu algum caso assim?

  2. Tesch disse:

    Rudimar, para complementar o tutorial segue aplicativos para iPhone, Android e Windows.

    Para iPhone: https://apps.apple.com/us/app/knockond/id333206277

    Para Android: https://play.google.com/store/apps/details?id=com.xargsgrep.portknocker&hl=pt_BR&gl=US

    Para PC: http://gregsowell.com/?p=2020

    Parabéns pelo trabalho, sou de Porto Alegre, RS, grande abraço.

  3. Flávio disse:

    Essa já é minha segunda aula. Perfeito e didaticamente bem esplicado. Parabéns.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *