Configure um servidor fwknop
A Autorização de Pacote Único do fwknop mantém SSH fechado até que um pacote UDP criptografado e autenticado chegue. Estas etapas fazem a configuração em um servidor Debian ou Ubuntu; primeiro, teste a partir de um computador e, depois, adicione as mesmas chaves ao Secret Knock.
1. Instale e gere chaves
Instale o servidor e o cliente e, em seguida, gere um par de chaves. Guarde a saída: as mesmas duas chaves são inseridas no access.conf e no Secret Knock.
sudo apt install fwknop-server fwknop-client
fwknop --key-gen # prints KEY_BASE64 and HMAC_KEY_BASE64 2. Permita SSH para pacotes SPA
O access.conf define o que um pacote válido pode abrir e por quanto tempo.
SOURCE ANY
OPEN_PORTS tcp/22
KEY_BASE64 <output of fwknop --key-gen>
HMAC_KEY_BASE64 <output of fwknop --key-gen>
FW_ACCESS_TIMEOUT 30 3. Informe ao fwknopd onde escutar
O fwknopd captura pacotes em uma interface; ele não precisa de uma porta aberta. Defina a interface usada pelo servidor.
# /etc/fwknop/fwknopd.conf
PCAP_INTF eth0;
PCAP_FILTER udp port 62201;
MAX_SPA_PACKET_AGE 120; 4. Feche SSH por padrão
Mantenha uma sessão SSH aberta enquanto faz isso e teste em uma segunda conexão antes de encerrar a sessão. O fwknopd insere sua própria cadeia no topo de INPUT e adiciona nela um ACCEPT temporizado para cada pacote válido.
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j DROP 5. Teste e adicione a porta
Reinicie o fwknop-server, envie um pacote de outra máquina e conecte-se:
# from another machine: request SSH for the address the server sees (-R)
fwknop -A tcp/22 -R -D server.example.com \
--key-base64-rijndael "<KEY_BASE64>" --key-base64-hmac "<HMAC_KEY_BASE64>"
ssh [email protected] - 1No Secret Knock: Nova porta › Começar com um modelo › fwknop, insira o host e cole a saída de fwknop --key-gen usando Colar chaves.
- 2Bata; a porta mostra Porta entreaberta quando a porta 22 responde.
- 3Execute fwknopd -f -v no servidor caso isso não aconteça — o guia de solução de problemas lista as causas mais comuns.
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
O fwknopd precisa de uma porta aberta?
Não. Ele lê pacotes da interface de rede, portanto a porta SPA pode permanecer fechada no firewall; o pacote só precisa chegar ao servidor.
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 →
- exemplos de knockd.conf →
- Port knocking, VPN ou fail2ban? →