Aplicando Knock sobre Iptables

Publicado por Marcos Apolo Flavio Junior em 10/10/2018

[ Hits: 2.649 ]

 


Aplicando Knock sobre Iptables



Knock é um aplicativo mágico que dispara através de uma sequencia enviada por um comando remoto que pode executar tanto um comando como um script pré-configurado para fazer algo no seu sistema (usem a imaginação).

Neste caso vou guiá-los para ativar ou desativar uma porta 22 no iptables e pra quê???

Imagine que você não use o SSH 24 horas por dia, então porque não desativá-lo até mesmo para evitar ataques ou portscaners?

Debian como exemplo:

# apt-get install knockd

Depois de instalado configuraremos 2 arquivos, um para definir qual a interface, infelizmente só da pra fazer com uma. E o segundo para habilitar o que ele faz com qual sequência que você define.

# vim /etc/default/knockd

Os dois parâmetros a serem mudados, onde o primeiro deve ficar como 1 pois define Knock ativo, qualquer coisa diferente disso o serviço não sobe e o segundo está eth0, coloque sua placa de rede, caso seja diferente como no Debian 9, que é enp2s0 ou enp1s0.

START_KNOCKD=1
KNOCKD_OPTS="-i eth0"

Segundo arquivo define o que o knock faz quando você manda uma sequência X para ele:

# vim /etc/knockd.conf

[options]
        logfile = /var/log/knockd.log # ARQUIVO DE LOG

[openSSH]
        sequence    = numeros das portas que serão chamadas 
        seq_timeout = 5
        command     = comando para fazer X ou local de um Script
        tcpflags    = syn

[closeSSH]
        sequence    = numeros das portas que serão chamadas
        seq_timeout = 5
        command     = comando para fazer Y ou local de um Script
        tcpflags    = syn

Exemplo 1 - usando comando:

[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence    = 1 2 3
        seq_timeout = 5
        command     = iptables -t filter -I INPUT -p tcp --dport 22 -j ACCEPT 
        tcpflags    = syn

[closeSSH]
        sequence    = 3 2 1
        seq_timeout = 5
        command     = iptables -D INPUT 1 # Remove a 1a linha do iptables 
        tcpflags    = syn 

Exemplo 2 - apontando para um script:

[options]
        logfile = /var/log/knockd.log

[openSSH]
        sequence    = 1 2 3
        seq_timeout = 5
        command     = /sbin/script_habilite_a_porta.sh   
	# Não esquecer de dar permissão no script se for usar um.
        tcpflags    = syn

[closeSSH]
        sequence    = 3 2 1
        seq_timeout = 5
        command     = /sbin/script_desabilite_a_bendita_porta.sh
	# Não esquecer de dar permissão no script se for usar um.
        tcpflags    = syn 

Feito isso reinicie o knockd com o comando:

# systemctl restart knockd

ou

# /etc/init.d/knockd restart

Após isso, de uma estação com Knock instalado use o comando:

# knock ip porta porta porta

Exemplo:

# knock 192.168.0.1 1 2 3

Ele deve inserir uma linha no iptables ou fazer algo programado e para desativar a porta 22 use com a outra sequencia que você programou. Lembrando que as portas são selecionáveis e sim, faça MUUUUITOS testes, dá pra iniciar até um backup se tiver um script programado. Bom uso!

Obs.: você pode escolher quais portas e se serão UDP ou TCP, consulte a documentação.

Outras dicas deste autor

Telinha simples de loading.... em Shell Script

Movendo vários arquivos ou diretórios ao mesmo tempo para um diretório [Iniciante]

Personalizar teclas de atalho de F1 até F12 usando inputrc para o Terminal

printf("Criando Delay em Linguagem C de forma SIMPLES");

Firefox não abrindo GIFs no Slackware [Resolvido]

Leitura recomendada

Utilizando o ufw no Ubuntu Linux

Antivírus com Samba - Servidor de Arquivos

Como recuperar senhas no Ubuntu 14.04

Coloque o iptables para iniciar como serviço no Conectiva 10

Shellshock - Corrigindo falha de segurança do bash em seu servidor Debian

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts