Aplicando Knock sobre Iptables

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

[ Hits: 2.497 ]

 


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

Personalizando a mensagem da tela de Login e Logoff do Linux

Squid básico em 5 linhas no Debian

Skype 4.1.0.20 no Debian 6.0.6 32 bits

Impressora compartilhada no Windows no Debian 6 Squeeze

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

Leitura recomendada

Arduino e iptables

Regra pra abrir várias portas com IPTABLES

Escondendo a versão do BIND

Monitorando hora de desligamento de servidores Linux

IPCop Firewall de rede grátis

  

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