exemplos de knockd.conf
O knockd lê /etc/knockd.conf: uma seção [options] e uma seção para cada porta. Cada seção tem uma sequência, um limite de tempo e o comando a executar para o endereço que está batendo, %IP%. Escolha suas próprias portas — nunca reutilize as dos exemplos.
Abra SSH por alguns segundos
A configuração mais comum: uma batida abre SSH, e o knockd o fecha novamente após cmd_timeout. As sessões que você já abriu continuam funcionando se o firewall aceitar conexões estabelecidas.
[options]
UseSyslog
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT Sequências separadas para abrir e fechar
Sem um temporizador, a porta permanece aberta até você bater a sequência de fechamento. É prático, mas fácil de esquecer — prefira a versão temporizada.
[options]
UseSyslog
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
[closeSSH]
sequence = 9133:udp,8822:tcp,7311:tcp
seq_timeout = 10
tcpflags = syn
command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT Sequências de uso único
Em vez de uma sequência fixa, o knockd pode ler um arquivo de sequências e aceitar cada uma apenas uma vez, para que uma batida gravada não possa ser repetida. O Secret Knock mantém a mesma lista e avança para a próxima sequência após uma batida que abriu a porta.
[openSSH]
one_time_sequences = /etc/knockd/ssh_sequences
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
cmd_timeout = 10
stop_command = /usr/sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
# /etc/knockd/ssh_sequences — one sequence per line, each used once
2222:udp,3333:tcp,4444:udp
5555:tcp,6666:udp,7777:tcp
8888:udp,9999:tcp,1111:tcp Com nftables
Em sistemas com nftables, deixe o knockd adicionar o endereço a um conjunto com tempo limite; o guia para ocultar SSH mostra a tabela nftables correspondente.
[openSSH]
sequence = 7311:tcp,8822:tcp,9133:udp
seq_timeout = 10
tcpflags = syn
start_command = /usr/sbin/nft add element inet filter knocked4 { %IP% timeout 30s } Após editar
- 1No Debian e no Ubuntu, defina a interface em que o knockd escuta em /etc/default/knockd (KNOCKD_OPTS="-i eth0") e reinicie o knockd.
- 2Acompanhe o funcionamento com journalctl -u knockd -f enquanto você bate.
- 3No Secret Knock, + › Importar de arquivo transforma cada seção com uma sequência em uma porta; insira listas de sequências de uso único manualmente.
Todos os exemplos no GitHub → Todas as configurações desta página, prontas para copiar: github.com/mobilcomm/secretknock-examples (domínio público).
Perguntas
Devo usar etapas TCP ou UDP?
Ambas funcionam. Misturar as duas torna uma sequência mais difícil de adivinhar a partir de uma varredura de portas. As etapas UDP podem incluir uma carga útil no Secret Knock se a sua configuração a verificar.
Guias para sua configuração
- Port knocking explicado →
- knockd no iPhone, iPad e Mac →
- SPA do fwknop no iPhone, Mac e Apple Watch →
- Port knocking no MikroTik →
- Port knocking do DrayTek Vigor →
- Oculte o SSH com port knocking →
- Port knocking no Apple Watch →
- Por que uma batida de porta não abre →
- configuração do servidor fwknop →
- Port knocking, VPN ou fail2ban? →