Aplicando Knock sobre Iptables

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

[ Hits: 2.511 ]

 


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

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

Atualizar Adobe Flash Player Debian Jessie 8.1

Usando SSH pelo Firefox

Personalizando a mensagem da tela de Login e Logoff do Linux

Alterar nome placa de rede ENPS01 para ETH0

Leitura recomendada

Descubra todos os hosts que estão em sua rede com o nmap

Impedindo acesso via modo single no LiLo

Portas do Samba no IPTables

Dicas de Tunning TCP

Heartbleed - Corrigindo OpenSSL em servidores 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